Rotate shared private-state encryption keys without downtime #1238

Merged
timmy merged 1 commits from timmy/1237-private-state-key-rotation into main 2026-08-21 21:37:26 +00:00
Owner

Closes #1237

Adds a bounded active-key keyring and authenticated v2 envelopes across every shared private-state consumer, while retaining v1/plaintext reads for rolling deployment. Ships a restart-safe, content-free rotation command covering Today/Week/Later plans, snapshots, saved searches, security events, and idempotency receipts, plus deterministic release packaging and an operator retirement procedure.

TDD proof:

  • RED: keyring import missing; v2 Today rows failed as plaintext; rotation command missing; release fixture omitted command.
  • GREEN: 12 focused rotation/release tests passed.
  • Full suite: 2350 passed, 12 skipped.
Closes #1237 Adds a bounded active-key keyring and authenticated v2 envelopes across every shared private-state consumer, while retaining v1/plaintext reads for rolling deployment. Ships a restart-safe, content-free rotation command covering Today/Week/Later plans, snapshots, saved searches, security events, and idempotency receipts, plus deterministic release packaging and an operator retirement procedure. TDD proof: - RED: keyring import missing; v2 Today rows failed as plaintext; rotation command missing; release fixture omitted command. - GREEN: 12 focused rotation/release tests passed. - Full suite: 2350 passed, 12 skipped.
timmy added 1 commit 2026-08-21 21:13:14 +00:00
feat: rotate shared private-state keys (Closes #1237)
All checks were successful
CI / lint (pull_request) Successful in 3m24s
CI / build-release (pull_request) Successful in 6s
CI / browser-journey (pull_request) Successful in 5m2s
CI / release-candidate (pull_request) Has been skipped
965a73ab49
timmy closed this pull request 2026-08-21 21:28:14 +00:00
timmy reopened this pull request 2026-08-21 21:28:14 +00:00
timmy merged commit 95887d7493 into main 2026-08-21 21:37:26 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
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: stackchain/stackchain-dashboard#1238
No description provided.