Zum Hauptinhalt springen

Benachrichtigungs-Log

Zweck

Das Benachrichtigungs-Log (NotificationLog) ist der Audit-Trail aller Benachrichtigungen, die SpeamCore versendet — über E-Mail, SMS, Push, Slack oder andere Kanäle. Pro Eintrag sehen Sie Zeitpunkt, Empfaenger, Kanal, verwendete Vorlage, Status (sent/failed/pending) und ggf. Fehlermeldung. Das Log ist read-only — eine Retry-Aktion erlaubt, fehlgeschlagene Sendungen nochmal anzustossen.

Voraussetzungen

- Berechtigung `view:NotificationLog`. Für Retry zusaetzlich `update:NotificationLog`.

Berechtigungen (CASL)

ActionSubjectKeycloak-Rolle
viewFE_NotificationLog, NotificationLog
updateNotificationLog (Retry)APP_SPEAMCORE_UPDATE_NOTIFICATION_LOG (RETRY)`
deleteNotificationLogAPP_SPEAMCORE_DELETE_NOTIFICATION_LOG

Geschwister-Routen (Notification-Cluster)

Notifications sind als Cluster organisiert — für Konfiguration nutzen Sie weitere Routen:

PfadZweck
/notification-event-typesEvent-Definitionen (z. B. „Beleg überfällig", „Auftrag fertig").
/notification-channelsKanäle (E-Mail, SMS, Push, Slack-Webhook).
/notification-subscriptionsWer empfaengt welches Event über welchen Kanal?
/notification-templatesWiederverwendbare Inhaltsvorlagen (Sprachversionen).
/notification-eventsEvent-Stream — Quelle der einzelnen Logs.
/notification-logsDiese Seite — Audit-Log der versendeten Notifications.

Schritt-für-Schritt-Anleitung

Log einsehen

  1. Benachrichtigungs-Log (/notification-logs) → Liste mit Filter nach Status, Event-Typ, Datum.
  2. Klick auf Zeile → Detail-Seite mit Empfaenger, Kanal, Vorlage und ggf. Fehlermeldung.

Fehlgeschlagene Sendung erneut anstossen

  1. Auf der Detail-Seite eines Logs mit status = failed: Retry klicken.
  2. POST /api/notification-logs/:id/retry startet den Versand neu (gleicher Kanal, gleicher Empfaenger, gleiches Template).

Listenansicht — notification-logs

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

UI-Elemente

Button: „Retry"

Detailseite. Sichtbar nur bei status = failed. Erfordert update:NotificationLog.

Felder und Eingaben

Alle Felder sind read-only — das Log dokumentiert nur. Ausnahme: Retry-Aktion.

FeldnameDatentypWirkungVoraussetzung
notificationEventIdUUIDVerknuepfung zum Quell-Event.view:NotificationEvent.
notificationEventTypeUUIDKlassifizierung des Events.view:NotificationEventType.
notificationChannelIdUUIDKanal (E-Mail, SMS, ...).view:NotificationChannel.
recipientStringE-Mail, Telefonnummer oder anderer Identifier.
statussent/failed/pendingVersand-Status. pending ist transient (Job-Queue).
sentAtDatetimeZeitpunkt des erfolgreichen Versands.
failureReasonTEXTFehlermeldung bei status = failed.

CRUD-Pattern (Standard)

Diese Sub-Route folgt dem Standard-CRUD-Pattern:

  • + Neu öffnet ein Modal mit Eingabemaske oder erstellt direkt einen leeren Datensatz und navigiert auf den Detail.
  • Detail-Seite verwendet Auto-Save: jede Änderung schreibt sofort via PATCH in das BE.
  • Löschen ist Soft-Delete (paranoid) — Datensaetze sind in der Datenbank weiter vorhanden, aber gefiltert.

Spezielles Verhalten dieser Sub-Route ist im jeweiligen Notification-Cluster dokumentiert: siehe Notification-System Konzept.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Belege — Beleg-Faelligkeits-Events erzeugen Notifications.
  • Aufträge — Status-Wechsel triggert Notifications.
  • Compliance — Compliance-Prüfungen senden Warnmeldungen.

Häufige Fehler und Lösungen

FehlerLösung
Notification-Versand schlaegt fehlfailureReason prüfen — typisch: SMTP-Konfig, ungueltige Empfaenger-Adresse, fehlende Permissions im Channel. Nach Korrektur Retry klicken.
Notification kommt mehrfach anNotificationSubscription prüfen — gleicher Empfaenger via mehreren Kanälen oder Subscriptions.
Notification fehlt komplettPrüfen, ob ein passender NotificationEventType aktiv ist und der Empfaenger eine NotificationSubscription hat.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/notification-logsListeview NotificationLog
GET/api/notification-logs/:idDetailview NotificationLog
POST/api/notification-logs/:id/retryErneut sendenupdate NotificationLog
DELETE/api/notification-logs/:idSoft-Deletedelete NotificationLog

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.