Architecture Decision Records#
A record of an architectural decision, its context and why it was settled that way — kept once a decision is made rather than left to the commit that made it. Each one stands alone; later records do not restate earlier ones, only build past them.
- ADR 0001 — Environment overrides are found by existence, beside a known anchor
- ADR 0002 — Configuration checks run automatically in production, and nowhere else
- ADR 0003 — The baseline ships no working default for a security-critical value
- ADR 0004 — A portal’s apps are registered ahead of FairDM’s
- ADR 0005 — A measurement type nominates its value; the base reports and formats it
- ADR 0006 — What the registry generates carries the framework’s mixins
- ADR 0007 — Every record has a page of its own
- ADR 0008 — One editing page per record, with its related rows inline
- ADR 0009 — A form’s default and a model’s default may legitimately differ
- ADR 0010 — Record addresses name the record type in the plural
- ADR 0011 — One navigation entry per collection of pages
- ADR 0012 — Every page states its own access rules
- ADR 0013 — A listing shows published records only, for everyone
- ADR 0014 — Publication is a separate flag from visibility
- ADR 0015 — A record’s own dataset decides, and a row never links past it
- ADR 0016 — The framework indexes the fields it searches by default
- ADR 0017 — Listings are addressed and named apart from records
- ADR 0018 — Publication is a queryset method, not a default manager
- ADR 0019 — A portal role is the unit of portal-wide rights
- ADR 0020 — A missing role is answered four ways, and never by blocking repair
- ADR 0021 — Profile claims and merges belong to a named role, not to superusers
- ADR 0022 — Development accounts are a command that refuses, not a fixture that loads
- ADR 0023 — An overview page is extended through blocks, plugin methods and type templates
- ADR 0024 — The right to edit a profile is asked of the record
- ADR 0025 — A level on the contribution decides rights over a core record
- ADR 0026: A record’s editing pages are six shared pages
- ADR 0027 — Records refer to each other by short identifier, never by database number
- ADR 0028 — API tokens are created on the account pages, never exchanged for a password
- ADR 0029 — People and organizations have their own API endpoints
- ADR 0030 — A credit on a record carries what DataCite asks of a creator
- ADR 0031 — Portals run on PostgreSQL with PostGIS
- ADR 0032 — A location is a value on each record, not a shared row
- ADR 0033 — A measurement borrows its sample’s location only for a viewer who may open the sample
- ADR 0034 — Portals build on the base images FairDM publishes
- ADR 0035 — FairDM does not compress static files
- ADR 0036 — FairDM declares the image and database a portal runs on
- ADR 0037 — Autocomplete fields are built on django-tomselect
- ADR 0038 — Each autocomplete scope is its own view
- ADR 0039 — Autocomplete addresses are limited per caller
- ADR 0040 — Backup schedules are periodic tasks
- ADR 0041 — Backups are encrypted to a public key