- Master-Geräte können erwartete Clients inkl. Name & Rolle definieren. - Neue Rollen (`RICHTER`, `ZEITNEHMER` etc.) integriert. - Backend- und Frontend-Validierung erweitert, UI-Komponente für Client-Verwaltung. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
---
|
|
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`
|