feat: add auth-capability lanes and pilot closeout
Add the warden-sign auth-capability lane, AppRole handoff, verification guards, docs, and tests. Point the whynot-design pilot at the canonical decision and add the real publish closeout preflight/runbook.
This commit is contained in:
parent
a621fbaffd
commit
6382139890
27 changed files with 1455 additions and 107 deletions
36
docs/cli.md
36
docs/cli.md
|
|
@ -42,7 +42,8 @@ secrets-engine decision inspect <decision-or-ccr-id>
|
|||
secrets-engine plan <ref> --stage <build|test|prod>
|
||||
secrets-engine apply <ref> --stage <stage> [--dry-run] [--bootstrap-token-file F]
|
||||
secrets-engine provision <catalog-id> --stage <stage> --field NAME (--from-file F | --generate)
|
||||
secrets-engine verify <catalog-id> --field NAME [--positive] [--negative]
|
||||
secrets-engine verify <catalog-id> [--field NAME] [--positive] [--negative]
|
||||
secrets-engine handoff <catalog-id> --stage <stage> --role-id-file F --secret-id-file F
|
||||
secrets-engine exec --catalog <catalog-id> [--field NAME] [--mode auto|npm-config|exec-env] -- CMD...
|
||||
secrets-engine policy publication <catalog-id>
|
||||
secrets-engine route <catalog-id> [--json]
|
||||
|
|
@ -55,6 +56,13 @@ var the token is injected under, per the netkingdom publication-scope policy
|
|||
|
||||
`<ref>` is a catalog id or a decision/CCR ref (matched against
|
||||
`approval.decision_ref`). `plan` and `apply --dry-run` never mutate OpenBao.
|
||||
For decision-gated lanes they may render with `decision: <none>` when the
|
||||
approval object is not reachable; non-dry-run `apply` remains decision-gated.
|
||||
|
||||
`handoff` is for `kind: auth-capability` lanes such as `warden-sign`. It mints a
|
||||
fresh AppRole `secret_id` and writes `role_id` plus `secret_id` to caller-chosen
|
||||
mode-0600 files outside Git worktrees. It never prints the `secret_id`; use the
|
||||
resulting files only for attended out-of-band delivery.
|
||||
|
||||
## Exit codes
|
||||
|
||||
|
|
@ -92,6 +100,32 @@ scratch package. Proves npm in the child resolves its auth token from the temp
|
|||
step — while the parent shell never holds the token. For a real publish,
|
||||
provision a real npm automation token the same way and drop `--dry-run`.
|
||||
|
||||
## Auth-capability: warden-sign
|
||||
|
||||
```bash
|
||||
# Preview the non-KV policy/AppRole lane; no mutation.
|
||||
SECRETS_ENGINE_HUB_URL="" secrets-engine apply warden-sign --stage prod --dry-run
|
||||
|
||||
# Live apply and handoff require an approved decision and an out-of-repo
|
||||
# bootstrap token file. Values are written to files, not stdout.
|
||||
BAO_ADDR=https://bao.coulomb.social \
|
||||
secrets-engine handoff warden-sign --stage prod \
|
||||
--bootstrap-token-file ~/.secrets-engine/bootstrap/prod-warden-sign.token \
|
||||
--role-id-file ~/.secrets-engine/handoff/warden-sign.role_id \
|
||||
--secret-id-file ~/.secrets-engine/handoff/warden-sign.secret_id
|
||||
```
|
||||
|
||||
See [warden-sign-auth-capability.md](warden-sign-auth-capability.md) for the full
|
||||
runbook and State Hub pointer payload.
|
||||
|
||||
## Pilot closeout: whynot-design real publish
|
||||
|
||||
```bash
|
||||
scripts/whynot-real-publish-preflight.sh
|
||||
```
|
||||
|
||||
The real publish path is documented in [whynot-design-real-publish-closeout.md](whynot-design-real-publish-closeout.md).
|
||||
|
||||
## Pilot: whynot-design npm publish
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue