Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e2e-805b-7042-a750-71f473bceea2
1.3 KiB
1.3 KiB
Deployment gates
The checked-in StatefulSet is a reviewed release input, not evidence of a live
deployment. Replace both image placeholders with the same immutable digest.
SQLite is intentionally limited to one replica, ReadWriteOnce storage, and an
OnDelete update: never start two writers against a copied database.
Before applying:
- Register the exact
approval-engineaudience, caller scopes, and service clients in KeyCape. Confirm the in-cluster JWKS endpoint and configured issuer match the manifest. - Register
approval-engineas an audit-core sender, add matching audit-core ingress, and provisionapproval-engine-auditthrough the credential owner. The Secret must contain keyaudit-token; never commit its value. - Build and scan the image, replace
REPLACE_WITH_RELEASE_DIGEST, then runmake deploy-dry-run. - Take a verified backup. Roll out by deleting the sole pod, then prove readiness, restart persistence, outbox drain, heartbeat, and restore.
- Enable a caller namespace only by applying label
railiance.io/approval-engine-client=true; JWT scope checks remain the inner boundary.
The audit-core receiver-side registration, cadence findings, and accepted-count
reconciliation are tracked by AUDIT-WP-0009-T04/T06/T09 and cannot be closed
from this repository.