Architecture decision records
Significant decisions — auth, schema, service shape — are recorded here as they were made.
- ADR-0001: JSONB query convention for the table module
- ADR-0002: Centralised RPC authorization behind auth.Allow
- ADR-0003: Reward costs paid from a points ledger
- ADR-0004: A derived family graph over stored parent and partner edges
- ADR-0005: The family tree view
- ADR-0006: First-time setup flow for an empty install
- ADR-0007: Stateless JWT authentication with bcrypt-hashed credentials
- ADR-0008: Role-based access control via a static permission matrix at the interceptor
- ADR-0009: Service-layer authorization with resource ownership
- ADR-0010: Roles and permissions modelled in Protocol Buffers
- ADR-0011: A cobra CLI wrapping pkg/client as the Eagraí Clainne command-line client
- ADR-0012: Self-service profile editing via masked, guarded User.Update
- ADR-0013: Metrics instrumentation
- ADR-0014: Job ownership and editing
- ADR-0015: Item lists and points auto-claim on completion
- ADR-0016: MCP server endpoint and admin-managed API keys
- ADR-0017: Device sessions with rotating refresh tokens
- ADR-0018: UserService/Create locks to admins once setup is complete
- ADR-0019: Client-minted uids make offline create replay safe
- ADR-0020: Profile switching and quick-switch PINs
- ADR-0021: Dual-backend storage — SQLite default, PostgreSQL optional
- ADR-0022: Data export — backup and portable archives
- ADR-0023: Data import — restore and wipe-and-replace
- ADR-0024: Outbound webhooks
- ADR-0025: Sub-tasks
- ADR-0026: TrueNAS SCALE distribution via Custom App compose
- ADR-0027: Per-user data export