- engineering-docs → archive/2026-03-29-engineering-docs (63/63 tasks complete) - phase-2-production-ready → archive/2026-03-29-phase-2-production-ready (89/89 tasks complete) - openspec/specs/ synced with all Phase 1 + Phase 2 + engineering-docs capabilities (22 specs total) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
928 B
928 B
Spec: HashiCorp Vault Integration
Status: Pending CEO approval Workstream: 1 of 8
Scope
- VaultClient class wrapping
node-vault 005_add_vault_path.sqlmigration- Updated CredentialService to write secrets to Vault instead of PostgreSQL
- New env vars: VAULT_ADDR, VAULT_TOKEN, VAULT_MOUNT
- Migration guide: bcrypt → Vault coexistence strategy
Acceptance Criteria
- New credentials: secret written to Vault KV v2,
vault_pathstored in PostgreSQL - Credential rotation: Vault versioned update,
vault_pathunchanged - Credential revocation: Vault secret deleted, DB status =
revoked - Existing bcrypt credentials continue to work until rotated
- VaultClient follows existing service interface pattern (DRY, SOLID)
- Zero
anytypes, TypeScript strict VAULT_ADDR/VAULT_TOKENvalidation at startup (fail-fast)- DevOps docs updated with Vault setup section