Open security core for dev sec ops on kubernetes
Find a file
tegwick 2744ce7d36 Tenancy Posture draft-6: the first review changed the document
tenant-engine assessed itself against the ladders and came back with
corrections. All five are adopted, because the ratification test says that if a
repo cannot express itself the ladders are wrong - and it could not, in three
places.

I2 conflated authority with verification. Its text named tenant-engine as the
source of existence, which made the level describing canonical identity
unclaimable by the service that provides it. An axis is assessed on a service's
own inbound surface, never on its authority over the concept. tenant-engine is
the source of tenant records and is at I1, because the acting identity arrives
in the request body rather than in a verified token.

A level now reports the weakest surface. tenant-engine has PDP-authorized
mutations and three unauthorized read routes - including the one flex-auth
calls for aal2-class decisions - and reported A2 rather than A3. Publishing the
stronger surface would be accurate about that surface and misleading about the
service. A per-surface vector was considered and rejected as premature.

The E ladder assumed all data is tenant-keyed. A registry whose rows ARE the
tenants has no predicate to scope a policy by, and enforcing one would break
the service rather than secure it. Mixed-shape services now declare an E level
plus a named registry exception; an unnamed exception is an overclaim. Without
this they overclaim or sit at E2 forever, which is what tenant-engine was
facing.

Retention and erasure are two dimensions and one level cannot carry both.
tenant-engine is R1 on backup and R0 on erasure - its lifecycle contract
deliberately defines no hard-delete, so a tenant record cannot be deleted ever,
by design, while carrying display_name and contact_email. Declared R1/R0 now.
And the compounding - personal data, no erasure path, a backup window set by
the longest-retaining co-resident - is the substrate owner's to surface,
because each part looks locally reasonable alone.

My own error, corrected: I listed tenant-engine as a live P1 occupant in both
the ladder and the E/P matrix. They are on SQLite. P1 is TEN-WP-0009's target
and the provisioning is my own unapplied intake. Asserting a placement that a
workplan exists to create is exactly the kind of claim this document forbids.

Worth recording: they found an unfiltered cross-tenant read in their own event
accessor while assessing against the ladder, before publishing anything.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:38:35 +02:00
.claude docs: workplan-first agent guidance prose (CUST-WP-0055 T04 batch 2) 2026-07-08 16:41:16 +02:00
.forgejo/workflows Add Forgejo CI smoke workflow (enablement template) 2026-07-08 12:37:33 +02:00
.githooks feat(creds): implement NK-WP-0004 Credential Management Foundation 2026-03-20 23:39:35 +00:00
canon Tenancy Posture draft-6: the first review changed the document 2026-08-17 21:38:35 +02:00
docs Resume user-engine integration rollout 2026-08-13 14:56:53 +02:00
examples Add signed custody roster workflow 2026-06-02 01:11:42 +02:00
history NET-WP-0020 finished: attended-ceremony + auto-unseal-transit profiles, greenfield init/unseal proof 2026-07-02 22:08:33 +02:00
identity-provisioner Track and harden NK-WP-0025 residuals 2026-08-14 19:35:46 +02:00
keys feat(creds): implement NK-WP-0004 Credential Management Foundation 2026-03-20 23:39:35 +00:00
local-identity Local Identity OICD bootstrap 2026-05-02 16:58:44 +02:00
registry Draft capability entry (reuse-surface REUSE-WP-0017-T04, cohort 2) 2026-07-06 19:41:37 +02:00
sso-mfa Finish public registration and JIT acceptance 2026-08-14 19:15:06 +02:00
tests Activate expanded portal integration gate 2026-08-09 02:00:58 +02:00
tools Deploy scoped user-engine delivery lanes 2026-08-13 17:34:29 +02:00
wiki Add CLAUDE.md, wiki protoplans, and NK-WP-0001 workplan 2026-02-28 17:21:51 +01:00
workplans Finish audit sender custody residual 2026-08-14 19:59:14 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-08-14 19:59:17 +02:00
.gitignore Close OpenBao OIDC admin bootstrap path 2026-06-01 21:20:53 +02:00
.repo-classification.yaml Human-review .repo-classification.yaml (CUST-WP-0050 follow-up) 2026-06-22 17:56:17 +02:00
.sops.yaml feat(creds): implement NK-WP-0004 Credential Management Foundation 2026-03-20 23:39:35 +00:00
AGENTS.md Regenerate agent instructions: workstream -> workplan terminology 2026-07-02 01:47:46 +02:00
CLAUDE.md Add credential routing instructions for all agent runtimes 2026-06-18 22:48:38 +02:00
CONFIG.md feat(sso-mfa): T05 SSO stack pivot — Keycloak → Authelia + LLDAP + KeyCape (NK-WP-0001-T05) 2026-03-19 08:31:51 +00:00
DECISIONS.md Decision for KeyCape Implementation Language Go 2026-03-26 09:21:17 +01:00
INTENT.md Add meta-orchestration layer to ADR-0007; deepen NetKingdom INTENT 2026-05-21 01:00:39 +02:00
LICENSE Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout) 2026-07-29 23:43:45 +02:00
Makefile NET-WP-0020 finished: attended-ceremony + auto-unseal-transit profiles, greenfield init/unseal proof 2026-07-02 22:08:33 +02:00
README.md Remove STATUS.md; SCOPE.md is the canonical orientation doc 2026-07-08 13:19:06 +02:00
SCOPE.md ADR-0014 + tenant-engine boundary contract + IAM Profile v0.3 2026-07-23 21:45:37 +02:00
WORK-RECORDS.md Refresh completed ad-hoc work index 2026-08-14 20:12:52 +02:00

NetKingdom

NetKingdom provides a dynamic self optimizing full circle security-platform for kubernetes deployed IT-infrastructures.

Orientation

  • SCOPE.md — what this repo owns, current state, and when it is relevant

Security Infrastructure Documents

  • secrets-engine security infrastructure boundary defines how secrets-engine participates in the NetKingdom security infrastructure and how it interacts with OpenBao, flex-auth, user-engine, ops-warden, ops-bridge, info-tech-canon, State Hub, and agents.