2026-03-28 00:45:43 +00:00
|
|
|
|
# SCOPE
|
|
|
|
|
|
|
|
|
|
|
|
> This file helps you quickly understand what this repository is about,
|
|
|
|
|
|
> when it is relevant, and when it is not.
|
2026-06-17 08:20:32 +02:00
|
|
|
|
> Aspirational direction lives in `INTENT.md`.
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## One-liner
|
|
|
|
|
|
|
2026-06-27 21:02:46 +02:00
|
|
|
|
Operational access steward and **front door** for the NetKingdom security model — issues
|
|
|
|
|
|
short-lived SSH certificates for `adm`/`agt`/`atm` actors, and for every other credential
|
|
|
|
|
|
need is the operator front door (`warden access`): routes to the owning subsystem and, for
|
|
|
|
|
|
`exec_capable` lanes (OpenBao reads, key-cape login), **proxies the fetch as the caller**
|
|
|
|
|
|
without taking custody. Also stewards workload security posture conformance and keeps ops
|
|
|
|
|
|
access guidance aligned with NetKingdom canon.
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-06-27 18:22:09 +02:00
|
|
|
|
## Where we are (2026-06-27)
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
2026-06-18 20:44:53 +02:00
|
|
|
|
ops-warden **issues short-lived SSH certificates and routes every other credential
|
|
|
|
|
|
need to the subsystem that owns it.** SSH signing is **production-verified** on
|
|
|
|
|
|
Railiance OpenBao (`warden sign` against `https://bao.coulomb.social`, host CA trust
|
2026-06-24 12:44:32 +02:00
|
|
|
|
deployed).
|
|
|
|
|
|
|
|
|
|
|
|
**Access routing** is shipped: `wiki/AccessRouting.md`, credential routing wiki,
|
|
|
|
|
|
NetKingdom security map, machine-readable pointer catalog
|
|
|
|
|
|
(`registry/routing/catalog.yaml`, WP-0010), and `warden route` lookup CLI
|
|
|
|
|
|
(`list`/`show`/`find`, `--json`, WP-0011).
|
|
|
|
|
|
|
2026-06-27 18:22:09 +02:00
|
|
|
|
**Operator access assist** is shipped (WP-0014): `warden access` gives advisory
|
|
|
|
|
|
handoffs for every catalog need and can proxy `exec_capable` lanes as the caller,
|
|
|
|
|
|
without taking custody of values.
|
|
|
|
|
|
|
2026-06-27 19:30:30 +02:00
|
|
|
|
**Workload security posture** is shipped (WP-0015, all tasks done): dev/test/prod
|
|
|
|
|
|
environment posture, M0-M3 workload maturity, the secret-flow lattice, and blocker
|
|
|
|
|
|
triage language (T1); machine-readable descriptors + `warden policy list|show` (T2);
|
|
|
|
|
|
the read-only conformance checker `scripts/check_secret_posture_conformance.py` (T3);
|
|
|
|
|
|
and the dev-tier contract-double library `warden.doubles` (T4). Canon landing in
|
|
|
|
|
|
net-kingdom / info-tech-canon is owner-driven (tracked via coordination messages, T5).
|
2026-06-27 18:22:09 +02:00
|
|
|
|
|
2026-06-24 12:44:32 +02:00
|
|
|
|
**Policy gate** is shipped on the caller side (WP-0007) with production registry
|
|
|
|
|
|
and smoke evidence (WP-0009 archived). flex-auth published the `ssh-certificate`
|
|
|
|
|
|
policy package (FLEX-WP-0006). `policy.enabled` remains **false** in production
|
|
|
|
|
|
until flex-auth is deployed to a reachable URL (flex-auth FLEX-WP-0007).
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
2026-06-27 20:33:32 +02:00
|
|
|
|
**ops-bridge cert_command pilot** is shipped to pilot-ready (WP-0016): a read-only
|
|
|
|
|
|
readiness gate (`scripts/check_tunnel_cert_readiness.py`) plus an opt-in offline
|
|
|
|
|
|
contract smoke (`--sign-smoke`); the playbook leads with the gate and the pilot
|
|
|
|
|
|
(`agt-state-hub-bridge`) is handed to ops-bridge. The live tunnel cutover is
|
|
|
|
|
|
ops-bridge's to execute.
|
|
|
|
|
|
|
|
|
|
|
|
**INTENT alignment:** SSH issuance mission met in production. All ops-warden workplans
|
|
|
|
|
|
are finished. Remaining distance is in other repos' lanes: ops-bridge running the
|
|
|
|
|
|
cert_command pilot cutover, flex-auth runtime deployment (FLEX-WP-0007, unblocks
|
|
|
|
|
|
`policy.enabled: true`), and the owner-driven WP-0015 canon landing — plus ongoing
|
|
|
|
|
|
operator hygiene.
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
2026-06-18 20:44:53 +02:00
|
|
|
|
### Issue vs route
|
|
|
|
|
|
|
2026-06-27 18:22:09 +02:00
|
|
|
|
ops-warden executes exactly one lane with its own authority and routes/assists the rest.
|
2026-06-18 20:44:53 +02:00
|
|
|
|
|
|
|
|
|
|
| Need | Subsystem | ops-warden role |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| SSH cert for host/ops access (`adm`/`agt`/`atm`) | **ops-warden** | **Issue** (`warden sign`) |
|
2026-06-27 18:22:09 +02:00
|
|
|
|
| API key / DB cred / dynamic lease | OpenBao | Assist — route; proxy as caller only for `exec_capable` lanes |
|
|
|
|
|
|
| "May I perform action X?" | flex-auth | Route — point at policy; consume decisions where configured |
|
|
|
|
|
|
| Login / OIDC / MFA | key-cape / Keycloak | Assist — route; proxy `login` lane when `exec_capable` |
|
2026-06-18 20:44:53 +02:00
|
|
|
|
| SSH tunnel / port forward | ops-bridge | Route — supply `cert_command` |
|
|
|
|
|
|
| Host principal deployment | railiance-infra | Route — point at Ansible |
|
|
|
|
|
|
|
|
|
|
|
|
Full role and boundary: `wiki/AccessRouting.md`. The catalog is a **pointer layer** —
|
|
|
|
|
|
it never restates an owner's procedure (authored `steps` exist only for the SSH lane).
|
|
|
|
|
|
|
2026-06-24 12:44:32 +02:00
|
|
|
|
Gap analysis: `history/2026-06-24-intent-scope-gap-analysis.md` (current);
|
|
|
|
|
|
`history/2026-06-18-post-wp0008-intent-scope-reassessment.md` (SSH lane);
|
|
|
|
|
|
`history/2026-06-18-access-routing-intent-shift-assessment.md` (routing charter).
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## INTENT gap snapshot
|
|
|
|
|
|
|
|
|
|
|
|
| INTENT success criterion | Status |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| Worker knows which subsystem for each credential type | Met |
|
|
|
|
|
|
| SSH short-lived, inventoried, audited | Met (production) |
|
2026-06-27 19:50:28 +02:00
|
|
|
|
| ops-bridge integrates via stable `cert_command` | **Pilot-ready** — contract + readiness gate (`check_tunnel_cert_readiness.py`, WP-0016) shipped; live cutover handed to ops-bridge |
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| NetKingdom evolution reflected in docs | Met |
|
|
|
|
|
|
| Non-SSH secrets stay out of ops-warden | Met |
|
2026-06-27 19:30:30 +02:00
|
|
|
|
| Workload posture / maturity model for secret-flow blockers | Met — two-axis standard + descriptors + conformance checker + dev doubles (WP-0015) |
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
2026-06-27 20:33:32 +02:00
|
|
|
|
**Maturity vector:** `D5 / A5 / C5 / R3` (Discovery / Availability / Completeness / Reliability)
|
2026-06-18 01:36:23 +02:00
|
|
|
|
|
|
|
|
|
|
| Dimension | Level | Meaning today |
|
|
|
|
|
|
| --- | --- | --- |
|
2026-06-18 20:44:53 +02:00
|
|
|
|
| D5 | Discovery | Routing wiki + security map + pointer catalog + NK canon cross-links |
|
2026-06-27 20:33:32 +02:00
|
|
|
|
| A5 | Availability | CLI + `warden route` + `warden access` advisory & proxy front door + `warden policy` + opt-in policy gate + agent `--json` |
|
|
|
|
|
|
| C5 | Completeness | All ops-warden lanes shipped — SSH (prod), routing, access assist, posture conformance, cert_command pilot gate. Open items are external: flex-auth prod flip + ops-bridge live cutover |
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| R3 | Reliability | Live OpenBao sign evidence on Railiance |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-28 00:45:43 +00:00
|
|
|
|
## Core Idea
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
**Today:** implements the SSH certificate lane from `wiki/AccessManagementDirective.md`
|
2026-06-24 12:44:32 +02:00
|
|
|
|
§§1–5 — CA signing, actor inventory, TTL policy, cert-side scorecard, optional
|
|
|
|
|
|
flex-auth pre-sign gate, and the `cert_command` interface for ops-bridge. Production
|
|
|
|
|
|
path uses OpenBao SSH engine (`backend: vault`).
|
2026-06-17 08:20:32 +02:00
|
|
|
|
|
2026-06-18 20:44:53 +02:00
|
|
|
|
**Direction (INTENT):** issue short-lived SSH certificates and route dev workers to
|
|
|
|
|
|
key-cape, flex-auth, OpenBao, ops-bridge, and railiance components for everything
|
|
|
|
|
|
else — implementing only the SSH certificate lane directly, pointing at the owner
|
|
|
|
|
|
for the rest.
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## In Scope
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
### Implemented (SSH lane)
|
|
|
|
|
|
|
|
|
|
|
|
- Local CA backend (`ssh-keygen -s`)
|
2026-06-18 01:36:23 +02:00
|
|
|
|
- OpenBao / Vault-compatible SSH engine backend (**production-verified**)
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Actor identity registry (`inventory.yaml`)
|
|
|
|
|
|
- `cert_command`: `warden sign <actor> --pubkey <path>` → cert on stdout
|
|
|
|
|
|
- TTL enforcement per `ActorType` (`adm` 48 h, `agt` 24 h, `atm` 8 h)
|
|
|
|
|
|
- `warden status`, cleanup, scorecard, signatures log
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- Opt-in flex-auth policy gate (`policy.enabled`, `policy_decision_id` in log)
|
|
|
|
|
|
- Production flex-auth registry builder (`scripts/build_flex_auth_registry.py`,
|
|
|
|
|
|
`registry/flex-auth/production_registry_snapshot.json`)
|
|
|
|
|
|
- Policy gate smoke runner (`scripts/policy_gate_production_smoke.sh`)
|
feat(WP-0011): warden route lookup CLI over the pointer catalog
Add a read-only `warden route` command group (list/show/find) that reads
registry/routing/catalog.yaml and tells a worker which subsystem owns a need
and which wiki/canon doc to follow. ops-warden still executes exactly one lane
(SSH); routed entries return a pointer and never call any subsystem.
- src/warden/routing/: models.py + catalog.py loader; enforces the
no-double-source rule (non-SSH entries with steps/cert_command fail validation),
dup-id and schema checks.
- route list (active-only unless --all, --tag), route show (SSH appends steps +
cert pattern; routed ends with "next action on <owner> — see <wiki_ref>"),
route find (keyword ranking, --json).
- tests/test_routing.py: load/validation, find ranking, CLI JSON shapes, plus a
drift guard (every wiki_ref anchor resolves; every entry has a reviewed date).
- Docs: wiki/AccessRouting.md CLI section, README quick reference, SCOPE A3 -> A4.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 21:03:24 +02:00
|
|
|
|
- `warden route` lookup CLI (`list`/`show`/`find`, `--json`) over the pointer catalog
|
2026-06-27 17:35:57 +02:00
|
|
|
|
- `warden access` operator front door (WP-0014): advisory handoff for any need, and a
|
|
|
|
|
|
transparent, policy-gated, audited **proxy** (`--fetch`/`--exec`) for `exec_capable`
|
|
|
|
|
|
lanes (OpenBao secret reads, key-cape login) — caller identity, value never held
|
2026-06-18 01:36:23 +02:00
|
|
|
|
- `warden issue` and `ops-ssh-wrapper` (local backend; vault uses sign-only)
|
2026-06-27 19:50:28 +02:00
|
|
|
|
- ops-bridge cert_command readiness gate (`scripts/check_tunnel_cert_readiness.py`,
|
|
|
|
|
|
WP-0016) — read-only preflight + opt-in offline contract smoke
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Runbooks for OpenBao config and Inter-Hub bootstrap SSH envelope
|
|
|
|
|
|
|
|
|
|
|
|
### Stewardship (documentation and alignment)
|
|
|
|
|
|
|
|
|
|
|
|
- NetKingdom security routing guidance — which subsystem owns which credential type
|
|
|
|
|
|
- Wiki and config references aligned with OpenBao-first platform standard
|
|
|
|
|
|
- Capability registry entry for SSH certificate issuance
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- Routing pointer catalog (`registry/routing/catalog.yaml`)
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Keeping ops access patterns consistent with `net-kingdom` platform architecture
|
2026-06-27 19:30:30 +02:00
|
|
|
|
- Workload Security Posture standard (`wiki/WorkloadSecurityPosture.md`),
|
|
|
|
|
|
machine-readable posture descriptors (`registry/policy/security-posture.yaml`),
|
|
|
|
|
|
the read-only conformance checker, and the dev-tier contract-double library
|
2026-06-17 08:20:32 +02:00
|
|
|
|
|
2026-06-24 12:44:32 +02:00
|
|
|
|
### Shipped workplans (archived)
|
2026-06-17 08:20:32 +02:00
|
|
|
|
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| WP | Focus |
|
|
|
|
|
|
| --- | --- |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| WP-0001–0005 | Initial CLI, quality, hygiene, OpenBao docs, hub sync |
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| WP-0006 | Credential routing, security map, inventory patterns, OpenBao checklist |
|
|
|
|
|
|
| WP-0007 | Opt-in flex-auth policy gate (`policy.enabled`) |
|
|
|
|
|
|
| WP-0008 | Production sign verification, stewardship closeout, archive hygiene |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| WP-0009 | flex-auth registry + policy smoke; pickup brief for FLEX-WP-0007 |
|
|
|
|
|
|
| WP-0010 | Access routing charter + pointer catalog |
|
|
|
|
|
|
| WP-0011 | `warden route` lookup CLI |
|
2026-06-27 19:30:30 +02:00
|
|
|
|
| WP-0012 | Routing scenario playbooks (catalog + wiki expansion) |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| WP-0013 | Production integration closeout — cert_command playbook, token hygiene, principals drift |
|
2026-06-27 19:30:30 +02:00
|
|
|
|
| WP-0014 | Operator access assist — `warden access` advisory + proxy front door |
|
|
|
|
|
|
| WP-0015 | Workload security posture — two-axis standard, descriptors, conformance checker, dev doubles |
|
2026-06-27 20:33:32 +02:00
|
|
|
|
| WP-0016 | ops-bridge cert_command pilot — readiness gate (`check_tunnel_cert_readiness.py`) + handoff |
|
2026-06-17 08:22:45 +02:00
|
|
|
|
|
2026-06-24 12:44:32 +02:00
|
|
|
|
### Active / ready
|
2026-06-17 23:34:13 +02:00
|
|
|
|
|
2026-06-27 19:30:30 +02:00
|
|
|
|
_None open._ All ops-warden workplans are finished; the remaining distance is in other
|
|
|
|
|
|
repos' lanes (see Known gaps).
|
2026-06-17 23:34:13 +02:00
|
|
|
|
|
2026-06-24 12:44:32 +02:00
|
|
|
|
### Known gaps (not ops-warden workplans)
|
2026-06-18 01:28:49 +02:00
|
|
|
|
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| Gap | Owner | Notes |
|
|
|
|
|
|
| --- | --- | --- |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| flex-auth production runtime + registry deploy | flex-auth | **FLEX-WP-0007** — unblocks `policy.enabled: true` |
|
|
|
|
|
|
| Vault-backed policy gate joint smoke | flex-auth + operator | Needs valid scoped `VAULT_TOKEN` |
|
2026-06-27 19:50:28 +02:00
|
|
|
|
| ops-bridge `cert_command` on live tunnels | ops-bridge | Playbook + readiness gate shipped (WP-0016); pilot cutover handed off, awaiting ops-bridge |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| Principals sync warden ↔ railiance-infra | ops-warden + infra | `scripts/check_principals_drift.py` — operator runs periodically |
|
2026-06-18 01:36:23 +02:00
|
|
|
|
| NK-WP-0009 joint SSH tutorial | net-kingdom | Parallel coordination track |
|
2026-06-27 19:30:30 +02:00
|
|
|
|
| WP-0015 canon landing (generic `WorkloadMaturityLevel` + M0-M3 requirements) | net-kingdom + info-tech-canon | ops-warden drafted + offered (coordination msgs); owner-driven landing |
|
2026-06-18 01:28:49 +02:00
|
|
|
|
|
2026-03-28 00:45:43 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Out of Scope
|
|
|
|
|
|
|
2026-06-27 18:22:09 +02:00
|
|
|
|
- **Issuing or custodying** non-SSH secrets (API keys, DB creds, S3 STS,
|
|
|
|
|
|
Inter-Hub keys) → OpenBao with flex-auth policy where required; ops-warden
|
|
|
|
|
|
documents paths and may proxy caller-authenticated `exec_capable` lanes only
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Identity / OIDC / MFA → key-cape, Keycloak
|
|
|
|
|
|
- Authorization policy decisions → flex-auth
|
2026-06-27 18:22:09 +02:00
|
|
|
|
- flex-auth runtime deployment and secret-flow lattice enforcement → flex-auth
|
|
|
|
|
|
(`FLEX-WP-0007` and follow-ups)
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Tunnel lifecycle → `ops-bridge`
|
|
|
|
|
|
- Host principal deployment → `railiance-infra`
|
|
|
|
|
|
- OpenBao / Vault cluster deployment → `railiance-platform`
|
|
|
|
|
|
- Human admin SSH key generation (self-service `ssh-keygen`)
|
|
|
|
|
|
- Session recording, SIEM, SSO / Teleport at scale
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Relevant When
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Issuing or refreshing an **SSH cert** for `adm`/`agt`/`atm`
|
|
|
|
|
|
- A dev worker needs to know **where to get credentials** in the NetKingdom stack
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- An agent needs **`warden route find`** instead of re-deriving routing from wiki prose
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- `ops-bridge` needs a `cert_command` for a tunnel
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- Adding actors to the principals inventory (regenerate flex-auth registry snapshot)
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Inter-Hub or bootstrap tasks need a **short-lived agent SSH envelope**
|
|
|
|
|
|
- Checking cert-side compliance (scorecard)
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- Enabling or testing the opt-in flex-auth policy gate
|
2026-06-27 18:22:09 +02:00
|
|
|
|
- Classifying whether a credential blocker is a dev/test double, owner-routed prod
|
|
|
|
|
|
gate, or maturity/posture violation
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Not Relevant When
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- Storing or vending **API keys or runtime secrets** (→ OpenBao)
|
|
|
|
|
|
- Policy decisions on resource access (→ flex-auth)
|
|
|
|
|
|
- Managing tunnels without SSH cert issuance (→ ops-bridge)
|
|
|
|
|
|
- Static-key-only legacy access (ops-bridge static key mode)
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Current State
|
|
|
|
|
|
|
2026-06-18 01:36:23 +02:00
|
|
|
|
- **SSH CLI:** v0.1.0 — local + OpenBao backends
|
|
|
|
|
|
- **Production sign:** verified 2026-06-18 (`history/2026-06-17-openbao-production-verify.md`)
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- **Access routing:** WP-0010 + WP-0011 shipped (`warden route`, pointer catalog)
|
|
|
|
|
|
- **Policy gate:** caller shipped (WP-0007); registry + smoke complete (WP-0009 archived).
|
|
|
|
|
|
`policy.enabled: false` until flex-auth reachable (`FLEX-WP-0007`)
|
2026-06-27 19:30:30 +02:00
|
|
|
|
- **Workload posture:** WP-0015 shipped (standard, descriptors, `warden policy`,
|
|
|
|
|
|
conformance checker, dev doubles); canon landing owner-driven
|
2026-06-27 20:33:32 +02:00
|
|
|
|
- **ops-bridge cert_command:** WP-0016 shipped to pilot-ready (readiness gate +
|
|
|
|
|
|
offline contract smoke + handoff); live cutover is ops-bridge's
|
2026-06-27 19:30:30 +02:00
|
|
|
|
- **Active work:** none open in ops-warden; remaining distance is other repos' lanes
|
2026-06-24 12:44:32 +02:00
|
|
|
|
- **Integration docs:** cert_command migration, token hygiene, principals drift (`wiki/playbooks/`)
|
|
|
|
|
|
- **Latest assessment:** `history/2026-06-24-intent-scope-gap-analysis.md`
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
## How It Fits (NetKingdom)
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
key-cape / Keycloak identity claims
|
|
|
|
|
|
→ flex-auth authorization decisions
|
|
|
|
|
|
→ OpenBao runtime secrets & dynamic credentials
|
|
|
|
|
|
→ ops-warden SSH certs + operational access guidance
|
|
|
|
|
|
→ ops-bridge tunnel transport (cert_command consumer)
|
|
|
|
|
|
→ railiance-* deployment and host enforcement
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-18 01:36:23 +02:00
|
|
|
|
Upstream: OpenBao SSH engine (production) or local CA (labs). Actor inventory in
|
2026-06-24 12:44:32 +02:00
|
|
|
|
operator config or Git-tracked patterns. flex-auth registry snapshot derived from
|
|
|
|
|
|
inventory when policy gate is enabled.
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
Downstream: `ops-bridge` (primary), kaizen agents, CI automations, human operators.
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Terminology
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
- `ActorType`: `adm` | `agt` | `atm`
|
|
|
|
|
|
- `cert_command`: shell command returning a cert on stdout
|
|
|
|
|
|
- `inventory.yaml`: actor → principals + TTL registry
|
|
|
|
|
|
- `LocalCA` / `VaultCA`: signing backends (`backend: local` | `vault`)
|
2026-06-27 18:22:09 +02:00
|
|
|
|
- Pointer catalog: `registry/routing/catalog.yaml` — subsystem ownership lookup plus
|
|
|
|
|
|
secret-free `warden access` handoff metadata
|
|
|
|
|
|
- Workload Security Posture: env posture (`dev/test/prod`) plus maturity (`M0-M3`)
|
|
|
|
|
|
used to decide whether a secret may flow to a workload
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
## Related Repositories
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
| Repo | Relationship |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| `net-kingdom` | Canonical security architecture; ops-warden aligns to it |
|
|
|
|
|
|
| `ops-bridge` | Primary cert_command consumer |
|
|
|
|
|
|
| `railiance-infra` | Host-side SSH principals and hardening |
|
|
|
|
|
|
| `railiance-platform` | OpenBao deployment and platform secrets |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| `flex-auth` | Authorization; policy package shipped (FLEX-WP-0006); runtime deploy FLEX-WP-0007 |
|
2026-06-17 08:20:32 +02:00
|
|
|
|
| `key-cape` | Identity / IAM Profile lightweight mode |
|
|
|
|
|
|
| `state-hub` | Workstream registry |
|
2026-03-28 00:45:43 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Provided Capabilities
|
|
|
|
|
|
|
|
|
|
|
|
```capability
|
|
|
|
|
|
type: security
|
|
|
|
|
|
title: SSH certificate issuance
|
|
|
|
|
|
description: Issues short-lived CA-signed SSH certificates for adm/agt/atm actors via a
|
2026-06-17 08:20:32 +02:00
|
|
|
|
pluggable cert_command interface; documents NetKingdom operational access routing;
|
|
|
|
|
|
supports local CA and OpenBao/Vault-compatible SSH engine backends.
|
|
|
|
|
|
keywords: [ssh, certificate, ca, credential, warden, ops-warden, pki, openbao, vault, netkingdom]
|
2026-03-28 00:45:43 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-27 21:02:46 +02:00
|
|
|
|
```capability
|
|
|
|
|
|
type: security
|
|
|
|
|
|
title: Operator access front door (caller-identity fetch proxy)
|
|
|
|
|
|
description: warden access is the operator front door for any NetKingdom credential need.
|
|
|
|
|
|
It renders the owner, auth method, path, and policy status, and for exec_capable lanes
|
|
|
|
|
|
(OpenBao secret reads, key-cape OIDC login) proxies the fetch as the caller — running
|
|
|
|
|
|
the owner's tool with the caller's identity and streaming the value to them. ops-warden
|
|
|
|
|
|
takes no custody: it holds, caches, and logs no secret value (transparent conduit, not a
|
|
|
|
|
|
broker). Use this to obtain an API key, DB credential, npm token, or login — not a State
|
|
|
|
|
|
Hub message.
|
|
|
|
|
|
keywords: [access, credential, secret, npm, token, api-key, openbao, key-cape, login, proxy, fetch, exec, warden-access, front-door, routing]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-28 00:45:43 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Getting Oriented
|
|
|
|
|
|
|
2026-06-17 08:20:32 +02:00
|
|
|
|
| Read first | Purpose |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| `INTENT.md` | Why ops-warden exists and where it is going |
|
|
|
|
|
|
| `SCOPE.md` | What is implemented today (this file) |
|
2026-06-27 17:35:57 +02:00
|
|
|
|
| `wiki/AccessRouting.md` | What ops-warden issues vs routes vs assists (role and boundary) |
|
|
|
|
|
|
| `wiki/OperatorAccessAssist.md` | `warden access` front door + conduit-vs-broker boundary + guardrails |
|
2026-06-17 08:22:45 +02:00
|
|
|
|
| `wiki/CredentialRouting.md` | Which subsystem for each credential need |
|
2026-06-27 18:22:09 +02:00
|
|
|
|
| `wiki/WorkloadSecurityPosture.md` | Secret-store posture, workload maturity, and blocker triage |
|
2026-06-18 20:44:53 +02:00
|
|
|
|
| `registry/routing/catalog.yaml` | Machine-readable routing pointer catalog |
|
2026-06-17 08:22:45 +02:00
|
|
|
|
| `wiki/NetKingdomSecurityMap.md` | Platform security component map |
|
2026-06-17 23:51:12 +02:00
|
|
|
|
| `examples/warden.production.example.yaml` | Production warden.yaml template |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| `wiki/PolicyGatedSigning.md` | flex-auth opt-in gate + registry rollout |
|
2026-06-17 08:20:32 +02:00
|
|
|
|
| `wiki/AccessManagementDirective.md` | SSH actor model |
|
|
|
|
|
|
| `wiki/OpsWardenConfig.md` | warden.yaml and OpenBao |
|
|
|
|
|
|
| `wiki/CertCommandInterface.md` | cert_command contract |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| `history/2026-06-24-intent-scope-gap-analysis.md` | Current gap analysis + WP-0013 |
|
2026-06-27 18:22:09 +02:00
|
|
|
|
| `history/2026-06-27-workload-security-posture-charter.md` | WP-0015 posture/conformance charter |
|
2026-06-24 12:44:32 +02:00
|
|
|
|
| `history/2026-06-18-post-wp0008-intent-scope-reassessment.md` | SSH lane gap analysis |
|
|
|
|
|
|
| `history/2026-06-18-access-routing-intent-shift-assessment.md` | Routing charter decision |
|
|
|
|
|
|
| `history/2026-06-23-flex-auth-policy-gate-production-smoke.md` | Policy gate smoke evidence |
|
2026-06-27 18:22:09 +02:00
|
|
|
|
| `net-kingdom/docs/platform-identity-security-architecture.md` | Platform security canon |
|