Add native rotate and persistent lane overlay states
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

rotate replaces one declared KV field through the merge-safe patch path
and never prints the value. Overlay states active/suspended/deactivated/
compromised live under the evidence directory. compromise/reactivate and
successful suspend/deactivate/revoke update that overlay; exec/wrap/
handoff/provision refuse non-active lanes. Provider-side rotation stays
with rotation.owner. Production remains fail-closed.

Assistant: grok
Assistant-Session: 01a05f07-ae72-7781-9fcb-19efd61add00
This commit is contained in:
tegwick 2026-09-02 13:09:10 +02:00
parent 85d4548035
commit 72d3327c28
12 changed files with 596 additions and 20 deletions

View file

@ -179,8 +179,11 @@ high-risk lanes.
These operations do not manage external workload delivery. `session revoke`
revokes an already-issued token accessor or lease id the operator already
holds; evidence is fingerprint-only. There is currently no rotation command,
compromised state, or persistent/reversible lane state machine.
holds; evidence is fingerprint-only. `rotate` replaces one declared KV field
through the merge-safe write path. Persistent overlay states
(`active`/`suspended`/`deactivated`/`compromised`) live under the evidence
directory; they do not recreate OpenBao objects and do not rotate provider
credentials.
## CLI Surface
@ -222,10 +225,8 @@ metadata. `secrets-engine wrap` implements response-wrapped operator handoff.
- A service API, daemon, UI, queue, scheduler, or remote multi-user service.
- Platform JWT mount/role materialization for the implemented KeyCape
service-auth / `service-jwt` provider.
- Provider-side rotation or coordinated multi-consumer rollout.
- First-class rotate, compromise, reactivate, lease-status, or audit report
commands; lifecycle operations currently execute plans without persistent
lane state.
- Provider-side / workload consumer rotation. Overlay lane state is local and
non-secret only; it is not an OpenBao-side state machine.
- Resolution of a durable access-engine decision record / State Hub
ActionAuthorization and wiring its validated approval threshold to each
production handler. The consumer validator exists; the serving endpoint does