Prepare exact native recipient and record approval service activation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a09cbb-87c6-7900-a145-4ce53ba9f1a6
This commit is contained in:
tegwick 2026-09-14 01:08:50 +02:00
parent 992f20f79d
commit 1f7f42b277
9 changed files with 514 additions and 62 deletions

View file

@ -0,0 +1,84 @@
{
"storage": {
"schema_version": 5,
"expected_schema_version": 5,
"schema_current": true,
"persistent": true,
"required_tables": {
"approvals": true,
"entries": true,
"outbox": true
},
"integrity": [
"ok"
],
"foreign_key_violations": 0,
"ok": true
},
"outbox": {
"total": 1,
"pending": 0,
"max_age_seconds": 0,
"attempts": 1,
"failed_pending": 0,
"counts": {
"issuance": 0,
"use": 0,
"supersession": 0,
"revocation": 0,
"heartbeat": 1
}
},
"restored": {
"schema_version": 5,
"expected_schema_version": 5,
"schema_current": true,
"persistent": true,
"required_tables": {
"approvals": true,
"entries": true,
"outbox": true
},
"integrity": [
"ok"
],
"foreign_key_violations": 0,
"ok": true
},
"readiness": 200,
"anonymous_refusal": 401,
"invalid_bearer_refusal": 401,
"jwks_reachable": true,
"timestamp": "2026-09-13T23:06:37.566144+00:00",
"status": "deployed_and_restart_restore_verified",
"cluster_uid": "a553c742-0115-43d4-99a4-a5ca56fe0786",
"pod_uid_before_restart": "95215659-3b17-4ccf-ab8c-98418439cdbe",
"pod_uid_after_restart": "7b8c05d9-f1d5-403d-abb3-2250bff9db5e",
"image": "forgejo.coulomb.social/coulomb/approval-engine@sha256:251941a5cb2724b57cc32cff6b693b1ab0be695bee4f56f02d51961189c0fa49",
"resources": {
"limits": {
"cpu": "500m",
"memory": "256Mi"
},
"requests": {
"cpu": "25m",
"memory": "64Mi"
}
},
"caller_token_automount": false,
"tests": {
"repository": 156,
"changed_manifest": 6
},
"backup": {
"persistent_path": "/data/t03-initial-backup-20260914.sqlite",
"independent_local_copy": "/tmp/t03-approval-backup/restored.sqlite",
"restore_exercise": "isolated copy opened with actual engine; live database was not overwritten",
"retention": "initial test backups only; long-term backup schedule/retention not established"
},
"limitations": [
"No real approval created, human entry supplied, or credential consumed.",
"Consumer client-side reader and requesting identity remain unadmitted.",
"Heartbeat acknowledgment/outbox persistence proved; independent audit archive retrieval remains Audit Core owner work."
]
}

View file

@ -0,0 +1,100 @@
{
"tenant": "tenant:platform",
"subject": {
"id": "secrets-engine",
"type": "service"
},
"action": "apply",
"resource": {
"id": "catalog:openrouter-llm-connect",
"type": "secret-catalog-lane",
"system": "secrets-engine",
"attributes": {
"stage": "prod",
"fields": [],
"policy_targets": [
"se-prod-openrouter-llm-connect"
],
"auth_targets": [
"se-prod-openrouter-llm-connect"
]
}
},
"context": {
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference",
"catalog_target": {
"kind": "kv",
"org": "coulomb",
"repo": "llm-connect",
"mount": "platform",
"path": "workloads/activity-core/llm-connect/llm-connect-provider-secrets",
"fields": [
"OPENROUTER_API_KEY"
],
"mount_management": "existing",
"consumers": [
{
"name": "llm-connect-activity-core",
"auth": "kubernetes",
"claim": "serviceaccount:external-secrets/external-secrets",
"purpose": "sync llm-connect-provider-secrets for the activity-core deployment"
},
{
"name": "intelligence-radar-key-check",
"auth": "approle",
"claim": "catalog:openrouter-llm-connect",
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference"
}
],
"delivery_modes": [
"exec-env",
"read-check"
],
"delivery_auth": {
"method": "approle",
"management": "engine",
"policy_name": "se-prod-openrouter-llm-connect",
"role_name": "se-prod-openrouter-llm-connect",
"token_ttl": "15m",
"token_max_ttl": "30m",
"secret_id_ttl": "15m",
"secret_id_num_uses": 1,
"token_num_uses": 8
},
"delivery_config": {
"exec_owner": {
"status": "configured",
"owner": "intelligence-radar-key-check",
"command": [
"/usr/bin/python3.12",
"-I",
"-B",
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py"
],
"cwd": "/run/user/1000/secrets-engine-openrouter-check",
"environment": {
"LANG": "C.UTF-8"
},
"files": {
"/usr/bin/python3.12": {
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
"private": false
},
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py": {
"sha256": "dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253",
"private": true
}
}
}
},
"auth_capability": {},
"workload_delivery": [
{
"mode": "external-secrets",
"owner": "railiance-platform + llm-connect"
}
]
},
"human_control": true
}
}

View file

@ -0,0 +1,103 @@
{
"tenant": "tenant:platform",
"subject": {
"id": "secrets-engine",
"type": "service"
},
"action": "exec",
"resource": {
"id": "catalog:openrouter-llm-connect",
"type": "secret-catalog-lane",
"system": "secrets-engine",
"attributes": {
"stage": "prod",
"fields": [
"OPENROUTER_API_KEY"
],
"policy_targets": [
"se-prod-openrouter-llm-connect"
],
"auth_targets": [
"se-prod-openrouter-llm-connect"
]
}
},
"context": {
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference",
"catalog_target": {
"kind": "kv",
"org": "coulomb",
"repo": "llm-connect",
"mount": "platform",
"path": "workloads/activity-core/llm-connect/llm-connect-provider-secrets",
"fields": [
"OPENROUTER_API_KEY"
],
"mount_management": "existing",
"consumers": [
{
"name": "llm-connect-activity-core",
"auth": "kubernetes",
"claim": "serviceaccount:external-secrets/external-secrets",
"purpose": "sync llm-connect-provider-secrets for the activity-core deployment"
},
{
"name": "intelligence-radar-key-check",
"auth": "approle",
"claim": "catalog:openrouter-llm-connect",
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference"
}
],
"delivery_modes": [
"exec-env",
"read-check"
],
"delivery_auth": {
"method": "approle",
"management": "engine",
"policy_name": "se-prod-openrouter-llm-connect",
"role_name": "se-prod-openrouter-llm-connect",
"token_ttl": "15m",
"token_max_ttl": "30m",
"secret_id_ttl": "15m",
"secret_id_num_uses": 1,
"token_num_uses": 8
},
"delivery_config": {
"exec_owner": {
"status": "configured",
"owner": "intelligence-radar-key-check",
"command": [
"/usr/bin/python3.12",
"-I",
"-B",
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py"
],
"cwd": "/run/user/1000/secrets-engine-openrouter-check",
"environment": {
"LANG": "C.UTF-8"
},
"files": {
"/usr/bin/python3.12": {
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
"private": false
},
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py": {
"sha256": "dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253",
"private": true
}
}
}
},
"auth_capability": {},
"workload_delivery": [
{
"mode": "external-secrets",
"owner": "railiance-platform + llm-connect"
}
]
},
"human_control": true,
"exec_owner_sha256": "22393c7e751e458fa64bb24305ee66a26bbe3993c5aba03ae1fc1a488e777b42"
}
}

View file

@ -0,0 +1,102 @@
{
"tenant": "tenant:platform",
"subject": {
"id": "secrets-engine",
"type": "service"
},
"action": "verify",
"resource": {
"id": "catalog:openrouter-llm-connect",
"type": "secret-catalog-lane",
"system": "secrets-engine",
"attributes": {
"stage": "prod",
"fields": [
"OPENROUTER_API_KEY"
],
"policy_targets": [
"se-prod-openrouter-llm-connect"
],
"auth_targets": [
"se-prod-openrouter-llm-connect"
]
}
},
"context": {
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference",
"catalog_target": {
"kind": "kv",
"org": "coulomb",
"repo": "llm-connect",
"mount": "platform",
"path": "workloads/activity-core/llm-connect/llm-connect-provider-secrets",
"fields": [
"OPENROUTER_API_KEY"
],
"mount_management": "existing",
"consumers": [
{
"name": "llm-connect-activity-core",
"auth": "kubernetes",
"claim": "serviceaccount:external-secrets/external-secrets",
"purpose": "sync llm-connect-provider-secrets for the activity-core deployment"
},
{
"name": "intelligence-radar-key-check",
"auth": "approle",
"claim": "catalog:openrouter-llm-connect",
"purpose": "IR-WP-0004 read-only OpenRouter key authentication check; no inference"
}
],
"delivery_modes": [
"exec-env",
"read-check"
],
"delivery_auth": {
"method": "approle",
"management": "engine",
"policy_name": "se-prod-openrouter-llm-connect",
"role_name": "se-prod-openrouter-llm-connect",
"token_ttl": "15m",
"token_max_ttl": "30m",
"secret_id_ttl": "15m",
"secret_id_num_uses": 1,
"token_num_uses": 8
},
"delivery_config": {
"exec_owner": {
"status": "configured",
"owner": "intelligence-radar-key-check",
"command": [
"/usr/bin/python3.12",
"-I",
"-B",
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py"
],
"cwd": "/run/user/1000/secrets-engine-openrouter-check",
"environment": {
"LANG": "C.UTF-8"
},
"files": {
"/usr/bin/python3.12": {
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
"private": false
},
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py": {
"sha256": "dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253",
"private": true
}
}
}
},
"auth_capability": {},
"workload_delivery": [
{
"mode": "external-secrets",
"owner": "railiance-platform + llm-connect"
}
]
},
"human_control": true
}
}

View file

@ -0,0 +1,32 @@
{
"status": "recipient_installed_pending_admission",
"owner_digest": "22393c7e751e458fa64bb24305ee66a26bbe3993c5aba03ae1fc1a488e777b42",
"script_sha256": "dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253",
"binding": {
"status": "configured",
"owner": "intelligence-radar-key-check",
"command": [
"/usr/bin/python3.12",
"-I",
"-B",
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py"
],
"cwd": "/run/user/1000/secrets-engine-openrouter-check",
"environment": {
"LANG": "C.UTF-8"
},
"files": {
"/usr/bin/python3.12": {
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
"private": false
},
"/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py": {
"sha256": "dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253",
"private": true
}
}
},
"credential_values_read": false,
"active_catalog_changed": false,
"runtime_trust": "system Python/stdlib maintained by root; executable and script pinned; -I -B isolates Python configuration"
}

View file

@ -4,12 +4,6 @@
> live PDP receipt and remaining service/reader gates are in > live PDP receipt and remaining service/reader gates are in
> docs/openrouter-native-access.md (SECRETS-WP-0010). > docs/openrouter-native-access.md (SECRETS-WP-0010).
> Current protocol correction (2026-09-14): follow claim → validated PDP Check →
> CAS consume, as implemented in docs/approval-consumption.md. ActionAuthorization
> is deferred and never ratified. The OpenRouter-specific current implementation,
> live PDP receipt and remaining service/reader gates are in
> docs/openrouter-native-access.md (SECRETS-WP-0010).
# Native lane cutover (SECRETS-WP-0006-T05 / T06) # Native lane cutover (SECRETS-WP-0006-T05 / T06)
Status: procedure only. Live apply is still fail-closed until Status: procedure only. Live apply is still fail-closed until

View file

@ -32,10 +32,10 @@ A successful check does not reconcile radar's existing spend reservation.
`docs/proposals/openrouter-key-check.yaml` is an inactive proposed catalog overlay. `docs/proposals/openrouter-key-check.yaml` is an inactive proposed catalog overlay.
It retains the existing lane id/KV/policy/AppRole and ESO consumer, declares human It retains the existing lane id/KV/policy/AppRole and ESO consumer, declares human
control, and names the key-check recipient with a pending exec-owner binding. control, and names the key-check recipient with an installed, configured exec-owner binding.
The active `catalog/openrouter-llm-connect.yaml` remains limited to its admitted The active `catalog/openrouter-llm-connect.yaml` remains limited to its admitted
llm-connect purpose. The proposal is outside the active catalog and pending exec llm-connect purpose. The proposal is outside the active catalog; configuration is not approval.
refuses before consume/backend. Do not copy it into the active catalog until Its exact interpreter/script paths and pins are recorded in the install receipt. Do not copy it into the active catalog until
custody-owner admission and the exact protected recipient installation are reviewed. custody-owner admission and the exact protected recipient installation are reviewed.
## Verification ## Verification
@ -57,14 +57,15 @@ state their scope and cleanup. This removes the outdated PDP image dependency.
## Remaining admitted execution sequence (SECRETS-WP-0010-T03) ## Remaining admitted execution sequence (SECRETS-WP-0010-T03)
1. Complete APPROVAL-WP-0002-T01/T03/T05 and its identity/audit dependencies; 1. APPROVAL-WP-0002-T03 is now deployed, with existing audit custody and current
its declared namespace currently has no StatefulSet, pod or Service. Complete JWKS verified (2026-09-14 deployment receipt). T01/T05 still require the
admitted requesting/human/consumer path. Complete
RPF-WP-0035-T06 / CCR-2026-0019 client-side reader admission for the secrets-engine RPF-WP-0035-T06 / CCR-2026-0019 client-side reader admission for the secrets-engine
approval-client. Keep secrets outside Git and use the existing attended approval-client. Keep secrets outside Git and use the existing attended
procedure in `docs/approval-service-auth.md`; do not read the verifier's Secret. procedure in `docs/approval-service-auth.md`; do not read the verifier's Secret.
2. Have the custody owner admit this exact read-only recipient. Install and pin 2. Have the custody owner admit this exact read-only recipient. The configured local installation already pins
its Python runtime and script, exact argv, private working directory and fixed its Python executable and script, exact argv, private working directory and fixed
environment via `docs/exec-owner-binding.md`. Obtain the scoped attended environment; review the installation receipt against `docs/exec-owner-binding.md`. Obtain the scoped attended
platform authority; no standing bootstrap credential or sibling identity. platform authority; no standing bootstrap credential or sibling identity.
3. Render the finalized request, use the evaluator-origin digest to create a 3. Render the finalized request, use the evaluator-origin digest to create a
declared-human-control approval, obtain the real human entry, observe claim, declared-human-control approval, obtain the real human entry, observe claim,
@ -80,3 +81,11 @@ state their scope and cleanup. This removes the outdated PDP image dependency.
approval. Reconcile the existing USD 0.023712 reservation in campaign approval. Reconcile the existing USD 0.023712 reservation in campaign
`ir-openrouter-pilot-20260913`; preserve the authorized USD 10 ceiling. This `ir-openrouter-pilot-20260913`; preserve the authorized USD 10 ceiling. This
task did not execute the key check or spend campaign funds. task did not execute the key check or spend campaign funds.
The finalized request artifacts are `docs/evidence/2026-09-14-openrouter-final-*-request.json`.
They replace the earlier pending-recipient proposal as review inputs, not as an
issued approval. Recipient proof is in `2026-09-14-openrouter-recipient-install.json`.
The exact operator-group question is pending user input. Native requesting
identity (`approval:create`) and Informed Decision human review are also needed;
do not reuse the withdrawn combined operator client or seed a production approval.

View file

@ -1,36 +1,32 @@
# PROPOSED reviewed-input template; not active catalog or credential admission. # Configured local recipient proposal; not active catalog or credential admission.
# SECRETS-WP-0010; retain the existing KV and AppRole names.
id: openrouter-llm-connect id: openrouter-llm-connect
kind: kv kind: kv
org: coulomb org: coulomb
repo: llm-connect repo: llm-connect
stage: prod stage: prod
description: >- description: OpenRouter provider credential used by llm-connect for activity-core.
OpenRouter provider credential used by llm-connect for activity-core. The The proposed native recipient checks key authentication only; trial delivery requires
proposed native recipient checks key authentication only; trial delivery a separate reviewed recipient and exact-action approval.
requires a separate reviewed recipient and exact-action approval.
mount: platform mount: platform
path: workloads/activity-core/llm-connect/llm-connect-provider-secrets path: workloads/activity-core/llm-connect/llm-connect-provider-secrets
mount_management: existing mount_management: existing
fields: fields:
- OPENROUTER_API_KEY - OPENROUTER_API_KEY
consumers: consumers:
- name: llm-connect-activity-core - name: llm-connect-activity-core
auth: kubernetes auth: kubernetes
claim: serviceaccount:external-secrets/external-secrets claim: serviceaccount:external-secrets/external-secrets
purpose: sync llm-connect-provider-secrets for the activity-core deployment purpose: sync llm-connect-provider-secrets for the activity-core deployment
- name: intelligence-radar-key-check - name: intelligence-radar-key-check
auth: approle auth: approle
claim: catalog:openrouter-llm-connect claim: catalog:openrouter-llm-connect
purpose: IR-WP-0004 read-only OpenRouter key authentication check; no inference purpose: IR-WP-0004 read-only OpenRouter key authentication check; no inference
workload_delivery: workload_delivery:
- mode: external-secrets - mode: external-secrets
owner: railiance-platform + llm-connect owner: railiance-platform + llm-connect
delivery_modes:
delivery_modes: [exec-env, read-check] - exec-env
- read-check
delivery_auth: delivery_auth:
method: approle method: approle
management: engine management: engine
@ -41,47 +37,51 @@ delivery_auth:
secret_id_ttl: 15m secret_id_ttl: 15m
secret_id_num_uses: 1 secret_id_num_uses: 1
token_num_uses: 8 token_num_uses: 8
approval: approval:
model: ccr model: ccr
human_control: true human_control: true
purpose: IR-WP-0004 read-only OpenRouter key authentication check; no inference purpose: IR-WP-0004 read-only OpenRouter key authentication check; no inference
decision_ref: CCR-2026-0003 decision_ref: CCR-2026-0003
notes: >- notes: CCR-2026-0003 approves the existing workload lane. A live native AppRole
CCR-2026-0003 approves the existing workload lane. A live native AppRole apply remains gated by SECRETS-WP-0006-T05 review and operator approval. First
apply remains gated by SECRETS-WP-0006-T05 review and operator approval. native-cutover candidate (docs/native-lane-cutover.md); not an authorization to
First native-cutover candidate (docs/native-lane-cutover.md); not an apply.
authorization to apply.
verification: verification:
positive: approved delivery AppRole can read OPENROUTER_API_KEY without printing it positive: approved delivery AppRole can read OPENROUTER_API_KEY without printing
it
negative: unrelated token is denied on platform/data/workloads/activity-core/llm-connect/llm-connect-provider-secrets negative: unrelated token is denied on platform/data/workloads/activity-core/llm-connect/llm-connect-provider-secrets
risk: risk:
classification: high classification: high
notes: provider key can incur spend and remains valid outside OpenBao until revoked at OpenRouter notes: provider key can incur spend and remains valid outside OpenBao until revoked
at OpenRouter
rotation: rotation:
owner: railiance-platform + llm-connect provider operator owner: railiance-platform + llm-connect provider operator
expectation: >- expectation: Mint a replacement at OpenRouter, update every live cluster copy, wait
Mint a replacement at OpenRouter, update every live cluster copy, wait for for ESO refresh, restart llm-connect, verify, and revoke the old provider key.
ESO refresh, restart llm-connect, verify, and revoke the old provider key.
ttl: provider-defined ttl: provider-defined
deactivation: deactivation:
owner: railiance-platform + llm-connect owner: railiance-platform + llm-connect
expectation: >- expectation: Disable the front door and workload read path, remove materialized
Disable the front door and workload read path, remove materialized Secrets, Secrets, stop consumers, and revoke the provider key at OpenRouter.
stop consumers, and revoke the provider key at OpenRouter.
audit: audit:
evidence: CCR id, actor, exact path, field name, provider key identifier if non-secret, timestamps, and pass/fail only evidence: CCR id, actor, exact path, field name, provider key identifier if non-secret,
timestamps, and pass/fail only
delivery_config: delivery_config:
exec_owner: exec_owner:
status: pending status: configured
owner: intelligence-radar-key-check owner: intelligence-radar-key-check
reason: >- command:
Pin tools/openrouter_key_check.py and its protected Python runtime, exact - /usr/bin/python3.12
argv, private cwd and fixed environment after custody-owner admission. - -I
The pending binding refuses exec before consume or secret retrieval. - -B
- /home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py
cwd: /run/user/1000/secrets-engine-openrouter-check
environment:
LANG: C.UTF-8
files:
/usr/bin/python3.12:
sha256: e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f
private: false
/home/worsch/.local/share/secrets-engine/recipients/openrouter-key-check-dc1569f63ef7/openrouter_key_check.py:
sha256: dc1569f63ef74d73f0a735548c0573db2a1493f7ffc86945f52d0be9b27a3253
private: true

View file

@ -70,3 +70,31 @@ SECRETS-WP-0007-T04/T07 and SECRETS-WP-0006-T05/T06 remain wait; this workplan
must not close them from synthetic evidence. Keep WARDEN-WP-0039-T03 and must not close them from synthetic evidence. Keep WARDEN-WP-0039-T03 and
IR-WP-0004-T02 waiting until the native route passes. Trials require a separately IR-WP-0004-T02 waiting until the native route passes. Trials require a separately
bound recipient and the existing campaign/budget reconciliation. bound recipient and the existing campaign/budget reconciliation.
### T03 continuation — 2026-09-14
User explicitly requested execution of T03. Completed the independently runnable
prerequisites: Approval Engine is now deployed and restart/backup/restore verified
(APPROVAL-WP-0002-T03 done). Existing audit sender custody/ESO and KeyCape
consumer registration were already complete; neither was reprovisioned. Live
JWKS/readiness/anonymous and invalid-bearer refusal plus durable heartbeat/outbox
checks pass. See `docs/evidence/2026-09-14-approval-engine-deployment.json`.
Installed the read-only checker in the owner-private versioned local directory,
using pinned `/usr/bin/python3.12 -I -B <script>`, fixed environment and private
runtime cwd. `docs/proposals/openrouter-key-check.yaml` now has a configured
recipient; it remains outside the active catalog and does not admit key use.
Runtime trust is the system-owned Python standard library plus pinned executable
and script. The install receipt and finalized apply/verify/exec request JSONs are
under docs/evidence. No provider request or credential read was made.
Current wait: user input naming the exact authorized KeyCape operator group for
CCR-2026-0019 (asked during this continuation; not inferred from unrelated admin
roles). Then complete the scoped OIDC reader and admitted native delivery.
A separately admitted approval:create requester and real human approver flow
also remain necessary: the withdrawn approval-engine-operator convenience client
must not be restored or used to create and approve its own requests. Informed
Decision's native review flow and requester admission are dependencies, not
replaced by a service token or a seeded live approval. T03 remains open until
real approval/consume, attended OpenBao apply, key check, positive/negative
native delivery and revocation are evidenced.