Der Push-Alert-Service ermöglicht der Plattform, Benutzer proaktiv per
Push-Nachricht zu informieren – direkt im Browser oder auf dem Smartphone,
ohne dass die PWA geöffnet sein muss.
Zwei Betriebsmodi:
Automatische Alerts – ausgelöst durch definierte Bedingungen in
anderen Services (z. B. fehlende Mittagsbestellung, Trading-Ereignis),
periodisch vom Scheduler geprüft
Manuelle Alerts / Reminder – der Benutzer legt selbst Zeitpunkt
und Inhalt fest
Zurückgebaut (2026-07-13): Ein dritter Modus, "Interne Sofort-Alerts"
(PA-006/PA-007), wurde für die Sticky-Notification-Integration des
Trade Optimizers gebaut, hat sich aber als nicht praktikabel erwiesen
(Chrome für Android ignoriert requireInteraction). Beide REQs sind
jetzt obsolete. Push/Alert für Trading wandert perspektivisch in eine
eigene native App.
Kernfunktionen
Registrierung und Verwaltung von Push-Subscriptions (Web Push/VAPID für den Web-Touchpoint, FCM für die Trading Companion App)
Konfiguration von Alert-Regeln (automatisch & manuell)
Versand von Push-Nachrichten über beide Kanäle, je Empfänger-Subscription automatisch geroutet
Verwaltung des Alert-Verlaufs (gesendete Nachrichten, Status)
Plattform-API für andere Services, um Alerts auszulösen
Plattform-Integration
Komponente
Beschreibung
Backend
Integriert in bestehenden Backend-Container (kein eigener Container)
Frontend
Service Worker + Push API Subscription in der bestehenden PWA
Datenbank
Neue Tabellen im bestehenden PostgreSQL (schema: public)
Scheduler
APScheduler im Backend prüft Bedingungen und löst automatische Alerts aus
VAPID erfordert ein Schlüsselpaar (einmalig generiert):
# Einmalig auf dem Server ausführen:python3-c"from py_vapid import Vapid; v = Vapid(); v.generate_keys(); print(v.private_key, v.public_key)"
Die Schlüssel werden als Umgebungsvariablen konfiguriert:
Variable
Beschreibung
VAPID_PRIVATE_KEY
Privater VAPID-Schlüssel (Base64)
VAPID_PUBLIC_KEY
Öffentlicher VAPID-Schlüssel (Base64, an Frontend übermittelt)
VAPID_SUBJECT
Kontakt-URL oder mailto (z. B. mailto:admin@example.com)
FCM-Konfiguration (seit PA-001 v1.1)
Erfordert ein Firebase-Projekt und ein Service-Account-Credential:
Variable
Beschreibung
FIREBASE_SERVICE_ACCOUNT_JSON
Pfad zum oder Inline-Inhalt des Service-Account-Credentials
Genutzt ausschließlich vom Firebase Admin SDK beim Versand an subscription_type=fcm-Empfänger (Trading Companion App). Der Web-Touchpoint ist davon nicht betroffen.
Automatische Alert-Trigger
Service
Trigger-Key
Beschreibung
Prüfintervall
lunch
missing_order
Kein Eintrag für Account in 2+ Wochen
täglich 07:00
trading
data_stale
Data Layer hat seit >2h keine neuen Daten
stündlich
system
service_down
Health-Check eines Services schlägt fehl
alle 15 min
Weitere Trigger können ohne Plattformänderung registriert werden.
Abgrenzung
In Scope
Out of Scope
Web Push über VAPID
Native App Push (APNs / FCM direkt)
PWA-Subscription im Browser
E-Mail-Benachrichtigungen
Automatische + manuelle Alerts
Trading-Signale / Handelsempfehlungen
Alert-Verlauf (lesbar)
Komplexes Alerting-System mit Eskalation
Changelog
Version
Datum
Änderungen
1.3
2026-07-13
FCM als zweiter Zustellkanal ergänzt (PA-001 v1.1), ausgelöst durch die Trading Companion App (APP-003). push_subscriptions um subscription_type und fcm_token erweitert; Firebase Admin SDK im Technischen Stack ergänzt. Web-Push/VAPID bleibt für den Web-Touchpoint unverändert.
1.2
2026-07-13
PA-006/PA-007 (Interne Sofort-Alerts) zurückgebaut – in der Praxis nicht praktikabel für den Trading-Anwendungsfall. Betriebsmodi wieder auf zwei reduziert; tag-Feld bleibt in alert_history, aber ungenutzt.
1.1
2026-07-08
Dritter Betriebsmodus ergänzt: Interne Sofort-Alerts (PA-006/PA-007), ausgelöst per Service-API durch andere Plattform-Services (erste Anwendung: Trade Optimizer, Sticky Notification für vorbereitete Orders). alert_history um Feld tag erweitert.