ADR 0002: deployment-key rotation — rotate, drain, verify, discard (#349) #408

Merged
Cordy merged 1 commit from adr-349 into main 2026-09-03 16:50:30 +00:00
Owner

Records the #349 decision per the operator's bounded-keys direction: no growing keychain — keep the two-key shape (active + one retiring) and make rotation completable via a managed drain (background re-encrypt through the normal write pipeline), verification (#348's header scan reaching zero coverage), then discard. Adds a public-halves-only drain ledger in the state store with a refuse-to-boot tripwire replacing today's silent orphaning, confirms mixed-flavour decrypt windows are legal, and rejects header-surgery rewrap with reasoning (S3 IO cost identical, trust-surface, flavour homogeneity, PQ synergy). Docs only.

Records the #349 decision per the operator's bounded-keys direction: no growing keychain — keep the two-key shape (active + one retiring) and make rotation *completable* via a managed drain (background re-encrypt through the normal write pipeline), verification (#348's header scan reaching zero coverage), then discard. Adds a public-halves-only drain ledger in the state store with a refuse-to-boot tripwire replacing today's silent orphaning, confirms mixed-flavour decrypt windows are legal, and rejects header-surgery rewrap with reasoning (S3 IO cost identical, trust-surface, flavour homogeneity, PQ synergy). Docs only.
docs: ADR 0002 - deployment-key rotation as rotate/drain/verify/discard (#349)
All checks were successful
ci / test-and-build (pull_request) Successful in 38s
8c9b29927a
Cordy merged commit 1b7f8f5bd3 into main 2026-09-03 16:50:30 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#408
No description provided.