Add named engine auth and accessor-file session revoke
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Select service-jwt, bootstrap, or env exclusively: JWT login uses a JSON
file, self-revokes, and never falls back to bootstrap or BAO_TOKEN. The
platform JWT mount/role is still unpublished, so auto keeps named
bootstrap/env providers.

session revoke --accessor-file revokes an already-issued token with
fingerprint-only evidence. Production remains fail-closed.

Assistant: grok
Assistant-Session: 01a05f07-ae72-7781-9fcb-19efd61add00
This commit is contained in:
tegwick 2026-09-02 01:24:08 +02:00
parent a94003de4f
commit 3abee434df
18 changed files with 698 additions and 135 deletions

View file

@ -33,6 +33,7 @@ owned_tooling:
operations:
- "bao policy/auth/kv subprocess adapter"
- "CAS-aware KV create/patch via JSON input files, never argv values"
- "JWT login via JSON input files; issued engine tokens self-revoke"
note: >-
This is the owned Lifecycle contact, not a Staff §5 shape. A new direct
OpenBao client outside the listed modules is a finding.
@ -56,6 +57,7 @@ protected_actions:
- lifecycle-suspend
- lifecycle-deactivate
- lifecycle-destroy
- session-revoke
# §13 proposed capabilities. Owner status is proposed, not assented, until
# the surface exists in this repository's own contract.
@ -143,12 +145,15 @@ non_tooling_clients:
layer: tooling
modules:
- src/secrets_engine/service_auth.py
operation: "HTTPS client_credentials exchange; not connected to OpenBao"
- src/secrets_engine/engine_auth.py
operation: "HTTPS client_credentials exchange; OpenBao JWT login when the platform contract is present"
write: false
note: >-
key-cape is catalogued Tooling. This contact is an identity-token
preflight only and is deliberately not a write into OpenBao. Wiring it
as OpenBao JWT login remains blocked on the platform-owned role.
key-cape is catalogued Tooling. The consumer exchanges a service JWT and
logs in only when SECRETS_ENGINE_OPENBAO_JWT_LOGIN names a published
mount/role contract. Failure never falls back to bootstrap or BAO_TOKEN.
The platform-owned role remains unpublished, so auto still uses the
named bootstrap/env providers.
- id: audit-core-outbox-drain
target: audit-core