Rotate synchronized Draft encryption keys without downtime #1101

Merged
rockachopa merged 1 commits from timmy/1100-draft-key-rotation into main 2026-08-18 23:11:08 +00:00
Member

Closes #1100

Adds a bounded named AES-GCM keyring, authenticated v2 envelopes, transparent revision-preserving rewrap of v1/inactive-key rows, and a content-free restart-safe migration CLI included in release bundles.

Verification:

  • pytest -q — 2086 passed, 8 skipped
  • python3 -m pip_audit -r requirements.txt --strict — no known vulnerabilities
  • deterministic release bundle checksum and scripts/verify_release.py passed for fc9ef1f8ae0e93b156071769659c038442b9a58a
Closes #1100 Adds a bounded named AES-GCM keyring, authenticated v2 envelopes, transparent revision-preserving rewrap of v1/inactive-key rows, and a content-free restart-safe migration CLI included in release bundles. Verification: - `pytest -q` — 2086 passed, 8 skipped - `python3 -m pip_audit -r requirements.txt --strict` — no known vulnerabilities - deterministic release bundle checksum and `scripts/verify_release.py` passed for `fc9ef1f8ae0e93b156071769659c038442b9a58a`
rockachopa added 1 commit 2026-08-18 23:05:10 +00:00
feat: rotate synchronized Draft encryption keys (Closes #1100)
All checks were successful
CI / lint (pull_request) Successful in 2m39s
CI / build-release (pull_request) Successful in 6s
CI / browser-journey (pull_request) Successful in 2m35s
CI / release-candidate (pull_request) Has been skipped
fc9ef1f8ae
rockachopa merged commit fdf6ae3ddd into main 2026-08-18 23:11:08 +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#1101
No description provided.