# BoxTurtle v0.1.0 - Table of Contents > A toolkit of Elixir building blocks: a convention-driven Ecto query/change layer, typed runtime configuration from environment variables, pipe-friendly debugging and small utilities. ## Pages - [BoxTurtle](readme.md) - [Changelog](changelog.md) - [Schema guide](schema.md) ## Modules - Schema - [BoxTurtle.Schema](BoxTurtle.Schema.md): A convention-driven data-access layer for Ecto schemas. - [BoxTurtle.Schema.Change](BoxTurtle.Schema.Change.md): Generates the write functions of `BoxTurtle.Schema.Change.API` for an Ecto schema. - [BoxTurtle.Schema.Change.API](BoxTurtle.Schema.Change.API.md): Write operations generated by `use BoxTurtle.Schema.Change`: create, update and delete. - [BoxTurtle.Schema.Ecto.Ksuid](BoxTurtle.Schema.Ecto.Ksuid.md): An `Ecto.Type` for [KSUID](https://github.com/segmentio/ksuid) keys, stored as 27-character base62 strings. KSUIDs sort by creation time, which makes them convenient primary keys. - [BoxTurtle.Schema.Filters](BoxTurtle.Schema.Filters.md): Default filtering for `BoxTurtle.Schema.Query`, and a base for schema-specific filter modules. - [BoxTurtle.Schema.Filters.API](BoxTurtle.Schema.Filters.API.md): Behaviour for modules that turn a list of filters into `where` clauses. See `BoxTurtle.Schema.Filters` for the default behaviour. - [BoxTurtle.Schema.Pagination](BoxTurtle.Schema.Pagination.md): Limit/offset pagination for Ecto queries. - [BoxTurtle.Schema.Query](BoxTurtle.Schema.Query.md): Generates the standard read functions of `BoxTurtle.Schema.Query.API` for an Ecto schema. - [BoxTurtle.Schema.Query.API](BoxTurtle.Schema.Query.API.md): Read operations generated by `use BoxTurtle.Schema.Query`. - [BoxTurtle.Schema.Query.Helpers](BoxTurtle.Schema.Query.Helpers.md): Option handling and query assembly used by the functions `BoxTurtle.Schema.Query` generates. - [BoxTurtle.Schema.Query.Options.API](BoxTurtle.Schema.Query.Options.API.md): Accessors for the settings given to `use BoxTurtle.Schema.Query`. - [BoxTurtle.Schema.Sort](BoxTurtle.Schema.Sort.md): Default sorting for `BoxTurtle.Schema.Query`, and a base for schema-specific sort modules. - [BoxTurtle.Schema.Sort.API](BoxTurtle.Schema.Sort.API.md): Behaviour for modules that turn a sort specification into `order_by` clauses. See `BoxTurtle.Schema.Sort` for the supported specification forms. - Runtime - [BoxTurtle.Runtime.Application.Helper](BoxTurtle.Runtime.Application.Helper.md): Utilities for building an application's supervision tree. - [BoxTurtle.Runtime.Config](BoxTurtle.Runtime.Config.md): Loads a runtime configuration script (standard `import Config` syntax, read with `Config.Reader`) into the application environment. Combine with `BoxTurtle.Runtime.Config.Helper` to get properly typed values from environment variables. - [BoxTurtle.Runtime.Config.Helper](BoxTurtle.Runtime.Config.Helper.md): Reads environment variables and parses them into typed, validated Elixir values, so config files don't need their own parsing and validation. - [BoxTurtle.Runtime.DynamicInterface.ModuleDispatch](BoxTurtle.Runtime.DynamicInterface.ModuleDispatch.md): Generates a module that implements a behaviour by forwarding every callback to an implementation module, or by generating no-op stubs. - Debug - [BoxTurtle.Debug.PipeDebug](BoxTurtle.Debug.PipeDebug.md): Injects a `debug/3` function that can be dropped into the middle of a pipe to log a value, returning it unchanged. - Common - [BoxTurtle.Common.IdUtils](BoxTurtle.Common.IdUtils.md): Small helpers for generating identifiers. - [BoxTurtle.Common.ReturnOkOr](BoxTurtle.Common.ReturnOkOr.md): Normalizes loosely-shaped results (`nil`, bare values, `:error`, `{:error, _}`) into `{:ok, value}` / `{:error, reason}` tuples, plus macros that log a message together with the caller's stack trace. - Security - [BoxTurtle.Security.Password](BoxTurtle.Security.Password.md): Generates random passwords containing at least one lowercase letter, one uppercase letter, one digit and one special character.