Completed OIDC Authorization Code Flow with PKCE (S256) for JS and JVM platforms. - Added `launchOidcFlow`, `consumePendingOidcCallback`, and `getOidcRedirectUri` with platform-specific implementations. - Integrated SHA-256 and Base64URL helpers for PKCE. - Updated `LoginViewModel` with OIDC logic (key handling, token exchange, state validation). - Enhanced `LoginScreen` with an OIDC login button and loading spinner. - Verified implementation with system hardening roadmap tasks. Includes browser redirects for JS, localhost HTTP callback for JVM, and built-in Keycloak URL construction. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
3.4 KiB
3.4 KiB
| type | status | owner | last_update |
|---|---|---|---|
| Roadmap | ARCHIVED | Lead Architect | 2026-03-09 |
Roadmap: System Hardening & Stability
Hinweis: Dieses Dokument ist veraltet. Die Inhalte wurden in die MASTER_ROADMAP_2026_Q1.md integriert.
Status: Draft Priorität: Hoch (Blocker für Feature-Entwicklung)
1. Backend & Build System (Architect / Backend Dev)
1.1 Dependency Management
- Spring Cloud 2025.0.1 Downgrade:
libs.versions.toml: Spring Cloud Version auf2025.0.1setzen.platform/build.gradle.kts: BOM Import prüfen.- Ziel: Behebung der
ClassNotFoundExceptionim Gateway (CircuitBreaker). - (verifiziert 2026-03-09)
- Micrometer 1.16.1:
- Explizites Upgrade in
libs.versions.tomlfür Java 25 Kompatibilität. - (verifiziert 2026-03-09: micrometer = "1.16.1" bereits gesetzt, micrometerTracing = "1.6.1")
- Explizites Upgrade in
- KMP Database Cleanup:
- Entscheidung: SQLDelight für KMP Client.
- Entfernen von Room Dependencies (falls nicht zwingend benötigt).
- Exposed Version im Backend prüfen (
0.5xvs1.0.0-rc). - (verifiziert 2026-03-09: Room entfernt, SQLDelight 2.2.1 aktiv in frontend/core/local-db)
1.2 Modul-Struktur
core-utilsRefactoring:- Verschieben von
DatabaseUtils(JVM-Code) auscore-utilsnach:backend:infrastructure:persistence. - Sicherstellen, dass
core-utilsreincommonMainkompatibel ist. - (verifiziert 2026-03-09: Stub-Datei mit Redirect vorhanden, Code in persistence)
- Verschieben von
2. Infrastructure & DevOps (DevOps Engineer)
2.1 Docker Environment
- Redis -> Valkey Migration:
- Prüfen, ob wir Redis durch Valkey (Open Source Fork) ersetzen, um Lizenzprobleme zu vermeiden.
- Update
docker-compose.yaml. - (verifiziert 2026-03-09: valkey/valkey:9-alpine läuft produktiv in dc-infra.yaml)
- Keycloak Härtung: (verifiziert 2026-03-09)
- Export der Realm-Config (
meldestelle-realm.json) und Mounten im Container (statt manueller Config). frontend-client(PKCE S256, Custom URI Schememeldestelle://callback) hinzugefügt.- Wildcard
*auswebOriginsaller Clients entfernt (CORS-Härtung). - Password-Policy auf
length(10) + digits + upperCase + specialCharsgestärkt. post.logout.redirect.urisfür alle Clients konfiguriert.
- Export der Realm-Config (
2.2 Observability
- Zipkin Integration: (verifiziert 2026-03-09)
monitoring-client-Bundle enthält alle nötigen Dependencies (bridge-brave, reporter-brave, sender-okhttp3).dc-backend.yamlsetztMANAGEMENT_ZIPKIN_TRACING_ENDPOINT=http://zipkin:9411/api/v2/spansfür alle Services.- Gateway-Fix:
propagation.typevonw3caufb3korrigiert; Zipkin-Endpoint explizit ergänzt.
3. Frontend (Frontend Expert)
3.1 Build Fixes
- Wasm Worker Fix: (zurückgestellt — erst nach DevOps-Stabilisierung)
- Behebung der
Unresolved reference: WorkerFehler imcomposeApp:wasmJsBrowserDistributionTask. - Prüfen der
kotlinx-browserVersion.
- Behebung der
3.2 Auth Integration
- OIDC Client: (verifiziert 2026-03-09)
- PKCE Authorization Code Flow (S256) mit
frontend-client. - Pure Kotlin SHA-256 + PkceHelper (commonMain, kein expect/actual).
- JVM: lokaler Callback-Server (Port 18080) +
Desktop.browse(). - JS: Seiten-Redirect + URL-Parsing beim App-Start +
replaceState-Bereinigung. LoginViewModel+LoginScreenum OIDC-Button erweitert.
- PKCE Authorization Code Flow (S256) mit