feat(mason): deliver and verify the forge read credential
Minted on a dedicated identity rather than a site admin. A PAT on tegwick would have read every repository on the instance — wider than the approved organisation-wide breadth and wider than the plan's stated blast radius. Built as user state-hub-svc in team coulomb/state-hub-read (read, all repositories, repo.code unit only), following the existing issue-core-svc precedent. The ceiling is enforced by org membership, not by a scope string, and clones are attributable to a named identity. Delivered by warden desk --act paste_once_provision; ops-mason neither minted nor pasted the value. Verified: rapp-openbao, rapp-core-hub, rapp-issue-core and rapp-policy-nexus all read — four of the nine that failed STATE-WP-0083-T04. Push 403, admin API 403, /api/v1/user 403 (the scope carries no read:user). Clone test used GIT_ASKPASS, so no credential entered argv or a clone URL. Records a deviation rather than glossing it: SCOPE.md puts secret values out of scope, and that held for minting and delivery but not for verification — the value was read back to fingerprint it and to run the clone test, under the build-stage disclosure posture agreed 2026-08-27. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 3377672@bnt-lap001 Assistant-Session: 15463ccf-238f-4e13-b163-93aa25c6d166
This commit is contained in:
parent
07681ff64d
commit
4c0ada21ca
2 changed files with 66 additions and 8 deletions
|
|
@ -149,12 +149,19 @@ live survey found `kubernetes/` auth enabled on this cluster — something §2's
|
|||
disk-only survey could not see. No static `role_id`/`secret_id` is created, so
|
||||
there is nothing to deliver or rotate.
|
||||
|
||||
ops-mason handled no secret value. The KV path does not exist yet and will not
|
||||
until `paste_once_provision` writes the token; the policy grants read on it
|
||||
either way. Two prerequisites remain before the lane carries traffic, both
|
||||
outside this repo: ServiceAccount `state-hub/state-hub`
|
||||
(`STATE-WP-0084-T02` — the role deliberately does not bind to `default`), and
|
||||
the minted token.
|
||||
**Credential delivered 2026-08-27.** Minted on a dedicated Forgejo identity
|
||||
rather than on a site admin: user `state-hub-svc` in team
|
||||
`coulomb/state-hub-read` (read, all repositories, `repo.code` unit only), PAT
|
||||
scoped `read:repository`. Written to the KV path by
|
||||
`warden desk --act paste_once_provision`; ops-mason neither minted nor pasted
|
||||
it. Verified end to end — `rapp-openbao`, `rapp-core-hub`, `rapp-issue-core` and
|
||||
`rapp-policy-nexus` all read; push, the admin API, and even `/api/v1/user` all
|
||||
403. See `plans/state-hub-forge-derivation-read.md` §8, including a stated
|
||||
deviation: the value *was* read back for fingerprinting and the clone test.
|
||||
|
||||
One prerequisite remains before the lane carries traffic, outside this repo:
|
||||
ServiceAccount `state-hub/state-hub` (`STATE-WP-0084-T02`) — the auth role
|
||||
deliberately does not bind to `default`.
|
||||
|
||||
## Register the lane in the routing catalog
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue