Reference
Everything in this section is generated from the source code at build time by
website/scripts/generate-reference.mjs. Nothing here is hand-written, which means it
cannot drift from the product. If a page here is wrong, the code is wrong.
| Page | Generated from | Size |
|---|---|---|
| REST API | the @Controller / @Get / @RequirePermissions decorators | 273 endpoints across 14 controllers |
| Permissions | packages/shared/src/permissions.ts | 116 permissions × 5 roles |
| Modules | module-registry/manifests.ts | 23 modules + dependency graph |
| Environment Variables | .env.example | 38 variables |
| Database Schema | apps/backend/prisma/schema.prisma | 88 models as ER diagrams |
Regenerating
cd website
npm run gen:reference # runs automatically before `npm start` and `npm run build`
The generator reads the compiled exports for permissions and module manifests (rather than regex-scraping TypeScript), so the role matrix and dependency graph are exactly what the application enforces at runtime.
See also
- Writing a module — how a new module gets into the Module Reference
- Access Control — how a new permission gets into the Permissions Reference
- Database & Prisma — how a schema change gets into the ER diagrams