ADR 036 kanonischer iam projektions und reconcile vertrag - smart-village-solutions/sva-studio GitHub Wiki
Akzeptiert
Die Live-Analyse vom 2026-04-19 zeigte zwei miteinander verknüpfte Laufzeitprobleme:
- User-, Membership-, Profil- und Rollenansichten leiteten ihren Zustand nicht durchgängig aus derselben fachlichen Quelle ab.
- User-Sync und Rollen-Reconcile lieferten zwar zunehmend bessere Diagnostik, blieben aber fachlich inkonsistent, teilweise hängend oder von blockerrelevantem Tenant-Admin-Drift entkoppelt.
Dadurch konnten /auth/me, /account, /admin/users und /admin/roles für denselben Benutzer widersprüchliche Rollen-, Status- oder Anzeigenamen zeigen. Gleichzeitig führten fehlender Tenant-Admin-Client, Secret-Drift oder andere Provisioning-Blocker zu scheinbar gestarteten, aber fachlich irreführenden Sync- und Reconcile-Läufen.
- Das System verwendet einen gemeinsamen IAM-Projektionskern von Keycloak-Identität (
sub,instanceId) über IAM-User und Membership bis zur Rollen- und Profilprojektion. -
/auth/me,/account,/admin/usersund/admin/rolesmüssen fachliche User-, Rollen- und Statusinformationen aus diesem gemeinsamen Projektionskern ableiten. - User-Sync und Rollen-Reconcile liefern deterministische Abschlusszustände
success,partial_failure,blockedoderfailedsowie die Zählerchecked,corrected,failedundmanualReview. -
manual_reviewbleibt ein ausschließlich fachlicher Restzustand. Technische Fehler wieIDP_UNAVAILABLE, Berechtigungsfehler wieIDP_FORBIDDENund blockerrelevanter Drift bleiben getrennt sichtbar. - Tenant-Admin-abhängige Sync- und Reconcile-Pfade reagieren fail-closed, wenn Registry-, Preflight- oder Provisioning-Drift einen tragfähigen Lauf verhindern.
- Profil-, User- und Rollenansichten bleiben fachlich konsistent.
- UI, Browser-API und Server teilen sich denselben Reconcile- und Fehlervertrag.
- Blockerrelevanter Drift führt nicht mehr zu scheinbar erfolgreichen Sync- oder Reconcile-Aktionen.
- Operatoren können technische Fehler, Berechtigungsprobleme und fachliche Restfälle gezielter unterscheiden.
- Der Projektionskern wird zu einer zentralen Integrationsstelle und erhöht die Bedeutung sauberer Tests.
- Bestehende UI-Pfade müssen sich von lokaler Ableitungslogik lösen und können dabei Folgeanpassungen benötigen.
- Nicht deterministisch auflösbare Restfälle bleiben weiterhin manuell zu behandeln.
Verworfen, weil dies die bisherige Inkonsistenz zwischen Self-Service, Admin-Listen und Rollenansicht fortgeschrieben hätte.
Verworfen, weil fachliche Inkonsistenzen und Drift-Blocker dann weiter in schwer interpretierbaren Teilzuständen sichtbar geblieben wären.
Verworfen, weil dies fachlich riskante Korrekturen ohne ausreichend sichere Führungsdaten erzeugen könnte.
openspec/changes/refactor-iam-runtime-consistency-remediation/proposal.mdopenspec/changes/refactor-iam-runtime-consistency-remediation/tasks.mddocs/reports/iam-diagnostics-analysis-2026-04-19.mddocs/adr/ADR-016-idp-abstraktionsschicht.mddocs/adr/ADR-033-tenant-login-client-vs-tenant-admin-client.md