Files
MABEA/arbeitskacheln/18_notifications.md
T
patrickandClaude Sonnet 5 9c6426190e docs(arbeitskacheln): Open-Source-/HiOrg-Vergleich ausgewertet, 14 neue Kacheln ausgearbeitet
Vergleich mit InvenTree, Snipe-IT, Grocy, Shelf.nu, Resgrid, KP Front, FleetMS,
HiOrg-Server ergibt neue Kacheln (ASSET-010 Custody, FILE-008 Hash-Audit-Journal,
FILE-009 Notizen, NOTIF-003, MAINT-007 Tankbuch, ZUST-003 Standort-Scoping,
FOUND-007 Import/Export, FOUND-008 Fristen-Dienst, READY-006 Statistik-Dashboard,
UI2-006..010) sowie Referenz-Ergänzungen bei bestehenden Lücken. Alle Design-
Entscheidungen (Datenmodell, Sicherheitsanforderungen bei ASSET-010) geklärt.

Neues Epic 23 (Flutter-Begleit-App, Sondierungs-Prototyp FLUT-001) inkl. geklärtem
TLS-Blocker (Domain mabea.perlbach-edv.de mit Let's-Encrypt-Zertifikat statt
selbstsigniertem Server-Zertifikat).

Alle Kacheln bleiben offen/ungeplant, nur ausgearbeitet, keine Implementierung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-10 00:49:32 +02:00

98 lines
5.6 KiB
Markdown

# Epic 18 — Notifications & Eskalation
Details zu NOTIF-001 … NOTIF-003. NOTIF-001/002 vollständig umgesetzt, NOTIF-003 ergänzt
am 2026-09-09 aus Open-Source-Vergleich (Shelf.nu), noch offen/ungeplant. Übernommen aus
`arbeitskarten/05_benachrichtigungen.md`
und `arbeitskarten/12_eskalation.md` (Karte 05+12) — beide Karten hatten kein Gegenstück im
ursprünglichen 16-Epic-Backlog, obwohl Karte 12 bereits vollständig implementiert ist.
---
## NOTIF-001 — Benachrichtigung bei neuem Fehlbestand
- **Ziel:** Verantwortlicher erfährt zeitnah von neuem Fehlbestand, ohne aktiv nachschauen
zu müssen.
- **Beschreibung:** Zwei Kanäle: Dashboard-Anzeige (Portal) und E-Mail. Kein Push/App in V1.
- **Benutzerwert:** Kein Fehlbestand geht unbemerkt unter.
- **Abhängigkeiten:** INV-006, FOUND-002
- **Datenmodell:** keins zusätzlich (E-Mail-Versand ist zustandslos, triggert bei
Statuswechsel "offen")
- **Backend:** E-Mail-Versand-Komponente, Trigger bei Fehlbestand-Entstehung
- **Frontend:** Dashboard-Kachel (Pflichtbestandteil)
- **Mobile:** Dashboard-Ansicht
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** nein direkt
- **Rechte:** Verantwortliche erhalten Benachrichtigung für ihre Zuständigkeit
- **Audit:** Versand nicht zwingend geloggt (kein fachlicher Vorgang, nur Benachrichtigung)
- **Akzeptanzkriterien:** neuer Fehlbestand löst E-Mail an zuständigen Verantwortlichen aus
und erscheint im Dashboard.
- **Tests:** Trigger-Test (Fehlbestand-Entstehung → E-Mail-Mock aufgerufen).
- **DoD:** deckt sich 1:1 mit MABEA — bereits vollständig umgesetzt und produktiv
(`app/services/benachrichtigung.py`, ausgelöst in `kontrolle/erfassung.py` und
`geraet_instanz.py` bei jeder Fehlbestand-Entstehung, Test in `test_email.py`).
## NOTIF-002 — Eskalation lange offener Fehlbestände
- **Ziel:** Automatische Eskalation, wenn ein Fehlbestand zu lange offen bleibt.
- **Beschreibung:** Zwei Stufen — Erinnerung an Materialverantwortliche nach X Tagen,
Eskalation an Leitungsverantwortliche/Administration nach Y Tagen. Zeitschwellen
konfigurierbar, nicht fix im Code.
- **Benutzerwert:** Verschleppte Fehlbestände werden nicht endlos ignoriert.
- **Abhängigkeiten:** INV-006, NOTIF-001
- **Datenmodell:** `eskalation_konfiguration` (Singleton-Zeile, Zeitschwellen je Stufe),
Tracking-Zeitstempel je Stufe an `fehlbestand` (verhindert Mehrfachversand)
- **Backend:** `app/services/eskalation.py` (zweistufige Logik), `GET/PUT
/api/v1/eskalation/konfiguration` (admin-editierbar), `POST /api/v1/eskalation/pruefen`
(admin-only, Prüflauf anstoßen)
- **Frontend:** Admin-UI zur Konfiguration + manueller "Jetzt prüfen"-Trigger
- **Mobile:** nein
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** nein direkt
- **Rechte:** Konfiguration/manueller Prüflauf: Administrator
- **Audit:** Eskalationsversand nachvollziehbar über Tracking-Zeitstempel
- **Akzeptanzkriterien:** Fehlbestand über Schwelle X löst Erinnerung aus, über Schwelle Y
Eskalation, kein Mehrfachversand derselben Stufe.
- **Tests:** Schwellenwert-Tests (genau an der Grenze), Mehrfachversand-Schutz-Test.
- **DoD:** deckt sich 1:1 mit MABEA — bereits vollständig umgesetzt und produktiv.
**Scheduling (Cron) ist Betriebsaufgabe**, kein eigener Scheduler-Prozess im Code — auf
dem Zielserver per systemd-Timer (`mabea-eskalation.timer`), der den Prüf-Endpunkt
periodisch aufruft.
## NOTIF-003 — Proaktive Wartungsfälligkeits-Benachrichtigung (P2, neu)
- **Ziel:** Verantwortlicher erfährt von bald fälliger/überfälliger Wartung, ohne aktiv
`GET /objekte/{id}/faellige-wartungen` (MAINT-002) abfragen zu müssen.
- **Beschreibung:** Gleiches Muster wie NOTIF-001 (Dashboard + E-Mail), aber Trigger ist
Wartungsfälligkeit statt Fehlbestand. MAINT-002 berechnet die Fälligkeit bereits —
hier fehlt nur die proaktive Zustellung.
- **Benutzerwert:** Wartungstermine werden nicht verpasst, weil niemand aktiv nachschaut.
- **Abhängigkeiten:** MAINT-002, NOTIF-001 (identisches Versandmuster wiederverwenden)
- **Datenmodell:** kein neues zusätzlich zu MAINT-002; ggf. Tracking-Zeitstempel analog
NOTIF-002 zur Mehrfachversand-Vermeidung
- **Backend:** periodischer Prüflauf (systemd-Timer analog NOTIF-002), nutzt bestehende
Fälligkeitsberechnung
- **Frontend:** Dashboard-Kachel „Fällige Wartungen" (falls nicht bereits vorhanden)
- **Mobile:** Dashboard-Ansicht
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** nein direkt
- **Rechte:** Materialverantwortliche der jeweiligen Zuständigkeit
- **Audit:** Versand nicht zwingend geloggt (wie NOTIF-001)
- **Akzeptanzkriterien:** fällige Wartung löst einmalig E-Mail+Dashboard-Eintrag aus,
kein Mehrfachversand für dieselbe Fälligkeit.
- **Tests:** Trigger-Test analog NOTIF-001, Mehrfachversand-Schutz-Test analog NOTIF-002.
- **DoD:** offen. **Referenz (Open-Source-Vergleich 2026-09-09):** Shelf.nu nennt dies
„Schedule alerts for maintenance, calibration, warranty expiry" — bestätigt den
Bedarf als verbreitetes Muster, MABEA-Umsetzung folgt dem eigenen NOTIF-001/002-Stil.
---
**MABEA-Ist-Stand-Abgleich (korrigiert 2026-09-06):** NOTIF-001 und NOTIF-002 sind
BEIDE vollständig umgesetzt und produktiv. Die zuvor hier dokumentierte Lücke bei
NOTIF-001 war veraltet — E-Mail-Versand bei Fehlbestand-Entstehung existiert bereits
seit Sprint 6 (`app/services/benachrichtigung.py`). Diese Epic-Datei existierte bislang
nicht — reine Nachdokumentation, keine offene Lücke mehr.
## Referenzen
Alte Arbeitskarten (übernommen, Karten-Dateien gelöscht): Karte 05 Benachrichtigungen,
Karte 12 Eskalation offener Fehlbestände.