T07: a third registry service — npm — behind a high-risk credential lane

The file sweep found the OCI registry and the PyPI index. Sweeping ops-warden's
routing catalog found what files could not: gitea.coulomb.social also serves an
npm registry at /api/packages/coulomb/npm/, and the catalog lane
whynot-design-npm-publish (risk: high, production-exercised) vends the token that
publishes @whynot/design to it.

After 2026-08-31 that lane routes to a registry that does not exist, and it does
not fail safe — an operator following it gets a working token for a dead endpoint
and debugs the token.

CI runners remain unswept; railiance-forge/tools/gitea-runner-status.sh suggests
gitea-registered Actions runners exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-20 09:10:34 +02:00
parent 9f4caa1c09
commit 8a54c27cd9

View file

@ -312,9 +312,38 @@ permits `sourceRepos: https://gitea.coulomb.social/coulomb/*.git`. railiance01
has no ArgoCD `applications` resource type, so this appears inert — but it is a
bootstrap file and should be confirmed rather than assumed.
**Not swept:** CI runners and any credential lane authenticating *to* gitea.
`ops-warden`'s catalog carries `forgejo-admin-api-token`; whether a
gitea-specific equivalent exists was not checked.
### Credential-lane sweep, 2026-08-20 — a *third* registry service
Checking ops-warden's routing catalog found what the file sweep could not: the
host serves **three** package services, not two.
`gitea.coulomb.social/api/packages/coulomb/npm/` is an **npm registry**, and
ops-warden's catalog lane `whynot-design-npm-publish``risk: high`,
production-exercised (WP-0018 published `@whynot/design@0.4.0` through it) —
vends the `NPM_AUTH_TOKEN` that publishes to it.
So the complete CoulombCore package surface is:
| Service | Endpoint | Known consumers |
| --- | --- | --- |
| OCI container registry | `gitea.coulomb.social/coulomb/…` | `reuse-surface` (live Deployment) |
| PyPI index | `…/api/packages/coulomb/pypi` | `kaizen-agentic` (never migrated), `issue-core` (legacy half) |
| **npm registry** | `…/api/packages/coulomb/npm/` | `@whynot/design` via ops-warden lane `whynot-design-npm-publish` |
**Consequence for the credential lane:** after 2026-08-31 that lane routes to a
registry that does not exist. It does not fail safe — an operator following it
gets a token for a dead endpoint and debugs the token. `forgejo-admin-api-token`
already exists as the forgejo-side equivalent and its keywords include
`forgejo-npm`, so the destination is plausibly in place; ops-warden must confirm
rather than assume, and cannot repoint the lane before the packages are on
forgejo — the same publish-before-repoint rule as `KAIZEN-WP-0010`.
Routed to ops-warden (lane owner for the catalog entry; `railiance-platform`
owns the credential itself).
**Still not swept:** CI runners. `railiance-forge/tools/gitea-runner-status.sh`
suggests gitea-registered Actions runners exist; whether any repo's pipelines
depend on them was not established.
`forgejo.coulomb.social` is already on railiance01, so the work is retag, push,
update manifest. Routed to `railiance-platform`; ownership of the `reuse-surface`