Generated API
Every generated application serves a JSON API and describes it at /openapi.json, with Redoc at
/redoc and Scalar at /scalar. All data routes require a token, issued by /api/auth/login.
Records
| Route | Does |
|---|---|
GET /api/bus/{entity} | List: page, limit, search, sort, order, and filter.<column>=<op>:<value> |
POST /api/bus/{entity} | Create |
GET /api/bus/{entity}/{id} | Read one, with its ETag |
PUT /api/bus/{entity}/{id} | Update, with If-Match (PATCH is accepted too) |
DELETE /api/bus/{entity}/{id} | Soft-delete, with If-Match |
GET /api/bus/{entity}/lookup/{column} | The records a reference may point to, narrowed by the values passed |
GET /api/bus/{entity}/{id}/actions | The lifecycle moves this caller may make |
POST /api/bus/{entity}/{id}/transition | Make a move: { event | to, data? } with If-Match |
A list answers { data, meta: { total, page, limit, totalPages } }. Filter operators are eq,
gt, gte, lt, lte, contains, startsWith and endsWith. /{entity}/meta and
/{entity}/fields/form and /fields/grid describe the entity for building screens.
One generic handler serves every entity in the dictionary, including entities added after
deployment, so the API description documents {entity} generically.
The caller
| Route | Does |
|---|---|
GET /api/me/dashboard | The categories, entities and admin windows this caller may open |
GET /api/me/health | Readiness; no token needed |
Administration
| Route | Does |
|---|---|
/api/sys/* | The Application Dictionary. Reads are open; writes need the administrator |
/api/accounts, /api/accounts/roles | Accounts and roles, written as a pair, administrator only |
/api/rules, /api/workflow-definitions | Rules, automations and status machines |
/api/reports | The reports the model declares |
/api/logging/levels | Log levels per channel, administrator only |
Errors
Every refusal has the same shape: statusCode, message and details.code (a catalogued code such
as VERSION_CONFLICT), details.category, the request reference ref, timestamp and path.
Only an unexpected server error hides its message.