# API index

The source packages include Go documentation; inspect them with `go doc github.com/fauzaanu/cicadel/PACKAGE`.

| Package | Main entry points |
| --- | --- |
| `cicadel` | `App`, `Manifest`, `Requirement`, `New`, `Start`/`Close`, `InstalledApps`, `Resources`, `Check`, `SystemChecks`, `SystemCheck`, `CheckMessage`, `Run`/`Serve`, `Health` |
| `settings` | `Defaults`, `Load`, `LoadWith`, `Settings.Validate` |
| `urls` | `Path`, `Include`, `New`, `Router.Reverse` |
| `response` | `HTML`, `JSON`, `Redirect`, `Error` |
| `ui` | `Definition[P,S]`, `Content`, `Text`, `Fragment`, `Group`, `Renderer`, `Merge`, `URL`, `Resolve`, `Diagnostic`, `Committed` |
| `ui/layout`, `ui/form` | Optional minimal document and accessible field/CSRF components |
| `uic` | `Compile`, `Generate`, `GoDiagnostics`; `cicadel ui generate/build/check`, `ui css install/build/check` |
| `templates` | Deprecated experimental compatibility: `New`, `Engine.Render`, `Engine.HTML` |
| `database` | `Open`, `Migrator`, `Migrate` |
| `apptest` | `Check`: per-instance lifecycle smoke checks for app authors |
| `management` | `Manager.Run`, `Manager.CommandNames`, `UsageError`, `ExitCode`, custom `Command` |
| `forms` | `Parse`, legacy `Form.Required`/`Valid`; typed `New`, `Typed[T]`, built-in fields/validators, `Definition.Bind`, `Value[T]` |
| `forms/upload` | `Parse`, `Middleware`, `FromRequest`, `Batch.Save`/`Close`, `CleanupError` |
| `forms/model` | `New[T]`, `Config[T]`, `Field`, `Bind`, `Bound.Create`/`Update`, `Related[R]`, `InTransaction`, `Errors`; [model-form contract](https://cicadel.fauzaanu.com/en/dev/topics/model-forms/index.md) |
| `security` | `NewSessions`, `Login`, `Logout`, `CSRF`, `RequireLogin`, password helpers |
| `admin` | `Routes[T]`, explicit `Config[T]`, `Field`, permission `Action` |
| `api` | `Decode`, `Pagination`, `Fail`, generic `List[T]` |
| `static` | `Handler` |
| `observability` | `NewLogger`, `NewLogging`, `Logger`, `Middleware`, `RequestID`, `Event`, `OpenRotatingFile`, `NewEmailHandler`, `NewQueryLogger` |
| `jobs` | `Migrate`, `NewProducer`, `InsertTx`, `NewWorker` |
| `mail` | `Message.Bytes`, `Sender.Send`/`SendMany`, `SMTP`, `Transport`, `RenderComponent`, `Render`, `Capture`, `Console`, `File`, `Discard` |
| `storage` | `Store`, `NewLocal`, `HTTP`, `ValidateKey` |
| `cache` | `NewMemory`, `Get`, `Set`, `Delete` |

The CLI is `go run ./cmd/cicadel startproject DIRECTORY MODULE`, `startapp NAME [DIRECTORY]`, or `startpackage DIRECTORY MODULE NAME`. See [installable apps](https://cicadel.fauzaanu.com/en/dev/topics/installable-apps/index.md). The full workflow is in [the tutorial](https://cicadel.fauzaanu.com/en/dev/intro/tutorial/index.md); integration boundaries and limitations are in [extensions](https://cicadel.fauzaanu.com/en/dev/topics/extensions/index.md).

Native i18n/l10n APIs are intentionally absent. See [the battery support policy](https://cicadel.fauzaanu.com/en/dev/sources/batteries.md) for package-extension plans and current capability gaps.

The approved UI architecture is [composable components](https://cicadel.fauzaanu.com/en/dev/topics/component-ui/index.md). The compiler/runtime and typed library contracts are implemented; legacy template calls remain a separate compatibility API.

Tailwind is the first-party default; see [CSS tooling](https://cicadel.fauzaanu.com/en/dev/howto/tailwind/index.md) and the
[tested component authoring guide](https://cicadel.fauzaanu.com/en/dev/howto/component-authoring/index.md).

The first-party [formsets module](https://cicadel.fauzaanu.com/en/dev/ref/formsets/index.md) adds `New[T]`,
`Inline[P,T]`, `Collection[T]`, `Bound.Save` and `App` for atomic collections.

See [complete forms](https://cicadel.fauzaanu.com/en/dev/topics/forms-completion/index.md) for widgets, revision tokens, uploads
and atomic administration inlines.

The first-party [accounts module](https://cicadel.fauzaanu.com/en/dev/ref/accounts/index.md) exports `Service.Browser`, `Browser.HTMLApp`, `Browser.Middleware`, `Browser.Login`/`Logout`, `Browser.RequireLogin`, and typed `accountui.Page`. See [authentication](https://cicadel.fauzaanu.com/en/dev/topics/authentication/index.md), [email](https://cicadel.fauzaanu.com/en/dev/topics/email/index.md) and [logging](https://cicadel.fauzaanu.com/en/dev/topics/logging/index.md) for complete integration contracts.

The [foundation guide](https://cicadel.fauzaanu.com/en/dev/internals/foundation/index.md) documents `cicadel dev`, command help and
structured deployment checks, configuration precedence and lifecycle contracts.
