Commit Graph

73 Commits

Author SHA1 Message Date
9dc7e140b8 Refine OpenBao taint resolution 2026-05-26 01:50:57 +02:00
500e616202 Add OpenBao admin identity stage 2026-05-26 01:17:42 +02:00
cfd8231849 Add OpenBao admin token action 2026-05-26 00:23:06 +02:00
d0c7ff9f3b Clarify OpenBao rotation flow 2026-05-26 00:09:19 +02:00
8520ae8d7d Fix OpenBao rotation commands 2026-05-25 23:56:55 +02:00
d39dbe14b8 Add bootstrap stage rail 2026-05-25 23:36:45 +02:00
cd043ca471 Refine bootstrap actions and runbook templates 2026-05-25 23:10:02 +02:00
82d69e006f Add OpenBao restore drill actions 2026-05-25 18:48:23 +02:00
e2540529f0 Add OpenBao emergency lockdown runbook 2026-05-25 18:31:48 +02:00
b9bad47a21 Split OpenBao initial config progress 2026-05-25 15:14:59 +02:00
9afe30f49f Show compromised OpenBao paths as tainted 2026-05-25 14:57:53 +02:00
7a060a0ee6 Add OpenBao compromise runbooks to bootstrap UI 2026-05-25 13:38:03 +02:00
976f399342 Refine bootstrap responsibilities and command states 2026-05-25 13:13:47 +02:00
4982c92fb1 Restructure bootstrap UI around artefact model 2026-05-25 11:49:51 +02:00
e45dd4f9eb Guide OpenBao custody ceremony order 2026-05-25 02:02:14 +02:00
83cf2111c1 Clarify bootstrap custody UI flow 2026-05-25 01:25:47 +02:00
711c451d43 Record platform-root OIDC verification 2026-05-25 00:46:44 +02:00
dc70cd9fab Configure KeyCape LLDAP people OU 2026-05-25 00:32:43 +02:00
5af876eb8c Enable KeyCape bootstrap MFA mode 2026-05-25 00:16:05 +02:00
4cc22bec9e Record Railiance KeyCape rollout 2026-05-24 18:12:41 +02:00
d555a33695 bootstrapping guidance ui and missing stuff 2026-05-24 17:04:15 +02:00
1d0b0e7330 openbao king credential bootstrapping 2026-05-24 09:26:02 +02:00
97423c6110 Complete user-engine boundary contracts 2026-05-22 22:26:36 +02:00
c8e2b142db Split user-engine implementation planning 2026-05-22 19:50:12 +02:00
6892dfd758 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-22:
  - update .custodian-brief.md for net-kingdom
2026-05-22 19:45:22 +02:00
28da204cf2 Add user-engine architecture workplans 2026-05-22 19:28:00 +02:00
8e720dd78a Implement NK-WP-0013 playbook capability contract 2026-05-22 14:49:25 +02:00
c3f721397a Implement NK-WP-0012 IAM profile specification 2026-05-22 14:35:31 +02:00
48cd174b00 Register NK-WP-0013 in State Hub
Backfill workstream and task ids from State Hub registration
(workstream 32a54d8e, 6 tasks).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:43:58 +02:00
09534f6617 Draft NK-WP-0013: Playbook Capability Contract
The orchestration-layer analog of the IAM Profile, realizing the
playbook-contract dependency named in ADR-0007's meta-orchestration
refinement. NetKingdom owns the contract schema (consumer-defines-contract,
IAM Profile precedent); Railiance authors playbooks and publishes
conformant declarations; execution stays in Railiance (ADR-0007 unchanged).

Six tasks: ownership ADR + versioning; capability vocabulary (aligned to
the C0-C6 ladder + responsibility-map resource kinds); parameter format
(defaults, constraints, security-sensitivity); responsibility/trust-state
claims; catalog + consumption model + conformance validator; reference
adoption with one Railiance playbook. Status proposed; not yet registered.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:41:17 +02:00
e852c23f5f Register NK-WP-0012 in State Hub
Backfill workstream and task ids from State Hub registration
(workstream 9b8e4afc, 6 tasks).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:25:26 +02:00
b29d30ff10 Draft NK-WP-0012: NetKingdom IAM Profile specification
Plan to make net-kingdom the canonical owner of the IAM Profile. A v0.1
draft exists in the-custodian canon (all-hubs, Custodian-flavored,
Keycloak as reference provider); this workplan relocates ownership and
evolves it to a provider-neutral, platform-neutral v0.2 that is tenant-
and agent-aware, carries explicit assurance evidence, specifies the claim
contract flex-auth consumes, and ships an executable conformance check.

Enables NK-WP-0011 (T6 conformance) and depends on NK-WP-0006 (recursive
tenant model). Status: proposed; not yet registered in the hub.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:21:59 +02:00
57073af68c Register NK-WP-0011 in State Hub; archive NK-WP-0001
Set NK-WP-0001 status to canonical 'archived' (was non-canonical
'deferred', which the hub rejected). Backfill NK-WP-0011 workstream and
task ids from State Hub registration.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 00:07:06 +02:00
ab79a32eba Cancel NK-WP-0001-T04; extract Keycloak federation into NK-WP-0011
NK-WP-0001-T04 (privacyIDEA, Keycloak path) -> cancelled, superseded by
NK-WP-0003-T04 in the deployed KeyCape stack. T05-T08 (Keycloak SSO,
realm/MFA flow, user mgmt, DR) -> cancelled and migrated to NK-WP-0011.

NK-WP-0011 reframes the deferred Keycloak work as expanded-mode enterprise
federation: Keycloak as an identity broker for Entra ID / AD / SAML that
issues IAM Profile-conformant tokens, refined against the current stack
(OpenBao runtime secrets, CloudNativePG, flex-auth/Topaz PDP, recursive
platform/tenant model) rather than the original greenfield assumptions.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 23:48:51 +02:00
7b211acd57 Add OpenBao runtime secret authority; complete NK-WP-0006/0007/0008
Refine the recursive platform security architecture to make OpenBao the
canonical runtime secret authority, with SOPS/age, K8s Secrets, and the
emergency bundle reframed as bootstrap/delivery/break-glass mechanisms.

- credential-management standard v0.2: add OpenBao runtime authority
  section, rotation rules, and prohibited patterns (OpenBao-as-PDP,
  tenant platform-root)
- platform-identity-security-architecture: mark implemented; add
  flex-auth/Topaz implications, Coulomb onboarding path, and a
  production-readiness checklist
- NK-WP-0004/0005: document bootstrap-to-OpenBao handoff boundary
- NK-WP-0006/0007: status -> done with implementation reviews; add
  recursive platform/tenant split and OpenBao broker/audit role for
  object-storage STS vending
- NK-WP-0008: status -> done; repoint corpus to infospace-bench
- new ADR-0007 (orchestration boundary), ADR-0008 (STS vending
  boundary), and the object-storage STS credential-vending architecture

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 22:51:20 +02:00
b49631acef Add NK-WP-0010 genesis pattern completion plan 2026-05-19 07:12:08 +02:00
d4adfa2c1b Add security architecture workplans 2026-05-17 14:17:55 +02:00
1ad75b7a56 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - NK-WP-0006-T7: pending → todo
2026-05-17 12:24:35 +02:00
f37a62ff61 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - NK-WP-0006-T6: pending → todo
2026-05-17 12:24:35 +02:00
a826d789ee chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - NK-WP-0006-T5: pending → todo
2026-05-17 12:24:35 +02:00
5c21cd7b18 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - NK-WP-0006-T4: pending → todo
2026-05-17 12:24:35 +02:00
81fe5b7381 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - NK-WP-0006-T3: pending → todo
2026-05-17 12:24:35 +02:00
64a112f70c Document recursive platform security architecture 2026-05-17 12:18:29 +02:00
9009ca6b56 Net Kingdom cluster deployment finished 2026-05-02 17:28:44 +02:00
c054241a5c feat(t09): backup, break-glass, DR drill — NK-WP-0003-T09 done
- Apply SQLite backup CronJobs (LLDAP, Authelia, privacyIDEA) — all verified running
- Fix authelia-backup: remove scale-down/up dance; concurrent local-path PVC mount
  works on single-node k3s, sqlite3 .backup is safe for concurrent access
- Fix privacyidea-backup: add supplementalGroups: [999] so uid=1000 can read enckey
- Add allow-backup-to-kube-api NetworkPolicy (backup pod → 10.43.0.1:443)
- Create break-glass LLDAP account (net-kingdom-admins); fix ((PASS++)) set-e trap
- SQLite restore drill: LLDAP backup valid (2 users, all tables)
- verify-t08.sh: PASS=15, FAIL=0; fix counter bug + enckey PVC path (/etc/privacyidea)
- Update DR-RUNBOOK.md Authelia restore procedure
- T09 deferred: CNPG backup (needs MinIO/S3), Prometheus (needs kube-prometheus-stack)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 23:56:40 +00:00
4c47c9035f chore(workplan): NK-WP-0003 T04+T08 — testuser provisioned, pi-admin TOTP deferred
testuser fully provisioned in LLDAP + privacyIDEA (TOTP00007147 validated).
pi-admin TOTP deferred: requires admin realm setup (SQLresolver), pi-manage
has no enroll command, WebUI only works for resolver-backed users.
T08 unblocked — proceed to KeyCape acceptance tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 11:49:51 +00:00
23e0b43318 fix(netpol): allow Traefik→ACME solver pods; mark T02–T07 done on RAILIANCE01
Added allow-traefik-to-acme-solver NetworkPolicy to sso and mfa namespaces.
The default-deny-all policy was blocking HTTP-01 challenge traffic from Traefik
to the cert-manager solver pods, causing all TLS certs to stay pending (502).

Workplan NK-WP-0003 updated: T02, T03, T04, T05, T06, T07, T08a all done on
RAILIANCE01 as of 2026-03-25. T08 (e2e auth test) is now unblocked.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 11:49:26 +00:00
df09dd42f4 feat(close): mark NK-WP-0003 T08/T08a/T08b done — acceptance tests passing
All 3 KeyCape test packages pass (migration, negative, profile).
DNS resolves for all 4 subdomains; Go 1.22.10 available at ~/go/bin/go.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 11:52:11 +01:00
eebaa4fc81 chore(workplan): add T08a (DNS records) and T08b (Go install) tasks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 00:40:40 +00:00
d1fd73e7ed chore(workplan): NK-WP-0003-T08 blocked — DNS records + Go missing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 00:36:56 +00:00