Skip to main content

Code Wiki

Everything in this section is read out of backend/ and frontend/ at build time. Nothing here is written by hand, which is the point: 92 entities and 457 endpoints cannot be maintained as prose, and a hand-written list of them would be wrong within a week.

Count
Modules9
Entities92
Controllers86
Endpoints457
Repositories89
Frontend routes98

Where to start​

  • Modules — the top-down view. One page per API group, listing the controllers it exposes, the tables behind them and the screens in front of them.
  • Data Model — one page per entity: columns, relationships, the repository declared over it, and every endpoint that can reach it.
  • Endpoints — one page per controller: its routes, the permission each demands, and the call chain from handler to table.

How it relates to the rest of the site​

SectionAnswersWritten by
ArchitectureWhy the system is shaped this wayHand
BackendHow to work in the codebaseHand
API ReferenceWhat an endpoint accepts and returnsGenerated from OpenAPI
Code WikiWhat exists right now, and what calls whatGenerated from source

The API reference and the Code Wiki are generated from different things and answer different questions. The spec is produced by booting the backend and reading springdoc, so it knows request and response schemas; it cannot see which service a controller injects or which table that service writes. This section is parsed from the source, so it can.

Accuracy​

The extractor understands the conventions this codebase actually follows — one public type per file, Lombok constructor injection, annotations on their own lines. Code that departs from them is under-reported rather than misreported, and the build fails if the extractor suddenly finds far less than it should. Two things are worth knowing when reading these pages:

  • Call chains are static. An edge means a bean holds a reference, not that every endpoint on the page uses it. "Tables reached" is the upper bound of what a controller can touch, which is the useful number for a review or an audit.
  • Access is three-valued. Permission, authenticated, and public are different states, and the absence of @PreAuthorize means the second, never the third.

Generated page

This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.