docs(custody): record attended KeyCape first-provision authority proof
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-5.6-luna
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
tegwick 2026-09-08 22:40:04 +02:00
parent a0bbae842c
commit a94d06dbcf
5 changed files with 204 additions and 0 deletions

View file

@ -156,3 +156,25 @@ platform side; the window needs roughly 6090 minutes with both owners present
(KEY-WP-0009-T04) or to RPF-WP-0035-T02's service-JWT lane.
- No approval for `approval:consume` on the operator client, now or by later
scope edit. Adding it is a new lane decision.
## Attended authority return — 2026-09-08
The metadata-only first-provision preflight is now observed on the exact six
policy/role/data paths: create/update capabilities are present. The successful
session self-revoked and its helper was removed. This settles the availability
of the named operator authority, not the CCR approvals or the upstream issuer
precondition. See
[the receipt](../evidence/2026-09-08-keycape-approval-custody-preflight.json).
For a repeat after a role/policy change, use the existing contained WSL wrapper:
```bash
python3 scripts/openbao-attended-exec.py -- /usr/bin/python3 \
scripts/keycape-approval-custody-preflight.py --receipt /tmp/<new-private-receipt>.json
```
Use an absolute path to the owner command if invoking from another directory.
It emits no output or values; inspect its allowlisted capability metadata only
after Warden has completed revocation and cleanup. No custody activation or
approval is performed by this preflight.

View file

@ -0,0 +1,86 @@
{
"observed_at": "2026-09-08T20:36:47.042499+00:00",
"requests": [
"CCR-2026-0017",
"CCR-2026-0018"
],
"operation": "capabilities-self only",
"credential_data_read": false,
"metadata_applied": false,
"custody_activated": false,
"upstream_issuer_proven": false,
"status": "observed",
"capabilities": {
"sys/policies/acl/workload-kv-read-keycape-secrets-engine-approval": [
"create",
"delete",
"list",
"read",
"sudo",
"update"
],
"sys/policies/acl/workload-kv-read-keycape-approval-engine-operator": [
"create",
"delete",
"list",
"read",
"sudo",
"update"
],
"auth/kubernetes/role/external-secrets-keycape-secrets-engine-approval": [
"create",
"delete",
"list",
"read",
"sudo",
"update"
],
"auth/kubernetes/role/external-secrets-keycape-approval-engine-operator": [
"create",
"delete",
"list",
"read",
"sudo",
"update"
],
"platform/data/workloads/secrets-engine/approval-client": [
"create",
"delete",
"list",
"read",
"update"
],
"platform/data/workloads/approval-engine/operator-client": [
"create",
"delete",
"list",
"read",
"update"
]
},
"required_metadata_capabilities_present": true,
"paths_verified": 6,
"login_lane": "openbao-platform-admin-login",
"launcher": "scripts/openbao-attended-exec.py",
"command": "scripts/keycape-approval-custody-preflight.py --receipt <new-private-file>",
"wrapper_exit": 0,
"session_self_revoked": true,
"helper_root_removed": true,
"attempt_notes": [
{
"attempt": 1,
"result": "direct launcher unavailable; no child handoff; revocation unconfirmed",
"credential_data_read": false
},
{
"attempt": 2,
"result": "owner wrapper login/self-revocation succeeded; capability command rejected unsupported multiple-path syntax",
"credential_data_read": false
},
{
"attempt": 3,
"result": "six single-path capability queries succeeded; session self-revoked and helper removed",
"credential_data_read": false
}
]
}