Revert the npm field, re-measure coverage, and hold the layer divergence
Five inbox items worked, none of which changed a credential value or moved a
secret.
whynot-design-npm-publish: field reverted npm_token -> NPM_AUTH_TOKEN and the
path confirmed, on railiance-platform's attended, read-only, no-value field
enumeration (their docs/evidence/2026-09-10-npm-lane-field-resolution.json).
Exactly one field is present at the governed path. The 2026-09-09 change was
adopted from a coordination message and would have failed at the WP-0037-T03
rotation. The ungoverned second location is recorded as an explicit non-lane,
not deleted and not tidied away.
pep-stance coverage: published figures were stale by eight lanes (unknown
18->20, not_applicable 12->15) while resolved stayed at 3 — the denominator
moved, the classification did not. Caught by the test that asserts the published
block equals what report_coverage.py measures. tests/test_workload_join.py held
the same stale counts; both now measure the same populations.
rapp-qonto-keycape-client: blocker character updated — authority exists and is
unexercised by owner decision ("not yet", offer open), which is not the same as
no authority existing. Reopen triggers are events, never elapsed time.
flex-auth -> access-engine rename (WARDEN-IN-0003): access-engine added to the
policy-check lane's keywords so routing resolves under both names from today.
owner_repo deliberately not flipped — policy.py sends it as resource.system on
every /v1/check, and FLEX-DEC-2026-013 keeps runtime names as flex-auth.
layer declaration: INTENT.md says Staff, layer.yaml says staff, section 11 does
not say which governs. Neither changed; gate-house holds the ruling. Position in
docs/layer-declaration-precedence.md, wait in WARDEN-WP-0034-T06, and a comment
in layer.yaml telling the next session not to "fix" it — the divergence is the
evidence the ruling is made against.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 63291@bnt-lap001
Assistant-Session: 8bd77868-ca68-4f49-bb1e-d539ecc0d703
This commit is contained in:
parent
15a4717dd1
commit
baf53602ca
11 changed files with 422 additions and 32 deletions
|
|
@ -11,7 +11,7 @@ Owner: `railiance-platform` (OpenBao) · provisioning CCR-2026-0001 (commit 8f61
|
|||
> unverified for writes until its package token is rotated and re-proven.
|
||||
|
||||
The npm publish token for `@whynot/design` on the coulomb Forgejo npm registry
|
||||
(KV field `npm_token`; reaching the publish command as `NPM_AUTH_TOKEN`)
|
||||
(KV field `NPM_AUTH_TOKEN`, which is also the name the publish command reads it under)
|
||||
(`https://forgejo.coulomb.social/api/packages/coulomb/npm/`). ops-warden **does not hold
|
||||
this token** — it is the access front door: `warden access` proxies the read from OpenBao
|
||||
**as the caller** and never persists, caches, or logs the value.
|
||||
|
|
@ -23,8 +23,8 @@ this token** — it is the access front door: `warden access` proxies the read f
|
|||
| Field | Value |
|
||||
| --- | --- |
|
||||
| OpenBao path | `platform/workloads/coulomb/whynot-design/npm-publish` |
|
||||
| KV field | `npm_token` |
|
||||
| Injected env var | `NPM_AUTH_TOKEN` (set by the publication-scope policy; not a KV key) |
|
||||
| KV field | `NPM_AUTH_TOKEN` — the only field present at this path (attended enumeration 2026-09-10, railiance-platform `docs/evidence/2026-09-10-npm-lane-field-resolution.json`) |
|
||||
| Injected env var | `NPM_AUTH_TOKEN` — same name as the KV field, which is what made the 2026-09-09 `npm_token` change look plausible |
|
||||
| KV mount | `platform` |
|
||||
| Read policy | `workload-kv-read-whynot-design-npm-publish` |
|
||||
| OIDC login | `bao login -method=oidc -path=netkingdom role=whynot-design-workload-kv-read` |
|
||||
|
|
@ -35,6 +35,17 @@ this token** — it is the access front door: `warden access` proxies the read f
|
|||
> The `platform/workloads/whynot-design/whynot-design/npm-publish` path from early in the
|
||||
> provisioning thread is **superseded** — the live path is under the `coulomb` tenant.
|
||||
|
||||
> **A second, ungoverned location exists and is not this lane.**
|
||||
> `secret/coulomb/whynot-design/npm/publish` (v1, created 2026-07-03, never updated) sits
|
||||
> outside this lane's exact-path policy and outside any CCR. It was found by metadata read
|
||||
> only; its field names were not enumerated, its value was not read, and it was not
|
||||
> deleted — a location holding real credential material is disposed of deliberately by its
|
||||
> owner, not tidied away by whoever finds it. railiance-platform tracks it as
|
||||
> `RPF-WP-0035-T07`, with an open hypothesis that the native `secrets-engine exec` front
|
||||
> door below may be reading it rather than the governed path. If that proves true, this
|
||||
> lane's acceptance evidence describes a path its consumer does not use. Do not route
|
||||
> around the governed path on that suspicion; the question is with its owners.
|
||||
|
||||
---
|
||||
|
||||
## Worker checklist
|
||||
|
|
@ -61,12 +72,12 @@ this token** — it is the access front door: `warden access` proxies the read f
|
|||
token fragment at `forgejo.coulomb.social`:
|
||||
```bash
|
||||
# --exec needs the env-var name. The zone-aware policy gate always runs first.
|
||||
warden access whynot-design-npm-publish --field npm_token \
|
||||
warden access whynot-design-npm-publish --field NPM_AUTH_TOKEN \
|
||||
--exec -- npm view @whynot/design@<version> version \
|
||||
--registry=https://forgejo.coulomb.social/api/packages/coulomb/npm/
|
||||
warden access whynot-design-npm-publish --field npm_token \
|
||||
warden access whynot-design-npm-publish --field NPM_AUTH_TOKEN \
|
||||
--exec -- npm publish
|
||||
warden access whynot-design-npm-publish --field npm_token --fetch
|
||||
warden access whynot-design-npm-publish --field NPM_AUTH_TOKEN --fetch
|
||||
```
|
||||
On either path the value transits to you (or the child env) and never enters
|
||||
ops-warden's memory, disk, or audit log.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue