Adapt USER-WP-0021 and USER-WP-0023 to published policy-nexus contracts
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 1m1s

IAM Profile v0.3 and Tenancy Posture v0.1 are now live on
policy.coulomb.social. Close the portal expansion workplan against those
documents, keep the flex-auth live A2 probe waiting, and forward optional
tenant_roles to flex-auth without authorizing from them locally.
This commit is contained in:
tegwick 2026-08-19 09:51:08 +02:00
parent 166788228d
commit f762161d84
13 changed files with 109 additions and 10 deletions

View file

@ -4,11 +4,11 @@ type: workplan
title: "Expand user-engine portal beyond the proven Binky MVP"
domain: communication
repo: user-engine
status: active
status: finished
owner: codex
topic_slug: netkingdom
created: "2026-07-30"
updated: "2026-08-16"
updated: "2026-08-19"
depends_on:
- USER-WP-0020
- TEN-WP-0005
@ -190,7 +190,7 @@ deployed and wants its own permission.
```task
id: USER-WP-0021-T05
status: wait
status: done
priority: low
state_hub_task_id: "05046780-9625-47c2-8caf-f57e9239c603"
```
@ -199,6 +199,24 @@ When a tenant requires SAML/OIDC federation, SCIM, directory synchronization,
just-in-time provisioning, or customer-owned lifecycle, create a dedicated
cross-repository plan against the provider-neutral contracts.
2026-08-19 policy-nexus adaptation: no tenant has demanded those
integrations, so this workplan does not spawn one. The trigger now points
at published contracts rather than unpublished drafts:
- IAM Profile v0.3 at
`https://policy.coulomb.social/standards/iam-profile/v0.3/` — Keycloak
expanded mode remains the interchangeable enterprise-federation
implementation; grouping and `tenant_roles` are independent axes
(ADR-0013 / ADR-0014). Existing v0.2 claim handling stays conformant.
- Tenancy Posture v0.1 at
`https://policy.coulomb.social/standards/tenancy-posture/v0.1/`.
- NetKingdom architecture draft-2 at
`https://policy.coulomb.social/architecture/net-kingdom/v0.1/`.
user-engine still does not own federation, SCIM, or directory
synchronization. A new workplan is the right vehicle if a tenant later
requires them. This workplan's product-expansion scope is complete.
## Production rollout (2026-08-08)
Commit `8229c6d` passed 115 tests with three external-provider skips, was
@ -283,3 +301,17 @@ instead of receiving the documented bounded automatic retry. The query now
selects every undelivered, non-dead-letter event; regression coverage checks
that failed rows are not filtered out. The full suite passes 133 tests with
three external-provider skips.
## Residuals after close (2026-08-19)
- Live tenant-lifecycle probe from a user-engine pod (GET / PATCH / retire /
reactivate on a disposable tenant) remains owed with USER-WP-0023-T03.
Contract tests cannot see a digest pin rollback.
- Outbox transport activation still waits on governed OpenBao event/mail
tokens and transactional SMTP credentials.
- Optional `tenant_roles` is now forwarded to flex-auth. Privileged
live re-query against tenant-engine is required only if a future policy
treats those roles as `aal2`-class input; flex-auth currently has no
such policy.
- A new workplan is required if a tenant demands federation, SCIM, or
directory synchronization.

View file

@ -8,7 +8,7 @@ status: active
owner: codex
topic_slug: netkingdom
created: "2026-08-18"
updated: "2026-08-18"
updated: "2026-08-19"
state_hub_workstream_id: "014d0886-b690-4860-8337-c718e440f678"
---
@ -80,4 +80,26 @@ This task stays `wait` on FLEX-WP-0015-T02 promotion through FLEX-WP-0011,
and on an operator shell with cluster credentials, which agent sessions in
this repo do not hold.
2026-08-19 policy-nexus adaptation: the published contracts now name the
same split this workplan already implemented.
- IAM Profile v0.3 Service Account Flow
(`https://policy.coulomb.social/standards/iam-profile/v0.3/`) requires
audience-scoped, rotating workload credentials delivered through the
credential-management standard — that is the projected ServiceAccount
token we already send. The optional `tenant_roles` claim is forwarded
to flex-auth as a subject attribute and is never used as a local
authorization decision.
- Tenancy Posture v0.1
(`https://policy.coulomb.social/standards/tenancy-posture/v0.1/`) is the
public A2 target T03 is waiting to prove: a single inbound choke point
that refuses an unbound caller. Our half of that vector is deployed;
flex-auth's running digest is still A0.
- NetKingdom architecture draft-2
(`https://policy.coulomb.social/architecture/net-kingdom/v0.1/`) lists
both documents in chapter 9.
The workplan stays `active` because T03's live proof is still owed. That
proof is not unblocked by publication.
Contract: `docs/flex-auth-caller-identity.md`.