the-custodian/canon/architecture
codex d0b57b1a50 ADR-008 draft-3: corrections, plane R, and a name
Renamed to Tenancy Posture. Four Planes stopped being true and a name that
encodes a count breaks every time the framework grows; the posture vector is
the durable centre.

Corrections from the research digests:

- E3 no longer claims the application cannot route around it. Any session can
  re-SET the GUC, so E3 is decisive against a forgotten predicate and useless
  against SQL injection or a compromised process. Replaced the claim with a
  threat-model table. Draft-2 was overclaiming in exactly the way section 6
  prohibits, which is the correction I most wanted made before review.
- E3 layers on E2 rather than replacing it; claiming E3 now requires the E2
  artifact too, because E3 alone fails open under injection.
- The GUC is set transaction-locally, not at pool checkout, and the scaling
  section's pooling claim was backwards: SET LOCAL is what makes E3 safe under
  a pooler; statement-level pooling is what leaks.
- Placement is a default plus per-tenant exceptions. One P level per service
  could not express the isolation tiers section 11 already sells.

Added plane R for retention and erasure, implementing the rapp-postgres
ADR-0002 interface: N-day retention defaulting to 30, a published erasure
horizon, and dataset sweeps whose policy the consumer owns. R exists because
deleting a row does not remove it from yesterday's backup, and the estate had
never written that down.

Also: A4 for a standard PDP interface now that AuthZEN is Final; evidence split
into mechanical and adversarial, since a green CI run is not E2 evidence; the
tenant boundary named as OWASP API1; and section 14 recording the
structure-not-tooling stance.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 14:33:50 +02:00
..
adr-001-workplans-as-repo-artefacts.md feat(terminology): prose sweep tool and custodian workplan cleanup (CUST-WP-0055 T04) 2026-07-08 16:35:37 +02:00
adr-002-custodian-agent-runtime-design.md feat(CUST-WP-0001): implement Custodian Agent Runtime bootstrap 2026-03-12 22:36:24 +01:00
adr-003-materialized-derived-state.md docs(adr): ADR-003 — Materialized Derived State with Fingerprint Invalidation 2026-03-20 01:54:21 +01:00
adr-004-connectivity-first-network-posture.md ADR and Runbook artefacts 2026-03-27 00:16:09 +01:00
adr-005-cross-repo-workplans-project-repos.md docs(canon): define prj- project repository flavor 2026-08-09 17:24:07 +02:00
adr-006-canon-federation-concept-ownership.md docs(canon): ADR-006 accepted — R7 places evidence pair in dedicated itc-evid 2026-08-17 10:03:15 +02:00
adr-007-workplan-identity-and-repo-worker-topology.md docs(canon): renumber ADR-008/009 -> ADR-010/011 after ID collision 2026-08-17 13:04:04 +02:00
adr-008-multi-tenancy-model.md ADR-008 draft-3: corrections, plane R, and a name 2026-08-17 14:33:50 +02:00
adr-010-hub-authority-and-local-cache-model.md docs(canon): renumber ADR-008/009 -> ADR-010/011 after ID collision 2026-08-17 13:04:04 +02:00
adr-011-federated-namespaces-and-reconciliation-limits.md docs(canon): renumber ADR-008/009 -> ADR-010/011 after ID collision 2026-08-17 13:04:04 +02:00