Deploy identity drift reconciliation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
tegwick 2026-07-29 23:41:42 +02:00
parent 1d24d671bc
commit 12ac63f32c
4 changed files with 36 additions and 3 deletions

View file

@ -50,7 +50,7 @@
| task | NK-WP-0022-T07 | wait | — | workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md |
| task | NK-WP-0022-T08 | wait | — | workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md |
| task | NK-WP-0023-T01 | done | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |
| task | NK-WP-0023-T02 | progress | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |
| task | NK-WP-0023-T02 | done | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |
| task | NK-WP-0023-T03 | done | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |
| task | NK-WP-0023-T04 | wait | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |
| task | NK-WP-0023-T05 | progress | — | workplans/NK-WP-0023-user-engine-portal-platform-integration.md |

View file

@ -85,3 +85,21 @@ Enterprise implementation begins only when a named tenant supplies:
- test tenant and rollback owner.
Until then, local LLDAP plus KeyCape remains the managed identity path.
## Provider reconciliation contract
The local LLDAP adapter establishes the provider-neutral operational pattern
that later enterprise adapters must preserve:
- `drift` performs a read-only comparison of desired identity, tenant groups,
roles, and lifecycle status;
- `reconcile` converges only adapter-owned attributes and reports every change;
- ambiguous email/subject conflicts fail for explicit repair instead of
silently relinking an identity;
- newly created identities are compensated when initial group projection
cannot complete;
- deprovisioning is replay-safe, and transient transport failures may be
retried only with the caller's required idempotency key.
SCIM and directory-synchronization adapters should implement this same seam
instead of adding provider-specific repair behavior to user-engine.

View file

@ -23,7 +23,7 @@ spec:
seccompProfile: {type: RuntimeDefault}
containers:
- name: provisioner
image: identity-provisioner:80adc31
image: identity-provisioner:12cdef5
imagePullPolicy: Never
ports: [{name: http, containerPort: 8080}]
env:

View file

@ -41,7 +41,7 @@ now so later enterprise directories do not require a domain rewrite.
```task
id: NK-WP-0023-T02
status: progress
status: done
priority: high
state_hub_task_id: "89fe51aa-f351-4763-a358-3eec79f28350"
```
@ -61,6 +61,16 @@ only user-engine to call it and only LLDAP/DNS egress. A live create/replay/dele
conformance run returned `resumed: false`, then `resumed: true`, and removed the
disposable subject. Reconciliation, compensation, and drift reporting remain.
2026-07-29 completion: image `identity-provisioner:12cdef5` adds read-only
drift inspection, active convergence of adapter-owned tenant groups and
suspension state, replay-safe deprovisioning, and best-effort compensation
when initial group projection fails. User-engine exposes these operations
through its provider-neutral port and retries one transient failure only under
the mandatory idempotency key. A disposable live probe proved clean initial
state, detected induced suspension drift, reported both the unexpected group
and status mismatch, removed the drift, returned to `in_sync`, deprovisioned,
and accepted the repeated deletion. The probe identity was removed.
## T03 - Integrate KeyCape login, claims, and MFA handoffs
```task
@ -188,6 +198,11 @@ passed. The test also detected and corrected newline handling for mounted
Kubernetes secrets before any identity was created. The broader negative,
outage, suspension, restore, and browser/MFA matrix remains.
2026-07-29 increment: provider-path conformance now also covers
machine-readable drift detection, automated repair, compensation semantics,
transient retry, and replay-safe deletion. The broader browser, authorization,
provider-outage, and restore matrix remains open.
## T07 - Complete KEY-WP-0004 through the reusable portal
```task