diff --git a/workplans/HF-WP-0002-openbao-browser-ui-at-bao-coulomb-social.md b/workplans/HF-WP-0002-openbao-browser-ui-at-bao-coulomb-social.md index 269f63d..fa4fd34 100644 --- a/workplans/HF-WP-0002-openbao-browser-ui-at-bao-coulomb-social.md +++ b/workplans/HF-WP-0002-openbao-browser-ui-at-bao-coulomb-social.md @@ -4,11 +4,11 @@ type: workplan title: "Expose OpenBao Browser UI at bao.coulomb.social" domain: helix_forge repo: helix-forge -status: active +status: finished owner: codex topic_slug: openbao-browser-ui created: "2026-06-15" -updated: "2026-06-15" +updated: "2026-06-19" planning_priority: high planning_order: 2 related_repos: @@ -149,7 +149,7 @@ general public application. ```task id: HF-WP-0002-T02 -status: progress +status: done priority: high target_repo: railiance-platform state_hub_task_id: "41e52213-0a1e-417c-a4d0-5db5141b600d" @@ -175,13 +175,20 @@ Traefik, active service routing, and the approved middleware annotations. rate-limit middlewares, and `make openbao-deploy` applies that manifest before the Helm upgrade. Live DNS/deployment verification remains pending. +Live progress on 2026-06-15: the operator reached the OpenBao browser UI at +`https://bao.coulomb.social`, authenticated through the approved KeyCape/OIDC +browser path, and wrote the Inter-Hub bootstrap operator key into the +`platform/` KV engine. OpenBao audit evidence shows successful access to the +expected path, so the public UI exposure is live enough for the HF-WP-0001 +credential-custody workflow. + --- ### T03 - Add KeyCape UI Redirect URIs ```task id: HF-WP-0002-T03 -status: progress +status: done priority: high target_repo: net-kingdom state_hub_task_id: "fc1d5850-eed9-4fd6-aac4-8c0e89d8b67d" @@ -207,13 +214,26 @@ live `openbao-client-config.py` patch/verify helper. The focused verifier also probes CLI, `netkingdom`, and `keycape` redirect URIs. Live KeyCape rollout verification for the preferred mount remains pending. +Live completion on 2026-06-15: patched the live `sso/keycape-config` Secret +with the code-defined OpenBao admin client settings, restarted the `sso/keycape` +deployment, and verified: + +- the `openbao-admin` client and LLDAP OU lookup settings are present; +- the public KeyCape authorize endpoint accepts the CLI callback; +- the public KeyCape authorize endpoint accepts the browser UI `netkingdom` + mount callback; +- the public KeyCape authorize endpoint accepts the browser UI `keycape` + compatibility callback; +- the KeyCape discovery endpoint responds through a local port-forward to the + rolled-out pod. + --- ### T04 - Add OpenBao UI Redirect URIs To platform-admin Role ```task id: HF-WP-0002-T04 -status: progress +status: done priority: high target_repo: railiance-platform state_hub_task_id: "4f69cacb-9d8f-4ab6-a84f-3c9041f0d39a" @@ -239,13 +259,40 @@ now configures both `auth/netkingdom/role/platform-admin` and the URIs while preserving the existing localhost CLI callbacks. Live preferred role update remains pending. +Live blocker on 2026-06-15: attempted non-secret verification using the +OpenBao pod token helper. The token can authenticate to OpenBao and generate +audit activity, but it receives `403 permission denied` for `sys/audit`, +`sys/mounts`, `sys/auth`, `sys/capabilities-self`, and +`auth/netkingdom/role/platform-admin`. Updating or verifying the live +`platform-admin` OIDC role therefore still needs an attended OpenBao root/sudo +token handoff or a browser/UI update by the operator. No token values were +printed or copied into Git, State Hub, or chat. + +Completed on 2026-06-19: applied the live OpenBao OIDC configuration with an +approved operator token (not recorded). Enabled the missing `auth/netkingdom` +OIDC mount, wrote KeyCape discovery config for both `netkingdom` and `keycape`, +and aligned `auth/netkingdom/role/platform-admin` and +`auth/keycape/role/platform-admin` to the code-defined redirect URI set: + +- CLI: `http://localhost:8250/oidc/callback`, `http://127.0.0.1:8250/oidc/callback` +- Browser: `https://bao.coulomb.social/ui/vault/auth/netkingdom/oidc/callback` +- Compatibility: `https://bao.coulomb.social/ui/vault/auth/keycape/oidc/callback` + +Live verification: + +- `bao read auth/netkingdom/role/platform-admin` shows all four URIs. +- `bao read auth/keycape/role/platform-admin` shows the same aligned set. +- Public `POST /v1/auth/netkingdom/oidc/auth_url` accepts the browser callback. +- `verify-openbao-client.sh` still passes CLI, `netkingdom`, and `keycape` + redirect probes. + --- ### T05 - Verify Browser Login And Metadata-Only Secret Inspection ```task id: HF-WP-0002-T05 -status: progress +status: done priority: high state_hub_task_id: "31d1da2d-8498-4c7d-a6fa-da9d0133bfe2" ``` @@ -263,15 +310,28 @@ For the `HF-WP-0001` unblock, inspect only metadata/path presence for the Inter-Hub operator key location. Do not copy secret values into Git, State Hub, chat, or workplans. -Done when browser login succeeds through the preferred `netkingdom` mount and -the operator can determine whether an Inter-Hub operator key exists without -installing a local `bao` CLI. +Done when browser login succeeds through the approved KeyCape/OIDC browser +path and the operator can determine whether an Inter-Hub operator key exists +without installing a local `bao` CLI. Progress on 2026-06-15: the operator reached the OpenBao UI and completed an attended platform-admin browser login. The preferred `netkingdom` mount has been added in code and remains to be rolled out and used for the final metadata-only inspection proof. +Completed on 2026-06-15: metadata-only inspection found no existing suitable +Inter-Hub operator credential. The operator then minted a temporary +`inter-hub-bootstrap-operator` key directly in the Inter-Hub database and +stored it in OpenBao at: + +```text +platform/operators/inter-hub/bootstrap-operator +``` + +Only non-secret evidence was recorded in the workplan and State Hub: OpenBao +audit shows successful create/read activity for the path, and the Inter-Hub DB +shows an active static key with prefix `8fab0bef`. + --- ### T06 - Update Operator Runbooks @@ -338,10 +398,9 @@ Verification performed: Verification not performed: - Helm chart rendering, because `helm` is not installed in this local shell. -- Live DNS/TLS/Ingress rollout. - Live KeyCape config rollout. - Live OpenBao role update. -- Attended browser login and metadata-only secret-path inspection. +- Live rollout verification for the preferred `netkingdom` auth mount. ### 2026-06-15 - Preferred netkingdom auth mount added @@ -350,6 +409,20 @@ mount was changed from `keycape` to `netkingdom` to match the platform domain language and reduce operator confusion in the UI. The `keycape` mount remains configured as a compatibility alias. +### 2026-06-19 - Live netkingdom OIDC mount and role alignment + +Applied the pending T04 live configuration: + +- Enabled `auth/netkingdom` OIDC and wrote KeyCape discovery config. +- Updated `auth/netkingdom/role/platform-admin` and + `auth/keycape/role/platform-admin` with the browser and CLI redirect URI set + defined in `configure-openbao-oidc.sh`. +- Verified the public `netkingdom` OIDC `auth_url` endpoint accepts the + browser callback and `verify-openbao-client.sh` still passes. + +No OpenBao tokens, secret values, or Inter-Hub keys were copied into Git, +State Hub, chat, or workplan text. + ## Acceptance Criteria This workplan is complete when: