Domain model ============ These pages describe what Adriano stores and the rules it applies, as implemented in :mod:`app.domain` (pure logic) and :mod:`app.storage` (persistence). They are written for developers changing that logic. How authors write ADR and erratum files is covered for authors in :doc:`/user/index`. .. mermaid:: flowchart LR file["ADR or erratum file
(bytes from a source or CI)"] parsed["ParsedRecord
metadata, links, issues"] digest["Digest
sha256-v1"] row["record row
published or candidate"] rev["revision
canonical snapshot"] event["decision_event
accepted or rejected"] state["Approval state
of the current digest"] file -- "parse_record()" --> parsed file -- "content_digest()" --> digest parsed -- "upsert" --> row digest -- "names" --> rev row -- "current digest" --> rev event -- "identity + digest" --> state row -- "identity + current digest" --> state .. toctree:: :maxdepth: 2 records hashing approval errata schema