Use existing founder execution lane for read-only pilot inventory
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-6.1-sol
Assistant-Session: 01a1abf1-7e95-7141-87c9-ee78332bf790
This commit is contained in:
tegwick 2026-11-05 23:02:01 +01:00
parent 560589e154
commit d2eefb371d
4 changed files with 64 additions and 173 deletions

View file

@ -0,0 +1,16 @@
{
"schema": "railiance.vergabe-pilot-inventory-launcher-return.v1",
"reported_on": "2026-11-05",
"evidence_kind": "user_reported_terminal_output",
"workplan": "RAPPS-WP-0014",
"task": "RAPPS-WP-0014-T03",
"prepared_digest": "sha256:2014e62a84b0875fec155dbfd1be26963d9a39ab931092d26c5dfb9e627ffbd7",
"status": "launcher_failed",
"failure": "admitted_gexec_missing",
"execution_host": "not_reported",
"proposal_staging_reached": false,
"approval_or_submission_reached": false,
"native_inventory_executed": false,
"runtime_mutations": false,
"followup": "Founder executes the reviewed read-only inventory on railiance01 under the existing supervisor-execution lane; no executor installation or agent privilege grant is required."
}

View file

@ -28,45 +28,45 @@ reads are forbidden and Helm listing fails. This caller did not execute a
privileged proposal. The workstation has no installed `gexec` command; proposal
preparation used the existing gated-executor source CLI/action format only.
For attended execution, review this exact JSON with `gexec show` in the admitted
founder runtime, sign it with that runtime's existing approver key and submit
through its configured spool. The environment orientation §6 requires the
gated executor for privileged actions. No signing key, elevated kubeconfig or
new standing agent grant is requested by the packet. The result must report
The gated executor is the agent's privileged execution path. CUST-WP-0073-T01
also explicitly permits **supervisor execution**, with admin credentials kept
outside the agent. The founder can run this reviewed read-only inventory in
their own terminal on railiance01. The result must report
`native_inventory_complete: true` before using its expected release as the
baseline of a separately reviewed capture/restart operation.
## Founder-terminal handoff
## Founder-executed inventory
The user has now confirmed cross-account task edits and the functional flow
through Zuschlag/Nachlese, with UI follow-up. The remaining first step is native
inventory. A restricted SSH check as `custodian-agt` was refused at authentication;
the agent did not try an elevated account or issue its own certificate.
The first launcher attempt returned `admitted_gexec_missing` before any
staging, signature or submission. That establishes only that the fixed gexec
path was unavailable in the invoking terminal; its host was not reported.
The founder does not need an executor installation to perform their own
reviewed read-only check.
From a synced `railiance-apps` checkout on **railiance01**, run:
From a synced `railiance-apps` checkout in the founder's own terminal on
**railiance01**, run:
```bash
python3 tools/vergabe_pilot_inventory_attended.py --submit
sudo env KUBECONFIG=/etc/rancher/k3s/k3s.yaml /usr/bin/python3 tools/vergabe_pilot_inventory.py
```
The launcher asks for the **path** to the existing gexec approver key. The normal
gexec review/signature step follows. It stages the fixed proposal in the existing
exchange directory, then uses `sudo -u custodian-agt` only to enqueue the signed
request under the required UID and read its sanitized result. Kubernetes access
runs through gexec's configured `kube:railiance01` target. The founder needs the
existing exchange access and ability to use that restricted account via sudo.
No new key, standing grant or privileged kubeconfig is installed. Keep the
approver key in its existing custody. If it is held only on the workstation,
sign the action there with the existing gexec CLI and supply that public signed
approval on the node with `--submit --approval /path/to/approval.json`; do not
copy the private key to the node. Gexec verifies the signature and its expiry.
Share the resulting JSON. This is the same inventory source pinned above.
The kubeconfig remains in the founder's privileged execution path. The agent
receives the helper's sanitized metadata receipt, not administrative credentials.
No snapshot, restart or resource change is included.
Share the final result JSON. If it is pending, retrieve the same request with
`python3 tools/vergabe_pilot_inventory_attended.py --result REQUEST_ID` before
submitting again. This mode only reads the result and never enqueues an action.
The launcher defaults to local packet
review when `--submit` is omitted and refuses a changed action digest. The
existing gated executor remains responsible for signature/nonce/profile checks.
Authority: `the-custodian/workplans/CUST-WP-0073-agent-credential-separation.md`,
T01: exact privileged actions go through "supervisor approval or supervisor
execution". This uses the existing supervisor lane; it does not add an agent
permission, change a control or install a service.
## Agent execution
The original action JSON remains available for the agent's existing admitted
gexec show/approve/submit procedure. Restricted agent SSH authentication was
refused; no elevated account was attempted. The custom founder launcher was
retired because it unnecessarily required gexec for the founder's own read-only
check. The standing agent boundary and executor signature checks stay in force.
Validation: source compilation and synthetic command responses cover success,
immediate wrong-cluster refusal, image drift and exclusion of a private canary