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

@ -32,6 +32,7 @@ class VerifiedIdentityClaimsAdapter:
principal_type=PrincipalType(str(claims["principal_type"])),
audience=audience,
roles=_strings(claims.get("roles", ())),
tenant_roles=_strings(claims.get("tenant_roles", ())),
groups=_strings(claims.get("groups", ())),
scopes=_strings(scopes),
assurance=dict(claims.get("assurance", {})),

View file

@ -39,6 +39,7 @@ class FlexAuthHTTPAdapter:
"attributes": {
"issuer": request.actor.issuer,
"roles": list(request.actor.roles),
"tenant_roles": list(request.actor.tenant_roles),
"groups": list(request.actor.groups),
"scopes": list(request.actor.scopes),
"assurance": dict(request.actor.assurance),

View file

@ -210,6 +210,7 @@ class Actor:
principal_type: PrincipalType
audience: tuple[str, ...]
roles: tuple[str, ...] = ()
tenant_roles: tuple[str, ...] = ()
groups: tuple[str, ...] = ()
scopes: tuple[str, ...] = ()
assurance: Mapping[str, Any] = field(default_factory=dict)

View file

@ -38,6 +38,7 @@ class FixtureIdentityClaimsAdapter:
principal_type=PrincipalType(str(claims["principal_type"])),
audience=tuple(_as_tuple(claims.get("aud", ()))),
roles=tuple(_as_tuple(claims.get("roles", ()))),
tenant_roles=tuple(_as_tuple(claims.get("tenant_roles", ()))),
groups=tuple(_as_tuple(claims.get("groups", ()))),
scopes=tuple(_as_tuple(scopes)),
assurance=dict(claims.get("assurance", {})),