Zum Hauptinhalt springen

Benachrichtigungen

Libre WebUI führt einen dauerhaften Benachrichtigungseingang je Benutzer, damit Teamaktivitäten – Erwähnungen, Direktnachrichten, Freigaben, fehlgeschlagene Automatisierungen und Kalendererinnerungen – Menschen auch bei geschlossener Seite erreichen.

Status-Popups​

Kurze Statusmeldungen, etwa zu einer gespeicherten Änderung oder einem abgeschlossenen Git-Vorgang, erscheinen oben auf der Seite. Mit der Schaltfläche Schließen entfernst du ein Popup per Zeiger oder Tastatur. Solange der Zeiger darüber liegt, bleibt die Meldung sichtbar, damit du sie lesen kannst. Beim Schließen verschwindet die Meldung, während der zugrunde liegende Vorgang seinen aktuellen Zustand behält.

Der Eingang​

Benachrichtigungen sind zuerst Datenbankzeilen: Titel und Text werden verschlüsselt gespeichert, auf 500 je Benutzer begrenzt (älteste werden entfernt) und können mit einem optionalen Quellschlüssel dedupliziert werden. Wiederholtes Veröffentlichen wird so zu einem Eintrag statt zu Klingelspam. Die REST-Oberfläche listet, zählt Ungelesene, markiert eine oder alle als gelesen und löscht.

Live-Übertragung nutzt den dauerhaften Benutzerstrom notify:<userId> über GET /api/notifications/events (SSE). Die Identität stammt aus der authentifizierten Sitzung, nie aus Clienteingaben. Der SQL-Eingang bleibt die Wahrheitsquelle: Ein verpasstes Ereignis wird durch Lesen der Liste wiederhergestellt, nicht durch Wiederholung des Stroms.

Auslöser​

TypAuslöser
channel-dmJemand sendet dir eine Direktnachricht
channel-mentionJemand macht ein @mentions oder antwortet auf deine Nachricht
channel-inviteDu wirst zu einem Kanal hinzugefügt
shareJemand gibt eine Ressource für dich frei
automation-failedEine deiner Automatisierungen schlägt fehl (sofern nicht abbestellt)
calendar-reminderDer Erinnerungszeitpunkt eines Ereignisses wird erreicht
work-run-finishedEiner deiner eingestellten Work-Agenten schließt eine Ausführung ab
work-run-attentionEin eingestellter Agent hält für Eingabe an oder stößt auf einen Fehler
work-takeoverEin Work-Agent bittet dich, seinen Bildschirm zu übernehmen
work-approvalEin Work-Lauf wartet auf deine Freigabe einer wirksamen Aktion
systemInstanzweite Mitteilungen

Benachrichtigungen gehen immer nur an den betroffenen Benutzer. Die Erwähnung eines Benutzernamens, der nicht Mitglied ist, erzeugt nichts.

Benachrichtigungen können auch Automatisierungen auslösen: eine Automatisierung mit einem event-Auslöser läuft, sobald eine Benachrichtigung des gewählten Typs bei ihrem Eigentümer eintrifft, begrenzt durch eine Abklingzeit von einer Minute je Automatisierung.

Ausgehende Webhooks​

Administratoren können Webhook-Ziele für Teamereignisse registrieren.

  • Ausgang geschützt. Ziele unterliegen derselben Richtlinie wie Werkzeugserver: exakte URL, keine Umleitungen und keine privaten oder linklokalen Adressen, sofern ein Host nicht ausdrücklich über TOOLS_PRIVATE_NETWORK_ALLOWLIST freigegeben wurde. Hostnamen werden bei jeder Übertragung neu aufgelöst und geprüft.
  • Signiert. Mit konfiguriertem Geheimnis trägt jede Übertragung X-Libre-Signature: sha256=<hmac>, berechnet über den exakten Body.
  • Redigiert. Der Umschlag enthält Ereignisart, Benachrichtigungstyp, Titel, Kennungen und Zeitstempel. Texte, Nachrichteninhalte, Prompts und Dokumente verlassen die Instanz nie.
  • Dauerhaft. Übertragungen laufen als dauerhafte Jobs mit begrenzten Versuchen; 5xx wird wiederholt, 4xx gilt als Urteil des Empfängers und wird abgeschlossen.
  • Begrenzt. Jedes Ziel abonniert bestimmte Typen (oder *).

Browser-Push​

Einstellungen → Benachrichtigungen registriert den Browser für Web Push, sodass Erwähnungen, Freigaben, Erinnerungen und abgeschlossene Arbeit das Gerät auch bei geschlossener Registerkarte erreichen. Die Implementierung ist standardisiert und eigenständig:

  • VAPID (RFC 8292). Der Server signiert jede Übertragung mit einem ES256- Schlüsselpaar, das einmal erzeugt und verschlüsselt gespeichert oder mit VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY festgelegt wird (VAPID_SUBJECT setzt den Kontakt-Claim). Abgesehen vom Push-Endpunkt des Browseranbieters sind keine Drittbibliothek oder Dienstkonten beteiligt.
  • Verschlüsselte Nutzlast (RFC 8291). Jede Nachricht wird mit aes128gcm für die Geräteschlüssel verschlüsselt, bevor sie die Instanz verlässt. Der Push-Dienst leitet nicht lesbaren Chiffretext weiter.
  • Pro Gerät und sitzungsgebunden. Ein Abonnement gehört dem erstellenden Browser und dessen Authentifizierungssitzung. Abmelden (oder „andere Sitzungen abmelden“) entfernt die Registrierung. Endpunkte werden verschlüsselt mit einem schlüsselgebundenen Suchtoken gespeichert und müssen öffentliche HTTPS-Ziele sein.
  • Dauerhaft. Push-Übertragungen sind dauerhafte Jobs mit begrenzten Versuchen. Meldet der Dienst ein verschwundenes Abonnement (404/410), wird es gelöscht.
  • Die Nutzlast enthält Titel, optionalen Text, Typ und Ziellink mit derselben Redaktionsgrenze wie der Eingang.

Push erfordert die Produktionsanwendung (der Service Worker registriert sich nur dort) und einen sicheren Ursprung. Derselbe Service Worker liefert Offline-Hülle und Installierbarkeit: Das Manifest macht Libre WebUI installierbar, Navigation greift offline auf die gespeicherte Hülle zurück und gehashte Build-Ressourcen werden unveränderlich zwischengespeichert. API-Verkehr wird nie gecacht.

E-Mail​

E-Mail ist der dritte Zustellweg und der einzige, der von einem Administrator eingerichtet werden muss. Einstellungen → Benutzerverwaltung → Zugriff und Richtlinien → E-Mail-Benachrichtigungen hält einen ausgehenden SMTP-Server: Host, Port, Verbindungssicherheit (STARTTLS, implizites TLS oder keine für ein vertrauenswürdiges Netzwerk), optionale Zugangsdaten, die Absenderadresse und die für Links verwendete öffentliche URL. Die SMTP_*-Umgebungsvariablen in Umgebungsvariablen setzen dieselben Felder für Container-Bereitstellungen vor; ein in der Oberfläche gespeicherter Wert hat Vorrang. Das Passwort wird verschlüsselt gespeichert und nie an den Browser zurückgegeben. Test senden liefert eine Nachricht an die eigene Adresse des Administrators (oder eine eingegebene Adresse), sodass der Rundweg bewiesen ist, bevor sich Benutzer darauf verlassen.

Administratoren wählen außerdem eine Hell- oder Dunkel-E-Mail-Vorlage und sehen sie vor dem Speichern in der Vorschau. Hell ist die Standardeinstellung. Die gespeicherte Vorgabe gilt für jede Benachrichtigung und Test-E-Mail dieser Instanz, einschließlich Markdown-Ergebnissen; sie ist unabhängig vom Oberflächendesign jedes Benutzers. Die Vorschau rendert Beispielinhalte, ohne SMTP zu kontaktieren, E-Mails zu senden oder einen Job einzureihen. Nur Administratoren können die Vorgabe lesen oder ändern oder eine Vorschau anfordern. Die integrierten Vorgaben halten Text, Links, Codeblöcke und Schaltflächen lesbar; eigene HTML-Vorlagen werden nicht akzeptiert. E-Mail-Clients können Farben dennoch gemäß ihren eigenen Anzeigeeinstellungen anpassen.

Sobald der Schalter an ist, wählt jeder Benutzer unter Einstellungen → Benachrichtigungen → E-Mail-Benachrichtigungen, was sein Postfach erreicht:

  • Erwähnungen in Kanälen: eine Nachricht, die dich in einem Kanal erwähnt, mit Vorschau und einem Link zum Kanal.
  • Automatisierungsergebnisse: das Ergebnis jedes deiner Automatisierungsläufe, Erfolg oder Fehlschlag. Ein Chat-Lauf trägt die Antwort des Assistenten selbst (bis zu einigen Tausend Zeichen); ein Work-Lauf trägt die Statuszeile der Aufgabe; ein Fehlschlag trägt den Fehler. Der Link öffnet den entstandenen Chat oder die Aufgabe.

Beide Schalter bleiben aus, bis der Benutzer sie einschaltet, und sie funktionieren nur für Konten mit einer E-Mail-Adresse, die der Kontoinhaber bei der Anmeldung festlegt oder ein Administrator unter Benutzer hinzufügt. Nachrichten verlassen die Instanz über dieselbe dauerhafte Job-Laufzeit wie Web Push, mit begrenzten Wiederholungen bei vorübergehenden Relay-Fehlern, und der SMTP-Client ist eine kleine eingebaute Implementierung (EHLO, STARTTLS, AUTH PLAIN oder LOGIN), die Zugangsdaten nie über eine unverschlüsselte Verbindung sendet, außer der Modus ist ausdrücklich none. Jede Nachricht hat einen Nur-Text-Teil und eine HTML-Alternative im Look der Website: das Libre-WebUI-Wortzeichen, eine Karte mit dem Inhalt, eine korallenfarbene Schaltfläche zum Ziel und eine Fußzeile, die zurück zu Einstellungen → Benachrichtigungen führt. Ein Automatisierungsergebnis wird aus Markdown gerendert (Überschriften, Listen, Betonung, Code, Links nur zu http(s)-Zielen); alles andere wird escaped, und das einzige externe Bild ist das von librewebui.org ausgelieferte Logo. Kein Tracking.

Grenzen​

  • Benutzereinstellungen pro Typ sind noch nicht implementiert. Automatisierungen beachten ihre eigene Einstellung, und das Verlassen eines Kanals stoppt dessen Benachrichtigungen.