feat(evidence): the write-once Postgres evidence tier — codeberg leaves the audit path #2048
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/evidence-postgres-tier"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sean's directive: audit data belongs in Postgres. Signed release provenance and terminal deployment audits now live in a write-once pipeline_evidence table (history migration v2) — CNPG, barman-archived off-cluster, restore-drilled — instead of codeberg, whose 25 GiB quota stalled all four trains yesterday.
Design: the signers echo their exact signed bytes as output parameters and the OPERATOR inserts them (no DB credential in any workflow pod). bytea, never jsonb — DSSE survives no normalisation. Write-once = PK + ON CONFLICT DO NOTHING + digest read-back (identical = idempotent replay; different = terminal collision). A release is not Succeeded until its evidence is committed; a deploy audit records before the descriptor latches — so the Deployed·stalled chip class dies by construction. The exporter machinery and the 409-divergence apparatus retire wholesale; pre-2026-08-15 codeberg descriptors keep validating.
Guards rewritten in lockstep (provenance-contract, deployment-audit-contract with the acceptor still re-executed against fixtures, frozen-release-notes now resting on byte-exact write-once, codeberg-registry-retry pinning that the signers never touch the codeberg API again); evidence-export-contract retires with its subject. RUN-CONTRACT documents the 6 new keys; exported is deleted.
129/129 guards, full operator suite green (132 envtest specs incl. new coverage: transient put holds the release short of Succeeded, collision fails closed, retired-flow residue clears once).
Queued fast-follows: the HTTP read-back endpoint behind the evidence locators; post-deploy cleanup deletes the wedged -audit/-export workflows so the board goes fully green.