Commit graph

11 commits

Author SHA1 Message Date
bee22db620 docs(canon): reconcile workload and tenant grouping semantics
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02929-244b-7391-b933-c04010e8eedb
2026-08-22 14:53:31 +02:00
1bb7bce99b ADR-0015: NetKingdom Railiance packaging and relational platform
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Settles two questions raised by bringing NetKingdom under Railiance
governance:

1. Separate rapp-* repos per engine (rapp-tenant-engine, rapp-user-engine),
   following repository-axes.md's one-workload rule. The decisive property is
   independent rollback -- a single rapp would need one rollback contract
   across independently versioned services. secrets-engine is not packaged as
   a rapp: it has no deployed workload.

2. CloudNative PG via rapp-postgres is the default relational platform for
   production. Per-workload SQLite-on-a-PVC is dev/test only, and
   rail-kubernetes wave-1 does not support the persistent-storage contract it
   depends on. tenant-engine migrates; its TenantStore Protocol makes this a
   backend swap behind an existing seam.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 14:46:33 +02:00
9026d7f904 ADR-0014 + tenant-engine boundary contract + IAM Profile v0.3
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 5s
Ratifies the tenant capability-role model (PLTF/IAM/VEN/CUS, non-exclusive,
independent of ADR-0013's grouping axis), a hybrid carrying mechanism
(tenant-engine authoritative, key-cape caches a tenant_roles claim at
issuance, flex-auth re-validates live for aal2-class decisions), and
tenant-engine as a new, separate service owning tenant existence, grouping,
capability roles, and plan/subscription assignment -- not a module inside
user-engine, whose own boundary contract already scopes it to consuming
tenant identifiers, not owning them.

canon/standards/tenant-engine-boundary-contract_v0.1.md defines that
ownership boundary before the repo exists, mirroring how
user-engine-boundary-contract_v0.1.md was sequenced.

canon/standards/iam-profile_v0.3.md (minor version per ADR-0011's own
governance -- optional claim addition, no breaking change) adds the
tenant_roles claim, folds in ADR-0013's tenant-identifier vocabulary, and
documents the live-revalidation requirement. docs/platform-identity-
security-architecture.md's Tenant Model section and SCOPE.md's canonical
spec pointer updated to match; other historical citations of v0.2 left as
version-pinned references, not bulk-updated.

Records Bernd's trial-tenant policy: trial-grouped tenants may hold any
capability role (showcase/test/explore), with safety enforced through
tenant-engine-owned resource guardrails (spend limits, entity/action
counts) rather than role gating -- guardrail design is reserved, explicitly
not specified by this change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 21:45:37 +02:00
a18f83c4af ADR-0013: tenant onboarding grouping taxonomy, orthogonal to capability role
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 4s
Replaces the sandbox/customer suggested tenant identifiers in
iam-profile_v0.2.md's Tenant Claim section with an onboarding-risk/
entity-shape grouping (trial, friendly, single, small, medium, large,
enterprise, consumer, family, community, association, agentic) that stays
orthogonal to the separate, still-unratified capability-role model
(PLTF/IAM/VEN/CUS) a tenant can also hold. Role words as a grouping would
collide the moment a tenant's roles evolve -- Binky Hedgehog GmbH is CUS
now and VEN later, so tenant:customer:binky was already the wrong shape.

First application: tenant:friendly:binky
(key-cape/workplans/KEY-WP-0004-binky-hedgehog-tenant-onboarding.md).
tenant:platform and tenant:coulomb proposed as reserved/ungrouped, flagged
for explicit confirmation. Classified as an editorial change per ADR-0011's
governance (no required-claim schema change) -- the iam-profile_v0.2.md
Tenant Claim section edit itself is tracked as a follow-up, not bundled here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 16:01:55 +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
84e9a56f6c Add responsibility map; link from ADR-0010
Create docs/responsibility-map.md: the single home for NetKingdom's
orchestration relationships, kept out of the orchestrated repos' intents
per ADR-0010. Records the classification criterion, the current
minimal-foundation scope, and per orchestrated repo (railiance-infra,
railiance-cluster, railiance-platform, key-cape, flex-auth) the resources
held, what the repo owns (execution), and what NetKingdom orchestrates
(meta). Lists dependencies and out-of-scope repos so the scoping decision
is explicit and revisitable.

Update ADR-0010 to point at the now-created map.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:05:37 +02:00
6973440b3c Add ADR-0010: orchestration vs dependency, self-coherent intent
Record two foundational principles that emerged while aligning ecosystem
INTENT.md files:

1. Orchestration != dependency. NetKingdom orchestrates a repo when that
   repo holds resources NetKingdom must manage (users, roles, scopes,
   policies, infra resources). It depends on a repo when it merely uses it
   as a tool. Defining question: does the repo hold resources NetKingdom
   needs to orchestrate? (railiance-fabric = dependency;
   railiance-infra/cluster/platform = orchestrated.)
2. Intent is self-coherent. A repo's INTENT.md describes its own purpose
   abstractly; it must not reference NetKingdom, sister projects' intents,
   or even dependencies. Relationships live in the responsibility map /
   ADRs / interface contracts, not in intent.

Rejects the earlier "place in the NetKingdom landscape" block idea as a
Principle 2 violation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 01:26:31 +02:00
88a30e3c0a Add meta-orchestration layer to ADR-0007; deepen NetKingdom INTENT
- ADR-0007: refine (not overturn) the orchestration boundary with the
  two-layer model — Railiance executes parametrized playbooks, NetKingdom
  does meta-orchestration (scenario->playbook selection, parametrization,
  responsibility map). Add the playbook/capability-contract dependency as
  the prerequisite, analogous to the IAM Profile.
- INTENT.md: add "Why NetKingdom" (the kingdom metaphor: governed,
  defended, living/evolving, tended by its people); Principle 7
  (Meta-Orchestration over Re-Implementation); an Operating Model section
  (kaizen-agent workforce for recurring duties + change/improvement); and
  matching Direction-of-Evolution entries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 01:00:39 +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
64a112f70c Document recursive platform security architecture 2026-05-17 12:18:29 +02:00