fix(deploy): preserve transport hardening; require independent Keyverse custody - #153
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
seonghobae
left a comment
There was a problem hiding this comment.
@coderabbitai review
Please review exact head cf8498dd33b7d64363a8359d76cab4cb47577ba9, focusing on the self-bootstrap trust boundary: Compose secret mounts, upstream PostgreSQL _FILE semantics, the Keycloak file-to-native-environment entrypoint, accidental dotenv fallback, exposure through process/log/argument surfaces, and the distinction between root bootstrap and ordinary Keyverse workload secrets. Hosted exact-head CI/security checks are now running; this is not an approval or merge request.
|
2026-09-10 owner correction: Keyverse must itself be usable as an independent KMS/cryptographic trust service; an external KMS/HSM is optional, not a production prerequisite. Moving the same static password from I am correcting this PR's ADR-0017, ADR index and doctoring only, from |
…tion acceptance Owner correction: Keyverse must itself supply independent KMS/cryptographic custody. External KMS/HSM is optional; POSTGRES_PASSWORD_FILE and static mounts are transport changes, not lifecycle migration. Supersede the earlier ADR-0017 choice while preserving existing source delta and explicitly retaining Draft/non-release boundaries. Document independent initialization/seal/unseal, non-exportable key operations, separate secret retrieval, PostgreSQL credential/session lifecycle and exact evidence gaps. No runtime tests or deployment success claimed; no production source, credential or workflow change.
|
Continuing the independent-custody correction on this existing owner branch; no second vault owner or consumer cutover. Source scope: new First deliverable is the internal custody barrier: OS-random root, threshold recovery shares via an existing Shamir implementation, authenticated encrypted root record, sealed-by-default recovery, and context-bound record protection without a root-key export API. It is not a remote KMS, workload authenticator, durable audit service, database credential issuer, or production rollout. External KMS and static credential files are not required by this library. The local container has no Rust toolchain and cannot resolve download hosts. Rust execution must therefore be obtained from actual hosted CI; no compile/test success will be inferred from source inspection. The initial dependency lock and RED fixture execution are preparation only. Keep Draft; do not merge a lock-bootstrap or deliberately RED revision. No existing credentials, deployments, protections or other writers' refs are modified. |
Owner correction — 2026-09-10
Keyverse must itself be usable as the independent KMS/cryptographic trust service. External KMS/HSM is OPTIONAL, not a production prerequisite. Moving the same static password from
.envtoPOSTGRES_PASSWORD_FILEdoes not meet the CWL migration requirement.Keep Draft. This PR's current runtime delta is transport-only and is NOT accepted as the final standalone profile. It must not merge or deploy as completed Keyverse migration merely because wiring tests pass.
Current correction
Head
61b30595bea4639517387d3ad55c2464a5d8f3d8revises ADR-0017 and its index and adds the primary-source doctoring record. It is an ordinary child ofcf8498dd33b7d64363a8359d76cab4cb47577ba9, preserving every existing source/test delta.The revised architecture requires:
Full rationale, rejected alternatives, concrete acceptance scenarios and primary references are in
docs/adr/0017-keyverse-root-bootstrap-secret-transport.md; interpretation and evidence limits are indocs/doctoring/keyverse_standalone_custody.md.Preserved implementation — not migration acceptance
The prior tree deletes
.env.example, mounts three/run/keyverse-bootstrap/*files, usesPOSTGRES_PASSWORD_FILE, and adds a Keycloak file-to-process-environment entrypoint. Non-secret deployment settings andCWL_IDP_BOOTSTRAPremain configuration/locator values. README, CLAUDE, bootstrap descriptor, CHANGELOG and wiring tests reflect that earlier transport implementation.These controls are not discarded, but their default-profile/source integration must be repaired or explicitly confined before adoption. The host-file producer still has no implemented Keyverse issuance/rotation/revocation contract. Existing wiring tests prove only wiring. No native KMS, PostgreSQL dynamic issuance, real driver acceptance or organization-wide migration has been implemented by this documentation correction.
Stack and ownership
Current base remains
fix/remove_stale_hourly_pr_steward_test_20260910(#154); protected integration must respect prerequisite order and reacquire fresh evidence. #129 owns the encrypted vault foundation, #151 the protected root-file compatibility repair, and #103 the authorization plane. No source copying into consumers and no mutable PR-head runtime dependencies.The earlier mandatory external-custody direction in the proposed #151 ADR/operations/baseline must be reconciled with this owner correction before promotion. Central migration remains ContextualWisdomLab/.github#2063; do not duplicate it.
Verification boundary
This increment changes documentation only. No local full checkout or runtime tests were run; the local clone failed DNS resolution, so connected GitHub reads and Git Data publication were used. No historical test or security result is transferred to this head. Fresh documentation/full-service/security checks, independent review, native custody/lifecycle acceptance, protected merge and immutable release remain outstanding.
No live credentials were read, migrated, rotated or deleted. No production source rewrite, force push, Ready transition, approval, merge or deployment occurred in this correction.