Features
A feature is a module: contracts/, internal/ and module.go, composed in
main with typed dependencies. Every feature page follows one template, kept
in the documentation repository as templates/feature.adoc, with a map drawn
from one shape, so that a reader who has seen one has seen them all: what it
promises, its routes and screens, its authorization, its events and jobs, what
it needs, who uses it, and how it is verified. The routes, authorization and
events tables are rendered from the application’s own OpenAPI document and
module manifests, so every page states them the same way and none can drift
from the code. The map’s source is kept in the programme record.
| Feature | In one line |
|---|---|
A tenant is one customer of the platform: a slug, a name, the hosts it is served at, and every row in every other table belongs to exactly one. |
|
A user is one person in one tenant: the address they sign in with, a name to show, a lifecycle status and the roles they hold. |
|
Signing in is sessions, passwords, single sign-on, and the roles that decide what a caller may do. |
|
The admin shell is the pages a person sees, as opposed to the routes a program calls. |
|
The audit trail is the record of what happened in a tenant: every event any module publishes becomes one row saying what happened, who caused it and when, kept for as long as the deployment is obliged to keep it and read by whoever holds |
|
A notification is one thing one person was told, in one tenant: a title, the rest of the message, and a path within the application it points at, sent by mail as well when the caller asks. |
|
A plan is something the installation sells, priced per month or per year, and a subscription is a tenant’s enrollment in one: a tenant is the customer, so it has one. |
|
A page or a post is what a tenant’s public site is made of: a name it is reached by, a title, a body in Markdown and a status that decides whether the site serves it. |
|
A site is what a tenant shows the public: a name and a tagline, a home page, a colour scheme and a navigation. |
|
A file is a row and a blob: the row is in Postgres under the tenant’s own policy, and the bytes are wherever the storage the deployment wired puts them. |
|
The public site is what an anonymous visitor reads at the root of a tenant’s host: the page the site settings name as the home, any published page by its slug, and an honest empty state until an operator has published one. |
|
A task is a piece of work with a deadline, an owner and a status, raised by whoever raises it and resolved by whoever is assigned. |
The private catalog and client modules follow the same template in their own repositories and are not published here (ADR 0009).