Commit graph

50 commits

Author SHA1 Message Date
667ea694c2 Delegate tenant lifecycle to the tenant authority
Some checks are pending
CI Smoke / container-smoke (push) Waiting to run
CI Smoke / host-smoke (push) Successful in 0s
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
db8769cc8c Authorize me reads as self service
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-14 18:25:56 +02:00
5e37e9c012 Authorize self identity links by stored ownership
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-14 16:16:59 +02:00
10ee042c41 Mark linked identity context as self
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-08-14 15:46:17 +02:00
d4a13275d0 Release readiness probe database transactions
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-14 14:22:35 +02:00
14b8121c71 Align registration verification request contract
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-14 11:25:43 +02:00
0b6a57dc6c Keep failed outbox events retryable
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-14 00:34:09 +02:00
a0f39f58bd Separate event and mail delivery credentials
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-13 14:56:24 +02:00
d6873b84ae Make registration start idempotent
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 19:53:39 +02:00
d5a5fed69a Add public registration cancellation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 19:27:41 +02:00
b80de5a1f4 Rate limit public registration writes
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 17:52:53 +02:00
0669fa7a85 Add public registration browser journey
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 15:59:50 +02:00
c12bc604a8 Make public registration provisioning resumable
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-08-10 11:32:08 +02:00
c36a09bded Implement verified public registration flow
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-10 11:26:18 +02:00
6962ad63b4 Route invitation recipients only to mail delivery
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-09 21:25:20 +02:00
292e7e0e3e Add production authorization and delivery adapters
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-09 01:53:30 +02:00
c0da589dbe Connect platform tenant creation to tenant-engine
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
2026-08-09 01:34:36 +02:00
8229c6dd33 Expand portal onboarding and administration
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-08 23:09:23 +02:00
2bcda7f26f Expose protected operability metrics
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-29 23:52:06 +02:00
a336f594e7 Expose provider-neutral identity reconciliation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-29 23:41:47 +02:00
746bf21715 Allow renewing password setup links
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 17:33:12 +02:00
4efce34821 Present single-use password setup handoff
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-07-28 17:30:17 +02:00
0ef2ae515e Normalize runtime secret transport whitespace
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 15:22:43 +02:00
e23674d343 Add CSRF-safe tenant identity administration
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 01:22:55 +02:00
b2f11856b8 Normalize mounted provisioning tokens
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 01:04:05 +02:00
e7e8709ca8 Add reusable identity provisioning adapter
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 00:57:04 +02:00
268b3156f9 Support internal KeyCape OIDC endpoints
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 00:23:30 +02:00
67ad2af640 Add KeyCape PKCE browser sessions
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-28 00:06:21 +02:00
c27012afe5 Package Postgres migrations with user-engine
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-07-27 23:20:40 +02:00
2869c1030d Avoid Kubernetes service environment collision
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-07-27 23:02:34 +02:00
0980d1fd41 Implement user-engine portal foundation
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
2026-07-27 22:47:39 +02:00
a1692c62e3 test: add provider postgres conformance 2026-06-16 07:33:34 +02:00
0d50ad294d feat: add postgres user engine store 2026-06-16 07:14:37 +02:00
6810d9a3aa feat: add durable store record serialization 2026-06-16 03:43:55 +02:00
886874d0f6 feat: add durable store conformance harness 2026-06-16 00:20:29 +02:00
2ceecf6463 test: add registration security conformance 2026-06-15 23:59:45 +02:00
aaefa48212 feat: add registration access ui contracts 2026-06-15 23:39:34 +02:00
5d7685dc8d feat: implement onboarding journeys 2026-06-15 23:24:59 +02:00
660ce24995 feat: implement access profiles and hats 2026-06-15 23:12:25 +02:00
97cd03b551 feat: implement prepared account claims 2026-06-15 22:37:31 +02:00
a36a25898e Implement registration identity model 2026-06-15 22:06:39 +02:00
2c94b40fc4 Implement durable store contract and registration roadmap 2026-06-15 16:33:24 +02:00
531c2193a4 Implement family dataspace onboarding 2026-06-05 18:51:47 +02:00
c6d211f472 Implement identity canon alignment 2026-06-05 16:04:43 +02:00
ce2d620f4e Finalize user-engine contracts and operability 2026-05-22 21:45:30 +02:00
9b241ab2e3 Add integrated user-engine scenarios 2026-05-22 21:39:10 +02:00
1440a597df Add multi-application catalog support 2026-05-22 21:33:38 +02:00
2f9272f39d Add tenant-aware user-engine behavior 2026-05-22 21:28:40 +02:00
5203d9f45f Implement isolated user-engine MVP 2026-05-22 21:20:19 +02:00
58d9de26d3 Start user-engine implementation scaffold 2026-05-22 20:55:27 +02:00