--- type: Journal status: ACTIVE owner: Curator created: 2026-04-16 --- # Journal — 16. April 2026 (Explicit Device Enrollment) ## 🎯 Ziel & Entscheidung Implementierung des **"Explicit Device Enrollment"**-Konzepts im Onboarding-Prozess. Ein Master-Gerät definiert nun vorab, welche Clients (Name & Rolle) im lokalen Netzwerk erwartet werden. Dies erhöht die Sicherheit und automatisiert die Feature-Freischaltung auf den Clients. ## 🏗️ Architektur-Änderungen - **Backend (Identity-Service):** - `DeviceRole` wurde um fachspezifische Rollen erweitert (`RICHTER`, `ZEITNEHMER`, `STALLMEISTER`, `ANZEIGE`, `PARCOURS_CHEF`). - `DeviceTable` (Exposed) und `Device`-Modell enthalten nun `expectedName`, `isOnline` und `isSynchronized`. - **Frontend (Desktop-App):** - `OnboardingSettings` speichert nun eine Liste von `ExpectedClient`. - `OnboardingScreen` (v2) bietet Master-Geräten eine Tabelle zum Verwalten dieser Liste. - `OnboardingValidator` stellt sicher, dass alle erwarteten Geräte einen Namen haben, bevor die Konfiguration gespeichert wird. ## 🧪 Verifikation - Erweiterte Unit-Tests in `OnboardingValidatorTest` decken die Validierung der Client-Liste ab (24/24 Tests grün). - UI-Komponenten (Dropdown für Rollen, Add/Delete-Actions) wurden in `Screens.kt` integriert. ## 🔗 Relevante Dateien - `backend/services/identity/identity-domain/src/main/kotlin/at/mocode/identity/domain/model/Device.kt` - `backend/services/identity/identity-infrastructure/src/main/kotlin/at/mocode/identity/infrastructure/persistence/DeviceTable.kt` - `frontend/shells/meldestelle-desktop/src/jvmMain/kotlin/at/mocode/desktop/screens/onboarding/OnboardingSettings.kt` - `frontend/shells/meldestelle-desktop/src/jvmMain/kotlin/at/mocode/desktop/v2/Screens.kt`