Ειδοποιήσεις
Το Libre WebUI διατηρεί μόνιμα εισερχόμενα ανά χρήστη, ώστε δραστηριότητα ομάδας — αναφορές, άμεσα μηνύματα, κοινοποιήσεις, αποτυχίες αυτοματισμών και υπενθυμίσεις — να φτάνει ακόμη κι όταν η σχετική σελίδα είναι κλειστή.
Τα εισερχόμενα
Οι ειδοποιήσεις είναι πρώτα γραμμές βάσης: κρυπτογραφημένος τίτλος και σώμα, όριο 500 ανά χρήστη (διαγράφονται οι παλιότερες) και προαιρετικό κλειδί πηγής για αποφυγή διπλοτύπων. Η επιφάνεια REST παραθέτει, μετρά μη αναγνωσμένες, σημειώνει μία ή όλες και διαγράφει.
Η ζωντανή παράδοση χρησιμοποιεί μόνιμη ροή notify:<userId> μέσω
GET /api/notifications/events (SSE). Η ταυτότητα προέρχεται από την πιστοποιημένη
συνεδρία, ποτέ από input πελάτη, και τα SQL εισερχόμενα είναι η πηγή αλήθειας. Χαμένο
γεγονός ανακτάται διαβάζοντας τη λίστα, όχι αναπαράγοντας τη ροή.
Τι παράγει ειδοποιήσεις
| Τύπος | Πότε παράγεται |
|---|---|
channel-dm | Κάποιος στέλνει άμεσο μήνυμα |
channel-mention | Κάποιος σας κάνει @mentions ή απαντά στο μήνυμά σας |
channel-invite | Προστίθεστε σε κανάλι |
share | Κάποιος μοιράζεται πόρο μαζί σας |
automation-failed | Αποτυγχάνει αυτοματισμός σας, εκτός αν εξαιρέθηκε |
calendar-reminder | Φτάνει η ώρα υπενθύμισης γεγονότος |
work-run-finished | Ο μισθωμένος agent Work ολοκληρώνει εκτέλεση |
work-run-attention | Agent σταματά για input ή σφάλμα |
work-takeover | Agent Work ζητά να αναλάβετε την οθόνη |
work-approval | Εκτέλεση Work περιμένει έγκριση ενέργειας με παρενέργεια |
system | Ανακοινώσεις επιπέδου εγκατάστασης |
Δημοσιεύονται μόνο στον επηρεαζόμενο χρήστη. Αναφορά ονόματος που δεν είναι μέλος του καναλιού δεν παράγει τίποτα.
Εξερχόμενα webhook
Οι διαχειριστές μπορούν να καταχωρούν στόχους webhook για γεγονότα ομάδας.
- Προστατευμένη έξοδος. Οι στόχοι περνούν την ίδια πολιτική με servers εργαλείων:
ακριβές URL, χωρίς redirects και χωρίς ιδιωτικές/link-local διευθύνσεις, εκτός αν ο
διαχειριστής επιτρέψει host μέσω
TOOLS_PRIVATE_NETWORK_ALLOWLIST. Τα ονόματα επιλύονται και ελέγχονται σε κάθε παράδοση. - Υπογεγραμμένα. Με secret, κάθε παράδοση φέρει
X-Libre-Signature: sha256=<hmac>υπολογισμένο στο ακριβές σώμα. - Αποχαρακτηρισμένα. Ο φάκελος περιέχει είδος γεγονότος, τύπο, τίτλο, ID και timestamps. Σώματα, μηνύματα, prompt και έγγραφα δεν εγκαταλείπουν την εγκατάσταση.
- Μόνιμα. Οι παραδόσεις είναι μόνιμες εργασίες με περιορισμένα retries· 5xx επαναλαμβάνεται, 4xx θεωρείται απόφαση παραλήπτη και κλείνει.
- Περιορισμένα. Κάθε στόχος εγγράφεται σε συγκεκριμένους τύπους ή
*.
Push browser
Το Settings → Notifications καταχωρεί τον browser για Web Push, ώστε αναφορές, κοινοποιήσεις, υπενθυμίσεις και ολοκληρωμένη εργασία να φτάνουν με κλειστή καρτέλα.
- VAPID (RFC 8292). Ο server υπογράφει με ζεύγος ES256 που δημιουργείται μία φορά
και κρυπτογραφείται ή ορίζεται με
VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY(VAPID_SUBJECTγια contact claim). Δεν χρησιμοποιείται τρίτη βιβλιοθήκη ή λογαριασμός. - Κρυπτογραφημένο payload (RFC 8291). Κάθε μήνυμα κρυπτογραφείται με aes128gcm για τα κλειδιά της συσκευής· η υπηρεσία μεταφέρει ciphertext που δεν διαβάζει.
- Ανά συσκευή και συνεδρία. Η εγγραφή ανήκει στον browser και τη συνεδρία. Logout (ή "sign out other sessions") αφαιρεί και το push. Τα endpoints κρυπτογραφούνται με keyed lookup token και πρέπει να είναι δημόσια HTTPS.
- Μόνιμο. Η παράδοση έχει retries και κατάργηση εγγραφής σε 404/410.
- Το payload έχει τίτλο, προαιρετικό σώμα, τύπο και σύνδεσμο με ίδια αποχαρακτηρισμένη στάση.
Το push απαιτεί παραγωγική εφαρμογή (ο service worker καταχωρείται μόνο εκεί) και ασφαλές origin. Ο ίδιος worker προσφέρει offline shell και εγκατάσταση: το manifest κάνει το Libre WebUI εγκαταστάσιμο, η πλοήγηση offline χρησιμοποιεί cached shell και τα hashed assets αποθηκεύονται αμετάβλητα. Η κίνηση API δεν γίνεται cache.
Όρια
- Προτιμήσεις ανά τύπο δεν έχουν υλοποιηθεί ακόμη. Οι αυτοματισμοί τιμούν τη δική τους ρύθμιση και η έξοδος από κανάλι σταματά τις ειδοποιήσεις του.