user-engine/src/user_engine
tegwick 667ea694c2
Some checks are pending
CI Smoke / container-smoke (push) Waiting to run
CI Smoke / host-smoke (push) Successful in 0s
Delegate tenant lifecycle to the tenant authority
TEN-WP-0005 landed the authoritative metadata update and reversible
retirement contract, so USER-WP-0021-T01's deferred tenant operations are
now implementable without user-engine inventing lifecycle semantics.

TenantManagementPort gains read, update, retire, and reactivate. The HTTP
adapter echoes the record version as an If-Match ETag (never `*`), sends an
Idempotency-Key plus actor/reason/correlation_id, and surfaces
Idempotent-Replay. Authority failures map to redacted domain errors carrying
only the contract's stable error_code; its detail text never crosses the
boundary.

Platform operators get the matching API routes and a CSRF-protected browser
screen that reads the record before mutating it and hides the metadata form
for a retired tenant. Portal OpenAPI moves to 0.3.0 with TenantRecord,
UpdateTenant, and TenantLifecycleChange.

Full suite: 145 tests, 3 external-provider skips.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 01:28:02 +02:00
..
adapters Delegate tenant lifecycle to the tenant authority 2026-08-16 01:28:02 +02:00
domain Make registration start idempotent 2026-08-10 19:53:39 +02:00
migrations/postgres Package Postgres migrations with user-engine 2026-07-27 23:20:40 +02:00
testing test: add provider postgres conformance 2026-06-16 07:33:34 +02:00
__init__.py feat: add registration access ui contracts 2026-06-15 23:39:34 +02:00
errors.py Implement isolated user-engine MVP 2026-05-22 21:20:19 +02:00
migrations.py feat: add durable store conformance harness 2026-06-16 00:20:29 +02:00
oidc.py Expand portal onboarding and administration 2026-08-08 23:09:23 +02:00
ports.py Delegate tenant lifecycle to the tenant authority 2026-08-16 01:28:02 +02:00
projections.py Finalize user-engine contracts and operability 2026-05-22 21:45:30 +02:00
runtime.py Separate event and mail delivery credentials 2026-08-13 14:56:24 +02:00
service.py Authorize me reads as self service 2026-08-14 18:25:56 +02:00
store_records.py feat: add postgres user engine store 2026-06-16 07:14:37 +02:00
ui.py feat: add registration access ui contracts 2026-06-15 23:39:34 +02:00
web.py Delegate tenant lifecycle to the tenant authority 2026-08-16 01:28:02 +02:00