feat: show update service status in UI
This commit is contained in:
@ -22,6 +22,7 @@ Sicheres, remote steuerbares System zum Sperren/Entsperren lokaler Nutzerkonten.
|
||||
| 15.01.2026 | 📝 Req | Doku-Overhaul mit neuer Struktur und Archivierung. |
|
||||
| 15.01.2026 | 📝 Req | Externe Service-Links in der Doku ergaenzt. |
|
||||
| 15.01.2026 | 📝 Req | Makefile als Einstieg in Doku aufgenommen. |
|
||||
| 15.01.2026 | ⚙️ Code | Makefile restart-Target hinzugefuegt. |
|
||||
|
||||
## Epic-Backlog (Uebersicht)
|
||||
### EPIC_000001: Legacy CLI Account Control (sk.sh)
|
||||
@ -108,6 +109,8 @@ Sicheres, remote steuerbares System zum Sperren/Entsperren lokaler Nutzerkonten.
|
||||
- [x] TASK_000034: UI rollback action
|
||||
- [x] US_000043: Enrollment-Token per Script abrufen
|
||||
- [x] TASK_000049: Script fuer Enrollment-Flow erstellen
|
||||
- [x] US_000046: Update-Service Erreichbarkeit anzeigen
|
||||
- [x] TASK_000055: Endpoint und UI fuer Update-Service Status
|
||||
|
||||
### EPIC_000009: Update Webservice (External Team)
|
||||
- [ ] US_000026: Client bezieht Updates (Pull)
|
||||
@ -138,6 +141,17 @@ Sicheres, remote steuerbares System zum Sperren/Entsperren lokaler Nutzerkonten.
|
||||
- [x] TASK_000047: README und Audience-Split anpassen
|
||||
- [x] TASK_000048: External Dependencies und Audience-Ergaenzungen
|
||||
|
||||
### EPIC_000013: System Telemetry im Dashboard
|
||||
- [ ] US_000044: Systemmetriken im Dashboard anzeigen
|
||||
- [ ] TASK_000050: Backend-Endpoint fuer Systemmetriken
|
||||
- [ ] TASK_000051: UI-Kacheln im Dashboard (System Information)
|
||||
|
||||
### EPIC_000014: Login-Zeitfenster und Parent-Control Regeln
|
||||
- [ ] US_000045: Regeln fuer Login-Zeitfenster definieren und durchsetzen
|
||||
- [ ] TASK_000052: Regelmodell und Speicherung definieren
|
||||
- [ ] TASK_000053: Login-Pruefung und Enforcement
|
||||
- [ ] TASK_000054: Admin-UI fuer Regeln und Scheduler
|
||||
|
||||
## Offene Risiken / Abhaengigkeiten
|
||||
- Betrieb erfordert Root/sudo und lokale System-Tools (notify-send, sound player, uvicorn).
|
||||
- OIDC-Validierung blockiert bis IdP bereit und Service laeuft.
|
||||
|
||||
@ -45,3 +45,4 @@ Ermoegliche einen robusten Client-Update-Flow mit Verifikation und Rollback.
|
||||
- US_000032: Update-Logs im Web-UI anzeigen
|
||||
- US_000033: Rollback im Web-UI anstossen
|
||||
- US_000043: Enrollment-Token per Script abrufen
|
||||
- US_000046: Update-Service Erreichbarkeit anzeigen
|
||||
|
||||
38
project-management/requirements/epics/EPIC_000013.md
Normal file
38
project-management/requirements/epics/EPIC_000013.md
Normal file
@ -0,0 +1,38 @@
|
||||
ID: EPIC_000013 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# EPIC_000013: System Telemetry im Dashboard
|
||||
|
||||
## Beschreibung
|
||||
Anzeige von Systemmetriken (CPU, RAM, GPU, Netzwerk) fuer Operatoren im Web-Dashboard.
|
||||
|
||||
## Ziel / Business Value
|
||||
Schneller Ueberblick ueber Systemzustand und Last ohne externe Tools.
|
||||
|
||||
## Mission Statement
|
||||
Stelle aktuelle Telemetriedaten im Dashboard bereit, aktualisiert in kurzen Intervallen.
|
||||
|
||||
## Business Value & Metriken
|
||||
- Operatoren erkennen Engpaesse sofort.
|
||||
- Erfolgsmetrik: Metriken aktualisieren sich alle 5 Sekunden im UI.
|
||||
|
||||
## In-Scope
|
||||
- API liefert aktuelle CPU/RAM/GPU/Netzwerkwerte.
|
||||
- Web-UI zeigt Kacheln in einem "System Information" Container.
|
||||
|
||||
## Out-of-Scope
|
||||
- Langzeit-Historie oder Trend-Analysen.
|
||||
- Alerting oder Threshold-Management.
|
||||
|
||||
## High-Level Akzeptanzkriterien
|
||||
- CPU als Gesamt-% angezeigt.
|
||||
- RAM: Total und Usage %.
|
||||
- GPU: VRAM Total und Usage % (falls GPU vorhanden).
|
||||
- Netzwerk: aktuelle RX/TX in Mbps.
|
||||
|
||||
## Technische Constraints & Risiken
|
||||
- GPU-Metriken sind hardware-/driver-abhaengig.
|
||||
- Netzwerkwerte benoetigen Delta-Berechnung ueber Zeitfenster.
|
||||
|
||||
## Zugeordnete User Stories
|
||||
- US_000044: Systemmetriken im Dashboard anzeigen
|
||||
42
project-management/requirements/epics/EPIC_000014.md
Normal file
42
project-management/requirements/epics/EPIC_000014.md
Normal file
@ -0,0 +1,42 @@
|
||||
ID: EPIC_000014 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# EPIC_000014: Login-Zeitfenster und Parent-Control Regeln
|
||||
|
||||
## Beschreibung
|
||||
Admins definieren Zeitfenster pro Nutzer, in denen Login erlaubt ist. Beim Login wird
|
||||
geprueft, ob der Zeitpunkt erlaubt ist; andernfalls erfolgt Hinweis, Konto wird deaktiviert
|
||||
und der Rechner heruntergefahren. Beim Systemstart wird geprueft, welche Nutzer sich anmelden duerfen.
|
||||
|
||||
## Ziel / Business Value
|
||||
Verlaessliche Einhaltung von Nutzungszeiten ohne manuelle Eingriffe.
|
||||
|
||||
## Mission Statement
|
||||
Stelle regelbasierte Login-Beschraenkungen bereit, die zentral verwaltbar und systemweit
|
||||
durchsetzbar sind.
|
||||
|
||||
## Business Value & Metriken
|
||||
- Reduzierte manuelle Sperren.
|
||||
- Erfolgsmetrik: Verbotene Logins werden zu 100% blockiert.
|
||||
|
||||
## In-Scope
|
||||
- Regeln pro Nutzer (erlaubte Zeitfenster).
|
||||
- Automatische Aktivierung/Deaktivierung nach Regeln.
|
||||
- Durchsetzung bei Login und beim Systemstart.
|
||||
|
||||
## Out-of-Scope
|
||||
- Historische Reports oder Nutzungsstatistiken.
|
||||
- MFA oder externe Auth-Systeme.
|
||||
|
||||
## High-Level Akzeptanzkriterien
|
||||
- Ohne Regel ist Login erlaubt.
|
||||
- Mit Regel wird Login nur in erlaubten Zeitfenstern zugelassen.
|
||||
- Bei Verbot: Hinweis, Konto wird deaktiviert, Shutdown wird gestartet.
|
||||
- Optional: Konto wird nach Zeitfenster automatisch wieder aktiviert.
|
||||
|
||||
## Technische Constraints & Risiken
|
||||
- Zeit- und Zeitzonenhandling.
|
||||
- Durchsetzung erfordert Hook in Auth/Login-Prozess.
|
||||
|
||||
## Zugeordnete User Stories
|
||||
- US_000045: Regeln fuer Login-Zeitfenster definieren und durchsetzen
|
||||
20
project-management/requirements/stories/US_000044.md
Normal file
20
project-management/requirements/stories/US_000044.md
Normal file
@ -0,0 +1,20 @@
|
||||
ID: US_000044 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# US_000044: Systemmetriken im Dashboard anzeigen
|
||||
|
||||
Als User moechte ich die aktuelle CPU-, GPU-, RAM- und Netzwerkauslastung sehen,
|
||||
damit ich den Systemzustand schnell bewerten kann.
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- Given ich bin im Dashboard eingeloggt
|
||||
- When die System Information Kacheln angezeigt werden
|
||||
- Then sehe ich CPU Gesamt-Auslastung in Prozent
|
||||
- And RAM Total sowie Usage in Prozent
|
||||
- And GPU VRAM Total sowie Usage in Prozent (falls GPU vorhanden)
|
||||
- And Netzwerk RX/TX als aktuelle Mbps
|
||||
- And die Werte aktualisieren sich alle 5 Sekunden
|
||||
|
||||
## Task-Platzhalter
|
||||
- TASK_000050: Backend-Endpoint fuer Systemmetriken
|
||||
- TASK_000051: UI-Kacheln im Dashboard (System Information)
|
||||
33
project-management/requirements/stories/US_000045.md
Normal file
33
project-management/requirements/stories/US_000045.md
Normal file
@ -0,0 +1,33 @@
|
||||
ID: US_000045 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# US_000045: Regeln fuer Login-Zeitfenster definieren und durchsetzen
|
||||
|
||||
Als Administrator moechte ich Regeln definieren, in welchen Zeitfenstern sich ein Nutzer
|
||||
anmelden darf, damit Parent-Control verbindlich umgesetzt wird.
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- Given ein Nutzer hat keine Regel
|
||||
- When er sich anmeldet
|
||||
- Then ist Login erlaubt
|
||||
|
||||
- Given ein Nutzer hat eine Regel mit erlaubten Zeitfenstern
|
||||
- When er sich ausserhalb dieser Zeiten anmeldet
|
||||
- Then erhaelt er einen Hinweis
|
||||
- And das Konto wird deaktiviert
|
||||
- And der Rechner wird heruntergefahren
|
||||
|
||||
- Given das Geraet startet
|
||||
- When Regeln existieren
|
||||
- Then wird geprueft, welche Nutzer anmelden duerfen
|
||||
- And gesperrte Nutzer bleiben deaktiviert
|
||||
- And Nutzer ohne Auto-Reaktivierung bleiben gesperrt, auch wenn ein Zeitfenster startet
|
||||
|
||||
- Given eine Regel erlaubt automatische Reaktivierung
|
||||
- When ein Zeitfenster beginnt
|
||||
- Then wird das Konto automatisch wieder aktiviert
|
||||
|
||||
## Task-Platzhalter
|
||||
- TASK_000052: Regelmodell und Speicherung definieren
|
||||
- TASK_000053: Login-Pruefung und Enforcement
|
||||
- TASK_000054: Admin-UI fuer Regeln und Scheduler
|
||||
17
project-management/requirements/stories/US_000046.md
Normal file
17
project-management/requirements/stories/US_000046.md
Normal file
@ -0,0 +1,17 @@
|
||||
ID: US_000046 | Version: 0.2.1 | Status: Done
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# US_000046: Update-Service Erreichbarkeit anzeigen
|
||||
|
||||
Als Admin moechte ich sehen, ob der Update-Service erreichbar ist und welche URL aktiv ist,
|
||||
damit ich erkenne, ob das Geraet gegen Dev oder Prod konfiguriert ist.
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- Given ich bin im Update-Dashboard eingeloggt
|
||||
- When der Statusbereich angezeigt wird
|
||||
- Then sehe ich die konfigurierte Update-Service URL
|
||||
- And einen Online/Offline-Status basierend auf Erreichbarkeit
|
||||
- And die Anzeige aktualisiert sich bei Status-Refresh
|
||||
|
||||
## Task-Platzhalter
|
||||
- TASK_000055: Endpoint und UI fuer Update-Service Status
|
||||
19
project-management/requirements/tasks/TASK_000050.md
Normal file
19
project-management/requirements/tasks/TASK_000050.md
Normal file
@ -0,0 +1,19 @@
|
||||
ID: TASK_000050 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000050: Backend-Endpoint fuer Systemmetriken
|
||||
|
||||
## Outcome
|
||||
API liefert aktuelle CPU/RAM/GPU/Netzwerkdaten in einem Payload.
|
||||
|
||||
## Story-Bezug
|
||||
US_000044
|
||||
|
||||
## Beschreibung
|
||||
- Endpoint (z.B. `GET /system/metrics`) mit Auth.
|
||||
- CPU Gesamt-%, RAM total + usage %, GPU VRAM total + usage % (fallback wenn nicht vorhanden).
|
||||
- Netzwerk RX/TX in Mbps via Delta ueber 5s Fenster.
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- Endpoint antwortet in <1s.
|
||||
- Payload klar dokumentiert.
|
||||
18
project-management/requirements/tasks/TASK_000051.md
Normal file
18
project-management/requirements/tasks/TASK_000051.md
Normal file
@ -0,0 +1,18 @@
|
||||
ID: TASK_000051 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000051: UI-Kacheln im Dashboard (System Information)
|
||||
|
||||
## Outcome
|
||||
Dashboard zeigt System Information Container mit Kacheln fuer CPU/RAM/GPU/Netzwerk.
|
||||
|
||||
## Story-Bezug
|
||||
US_000044
|
||||
|
||||
## Beschreibung
|
||||
- UI-Container "System Information" mit Kacheln.
|
||||
- Polling alle 5 Sekunden.
|
||||
- Fallback-Text, wenn GPU nicht vorhanden.
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- UI aktualisiert Werte ohne Page-Reload.
|
||||
19
project-management/requirements/tasks/TASK_000052.md
Normal file
19
project-management/requirements/tasks/TASK_000052.md
Normal file
@ -0,0 +1,19 @@
|
||||
ID: TASK_000052 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000052: Regelmodell und Speicherung definieren
|
||||
|
||||
## Outcome
|
||||
Ein persistentes Regelmodell fuer Login-Zeitfenster und Auto-Reaktivierung.
|
||||
|
||||
## Story-Bezug
|
||||
US_000045
|
||||
|
||||
## Beschreibung
|
||||
- Regelstruktur (User, erlaubte Zeitfenster pro Tag, Wochentage, Auto-Reaktivierung).
|
||||
- Speicherort (Datei/DB), Format und Validierung.
|
||||
- Zeitzonen-Handling definieren (lokale Systemzeit).
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- Regelmodell dokumentiert.
|
||||
- Persistenzstrategie festgelegt.
|
||||
18
project-management/requirements/tasks/TASK_000053.md
Normal file
18
project-management/requirements/tasks/TASK_000053.md
Normal file
@ -0,0 +1,18 @@
|
||||
ID: TASK_000053 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000053: Login-Pruefung und Enforcement
|
||||
|
||||
## Outcome
|
||||
Login wird anhand der Regeln geprueft und bei Verbot durchgesetzt (Hinweis, Sperre, Shutdown).
|
||||
|
||||
## Story-Bezug
|
||||
US_000045
|
||||
|
||||
## Beschreibung
|
||||
- Hook in Login-Flow (PAM am OS).
|
||||
- Hinweistext definieren.
|
||||
- Deaktivierung und Shutdown-Logik ausloesen.
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- Login-Blockade funktioniert bei Verbot.
|
||||
19
project-management/requirements/tasks/TASK_000054.md
Normal file
19
project-management/requirements/tasks/TASK_000054.md
Normal file
@ -0,0 +1,19 @@
|
||||
ID: TASK_000054 | Version: 0.2.1 | Status: Draft
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000054: Admin-UI fuer Regeln und Scheduler
|
||||
|
||||
## Outcome
|
||||
Admins koennen Regeln verwalten; ein Scheduler aktiviert Nutzer bei erlaubten Zeiten.
|
||||
|
||||
## Story-Bezug
|
||||
US_000045
|
||||
|
||||
## Beschreibung
|
||||
- UI: Regeln anlegen/aktualisieren/loeschen.
|
||||
- Scheduler: Pruefung beim Boot (Systemstart) und regelmaessig.
|
||||
- Auto-Reaktivierung umsetzen (ausser Regel sagt nein).
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- UI verwaltet Regeln.
|
||||
- Scheduler aktiviert Nutzer entsprechend Regeln.
|
||||
17
project-management/requirements/tasks/TASK_000055.md
Normal file
17
project-management/requirements/tasks/TASK_000055.md
Normal file
@ -0,0 +1,17 @@
|
||||
ID: TASK_000055 | Version: 0.2.1 | Status: Done
|
||||
By: Codex (GPT-5)
|
||||
|
||||
# TASK_000055: Endpoint und UI fuer Update-Service Status
|
||||
|
||||
## Outcome
|
||||
UI zeigt Update-Service URL und Erreichbarkeit; Backend liefert Status.
|
||||
|
||||
## Story-Bezug
|
||||
US_000046
|
||||
|
||||
## Beschreibung
|
||||
- `GET /update/service-status` liefert URL, Reachability, Status-Code.
|
||||
- UI zeigt Status im Update-Bereich.
|
||||
|
||||
## Definition of Done (DoD)
|
||||
- Statusanzeige funktioniert auch bei Fehlern (Offline).
|
||||
Reference in New Issue
Block a user