docs(env): clarify key rotation and recovery flows - #31
Conversation
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ed454fde44
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| Required rotation sequence: | ||
|
|
||
| 1. Freeze destructive share changes for the project while rotation is in progress. |
There was a problem hiding this comment.
Freeze bundle publication during key rotation
The required rotation sequence only freezes destructive share changes, so value rotation can still publish new bundle versions while re-wrap is in progress. If a bundle is published after step 3 but before cutover, it is never wrapped to the staged key, and retiring the current key can leave that active bundle unreadable after cutover. Please require freezing bundle writes for the rotation window (or re-running wrap/coverage verification on a stable snapshot at cutover).
Useful? React with 👍 / 👎.
|
|
||
| Rules: | ||
|
|
||
| - if no active owner/admin share and no valid recovery package remain, Hack must treat portable ciphertext as permanently unreadable |
There was a problem hiding this comment.
Include all recovery paths in lost-key condition
This lost-key rule says ciphertext is permanently unreadable when owner/admin shares and recovery packages are gone, but the same section earlier lists a designated recovery recipient as a valid recovery path. In deployments using that path, this condition would incorrectly classify recoverable data as lost and could push operators toward unnecessary reset flows. The unreadable condition should account for every allowed recovery path (or explicitly remove designated recipients from the allowed set).
Useful? React with 👍 / 👎.
Motivation
Description
docs/plans/2026-03-13-env-portability-and-secret-management-design.mdto require a staged replacement project key, per-bundle unwrap-and-rewrap to the staged key, wrapping verification, recipient share regeneration, a pre-cutover summary, and an additive cutover sequence.docs/env.mdso higher-level env docs match the detailed design doc.Testing
bun x ultracite check docs/plans/2026-03-13-env-portability-and-secret-management-design.md docs/env.mdwhich completed with no reported issues.bunx prettier --checkand formatted files withbunx prettier --write, and the style checks passed after formatting.Codex Task