Close GLAS-WP-0002-T02: live OpenBao verification succeeded for real
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

ops-mason built the real AppRole/policy/KV path infrastructure, the
founder completed provisioning, and a real task ran through
rein-openweights with OPENROUTER_API_KEY explicitly unset -- real
AppRole login, real KV v2 read, real OpenRouter call, real commit. Full
build record (including two real bugs found and fixed along the way)
in ops-mason/plans/rein-openweights-openrouter-approle.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-07-27 01:53:06 +02:00
parent 9cc2683cd3
commit 17adfe4d64

View file

@ -60,17 +60,39 @@ vault round trip actually works end to end. Coordinate with
`rein-openweights` directly; this task's outcome should be recorded in
both repos.
**Blocked (checked 2026-07-26):** `bao token lookup` from this
workstation returns `403 permission denied` — no usable vault session
here. Provisioning a new AppRole (`auth/approle/role/...`) and a KV
secret for `rein-openweights`, mirroring `rein-aharness`'s `binky-mail`
lane, needs vault-admin access this session doesn't have. Needs the
operator to provision the AppRole (or provide an ambient token with
enough privilege) before this can be exercised for real.
**Done (2026-07-27).** The blocker got its own builder: `ops-mason`
(chartered specifically for this class of problem — see its `INTENT.md`)
ran the full construction-plan → review → executive-summary → approval →
build pipeline for real (`ops-mason/plans/rein-openweights-openrouter-approle.md`),
against real OpenBao (founder logged in via `bao login -method=oidc
-path=netkingdom role=platform-admin`, after the bare `-method=oidc`
default 403'd against the wrong mount path).
Real infrastructure now live: `reins/` KV v2 mount, policy
`workload-kv-read-rein-openweights-openrouter`, AppRole
`rein-openweights`, role_id/secret_id delivered to
`~/.local/rein-openweights/approle/`. Founder completed
`paste_once_provision` through ops-warden's desk. Catalog entry
`rein-openweights-openrouter-approle` is `active` in `ops-warden`.
**Live verification, for real:** ran a task through `rein-openweights`
with `OPENROUTER_API_KEY` explicitly unset and
`REIN_OPENWEIGHTS_APPROLE_DIR` pointed at the delivered credential —
real AppRole login, real KV v2 read, real OpenRouter API call, real
2-turn tool-calling loop, real commit
(`e30d520c79a3493aeea5e8ea4d5ec331512b781d`). The vault round trip is
what ran, not the env-var short-circuit.
Two real bugs surfaced and were fixed at the root cause along the way
(not this repo's code — `ops-mason`'s and `ops-warden`'s): a KV v2
policy path shape bug (`ops_mason/executor.py::_policy_hcl` was writing
the bare KV-v1-shaped path, which silently denies everything on a v2
mount) and a missing `platform-admin` policy entry for the brand-new
`reins/` mount. Full account in `ops-mason`'s plan file section 7.
```task
id: GLAS-WP-0002-T02
status: wait
status: done
priority: medium
state_hub_task_id: "74b4f35b-9cdd-4228-aeed-e0eec458c0bf"
```