DevelopersΒΆ
This section is for engineers who change or extend Adriano. It describes the architecture, the domain model, the decisions behind them and the reference for the backend code.
Design
- Architecture
- Design decisions
- 0001: Keep the first release governance-first
- 0002: One backend, one SPA, one database
- 0003: PostgreSQL for storage and full-text search
- 0004: Serve every read from the local index
- 0005: Poll publishes, push proposes, one ingest path
- 0006: Bind approval to identity and content digest
- 0007: Approval history lives in the database, append-only
- 0008: Schedule polling outside the web workers
- 0009: One configuration file, read at startup
- 0010: Standard OIDC, stateless bearer tokens
- 0011: A gated development login
- 0012: Per-registration push tokens for CI
- 0013: Keep records without a valid UUID, never invent one
- 0014: Derive display status from links
- 0015: Errata are separate records reviewed like decisions
- 0016: A filesystem source type beside GitLab
- 0017: Vuetify, and Vuetify first
- 0018: Compute relationship issues at read time
- 0019: Derive approval state on read, in SQL and in Python
- 0020: One container image for the API and the web UI
- 0021: One TLS context for outbound HTTPS, with additive extra CAs
- Domain model
- Invariants
- Security
- Performance
Guides and reference