intelligence-radar/workplans/IR-WP-0005-credential-delivery.md
tegwick 2f5fe5faae Close IR-WP-0005 on the passed read-only key check.
Assistant: grok
Assistant-Session: 01a106a5-fc07-78c2-b64f-8e04cea25daf
2026-10-04 17:13:00 +02:00

122 lines
6.8 KiB
Markdown

---
id: IR-WP-0005
type: workplan
title: "Deliver admitted OpenRouter credentials to Radar"
domain: infotech
repo: intelligence-radar
status: finished
flavor: implementation
owner: codex
topic_slug: custodian
origin: residual
origin_ref: IR-WP-0004
created: "2026-09-14"
updated: "2026-10-04"
state_hub_workstream_id: "624750a5-d613-5e32-a656-595de03ef73c"
---
Created before closure of IR-WP-0004 at the user's request to separate credential
delivery from billing. Source files own the work; cross-repository owner plans
retain authority over native changes. Review baseline:
`docs/evidence/2026-09-14-ir-wp-0004-review.md`.
## Confirm native delivery prerequisites
```task
id: IR-WP-0005-T01
status: done
priority: high
state_hub_task_id: "52427c5c-001d-5965-a6ec-254fef0c3deb"
```
Coordinate with SECRETS-WP-0010-T03 and its existing owner records. Reuse the existing OpenBao key and completed human approvals; verify current native validity without repeating or extending approvals. Record exact recipient, caller/owner/tenant binding, admitted transport, login/time prerequisite and current owner evidence. Do not wait for billing reconciliation to perform credential-only diagnosis. No secret values in Git, logs or State Hub.
Done: confirmed via secrets-engine's authoritative reply (thread `c511e9b5-4d29-4030-bf05-bd11502bd4f0`,
message `76e4c7da-84bb-4211-9a46-c9be0da13757`) that SECRETS-WP-0010-T03 closed done 2026-09-16 —
pinned recipient authenticated to OpenRouter `GET /api/v1/key` (HTTP 200), negative verification
passed, three approvals consumed and non-reusable. Full record with pointers (no secret values):
`docs/evidence/2026-09-27-ir-wp-0005-t01-native-delivery.md`.
## Verify scoped delivery and return readiness
```task
id: IR-WP-0005-T02
status: done
priority: high
state_hub_task_id: "c4b2378a-5241-5195-8c4b-d53ec58a7f72"
```
Depends on T01 and native owner execution. Prove value-safe read-only provider key validation, correct recipient success, wrong caller/owner/tenant/path refusal, revocation and unchanged existing llm-connect delivery. Capture source/recipient revisions and sanitized native receipts. Do not widen policies or rotate the provider key merely to unblock Radar. This plan completes on admitted delivery evidence; paid inference and campaign accounting belong elsewhere.
Blocked, 2026-09-27: secrets-engine confirmed no ops-mason build is needed and withdrew
the guest-clock hold (claim/consume uses a Railiance Clock trust file, not the OS clock).
The remaining gate is human acceptance of three new apply/verify/exec approvals for the
pinned `intelligence-radar-key-check` recipient; Radar requested secrets-engine open them
(message `45b52d6e-7a3b-4ebe-ac15-d8137957731f`). Coordination trail:
`docs/evidence/2026-09-27-ir-wp-0005-t01-native-delivery.md`.
2026-10-03: human gate routed to hub decision 62aa95e4-3ccc-4867-8806-5e3db005b483 (D1: Attended OpenBao provisioning window: one session clears the pending credential lanes) by CUST-WP-0075; resolving that decision raises C-40 here.
Rechecked 2026-10-04: decision `62aa95e4-3ccc-4867-8806-5e3db005b483` is still
`open` (`decided_at` null, last hub update 2026-10-03). The radar inbox has no
new secrets-engine message. No delivery check was run and no credential was
read. Stays wait.
2026-10-04: the founder will accept the three memos once they are published.
Asked secrets-engine again, on the same thread, to create the requests and
publish memo version 3 (message `1902d854-6fd5-4444-a11d-c074e024e4b0`). The
2026-09-27 receipt is still absent. Stays wait.
2026-10-04: the founder reviewed and accepted the three memo-version-3 pages
in the browser (`SECRETS-WP-0010-T03-apply`, `-verify`, `-exec`).
secrets-engine had published them (reply `be0e6e0d-4336-4485-a458-51fe5fa63bf7`).
Sitting policy v11 was required before those pages would open. The create
receipt `railiance-platform/docs/evidence/2026-09-27-t03-approval-requests.json`
is still the pre-delivery snapshot (`human_entries_created` false); browser
acceptance does not rewrite it. The delivery receipts
`railiance-platform/docs/evidence/2026-09-27-t03-attended-delivery.json` and
`secrets-engine/docs/evidence/2026-09-27-t03-native-execution.json` are absent.
No credential was read. Hub decision `62aa95e4-3ccc-4867-8806-5e3db005b483`
stays open. T02 stays wait until those two receipts exist. Approvals expire
2026-10-05T14:24:25Z. Told secrets-engine on the same thread that one delivery
is starting and a second execution must not start (message
`a1917597-fe75-4e2f-812e-a2a640db56c5`). Worker
`01a10769-5085-7161-88a7-540ce9d75466` is that single delivery.
That delivery failed closed in preflight at 2026-10-04T15:00:30Z, before any
apply, verify, or exec claim. Warden exit 11. Attended phase
`scoped_reader_delivered`, failure `attended_admin_failed`. Native phase
`preflight`, `DeliveryError` at `exec_owner.py:184`: the pinned session
directory `/run/user/1000/secrets-engine-openrouter-check` was absent from the
user tmpfs. The checker file and `/usr/bin/python3.12` still match their pins.
No credential was emitted and no provider call was made. The failed receipts
are preserved as
`secrets-engine/docs/evidence/2026-10-04-t03-native-execution-cwd-missing.json`
and
`railiance-platform/docs/evidence/2026-10-04-t03-attended-delivery-cwd-missing.json`.
The blocking native path was moved aside because this preflight claimed
nothing. The empty directory was recreated at mode 0700, and the local
preflight then passed. One further delivery follows, worker
`01a10771-88c8-7a31-ae9f-23e74d71b37a`.
2026-10-04T15:10:05Z: that retry passed. Warden exited 0. Attended receipt
`railiance-platform/docs/evidence/2026-09-27-t03-attended-delivery.json` is
`passed` / `native_actions_completed`, `credential_values_emitted` false,
private runtime removed. Native receipt
`secrets-engine/docs/evidence/2026-09-27-t03-native-execution.json` is
`passed` / `all_actions_completed`. Apply was already satisfied, so approval
`b5fcbfcc-ad56-456f-bc36-c823052e9917` was not consumed and the role limits
stayed token TTL 900, max TTL 1800, secret-id TTL 900, one secret-id use,
eight token uses. Verify `4e9ff881-d59f-4143-9155-929afbe8dd43` exited 0 with
the unrelated path denied, the session revocation checked, and the revoked
token lookup at HTTP 403. Exec `a24e0898-b3c5-4e50-85a8-18a2c2aa229e` exited 0.
The pinned recipient key check returned `authenticated` with HTTP 200.
`llm-connect` stayed ready and its ExternalSecret stayed ready. No provider
key was rotated and no inference was run. Hub decision
`62aa95e4-3ccc-4867-8806-5e3db005b483` stays open. Billing remains
IR-WP-0006-T03. Field outcomes remain IR-WP-0007.
Asked informed-decision to provide the already specified pose-and-answer path
(`INFD-WP-0005`, `docs/specs/FrictionlessDecisionIntake.md`): one prepared
decision, a returned review URL, and the same login able to open and answer it.
Message `5500f885-17d3-4b8f-bc07-fc6ee4c33d89`.