security(phase1a): Phoenix Vault rotation runbook + consumer-prep scaffolding #5
Reference in New Issue
Block a user
Delete Branch "devin/phase1a-vault-consumer-prep-1776543363"
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?
Summary
Part of the sequenced cleanup tracked in issue #1. Phase 1a — Vault consumer-prep scaffolding. No rotation executed, no secret values committed.
This PR stages the infrastructure Phoenix ops need to execute the actual Vault rotation. It does not change any live system.
What this PR adds
docs/runbooks/PHOENIX_VAULT_ROTATION_RUNBOOK.mddocs/04-configuration/VAULT_SHARD_CUSTODY_POLICY.mdscripts/verify/enumerate-vault-consumers.shVAULT_ROLE_ID/VAULT_SECRET_ID/auth/approle/loginreferences. Groups by top-level consumer.scripts/verify/verify-vault-approle-auth.shphoenix-deploy-api/.env.exampleVAULT_ADDR/VAULT_ROLE_ID/VAULT_SECRET_IDplaceholders + pointer to the runbook.mission-control/.env.exampleNEXT_PUBLIC_*vars and the same Vault AppRole placeholder block. Server-side only.What this PR does NOT do
LEAKED_SECRETS_INVENTORY.md§3 — those are Phase 2 (history rewrite + redaction) and land after the rotation has executed.phoenix-deploy-api/server.jsormission-control/source. Those services do not currently auth to Vault; adding the client is a follow-up once the decision inVAULT_SHARD_CUSTODY_POLICY.md§3 is made..env.exampleentries are empty placeholders.Consumer enumeration (from
scripts/verify/enumerate-vault-consumers.sh)Current matches:
dbis_core/— 1 file (documentation reference toprocess.env.VAULT_ROLE_ID)rpc-translator-138/— 2 files (separate AppRole19cbc945-…, rotate independently)scripts/— 4 files (archivedconfigure-phoenix-vault*.sh+migrate-secrets-to-vault.sh)phoenix-deploy-api/andmission-control/do not yet appear because they don't read Vault today — this PR adds the env-var scaffolding so they are ready to.Review & Testing Checklist for Human
Risk: green — documentation + two new read-only verification scripts + two
.env.exampleadditions. Cannot break anything when merged.docs/runbooks/PHOENIX_VAULT_ROTATION_RUNBOOK.mdend-to-end; confirm the 9-step order matches Phoenix ops' mental model.docs/04-configuration/VAULT_SHARD_CUSTODY_POLICY.mdand indicate (in the PR or in issue #1) which option to go with. Rotation blocks on this.bash scripts/verify/enumerate-vault-consumers.shlocally and confirm no out-of-repo consumer is missing.scripts/verify/verify-vault-approle-auth.shnever writes the Role ID / Secret ID / client token to any log (grep the script — the only thing printed is lengths and policy names).phoenix-deploy-api/.env.exampleandmission-control/.env.exampleadditions are consistent with how those services are actually deployed on the live hosts.Next phase after merge
VAULT_SHARD_CUSTODY_POLICY.md§3.docs/runbooks/PHOENIX_VAULT_ROTATION_RUNBOOK.md§1.1–§1.8.Tracking: issue #1.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.