Ειδοποιήσεις
Το Libre WebUI διατηρεί μόνιμα εισερχόμενα ανά χρήστη, ώστε δραστηριότητα ομάδας — αναφορές, άμεσα μηνύματα, κοινοποιήσεις, αποτυχίες αυτοματισμών και υπενθυμίσεις — να φτάνει ακόμη κι όταν η σχετική σελίδα είναι κλειστή.
Αναδυόμενα μηνύματα κατάστασης
Σύντομα μηνύματα κατάστασης, όπως για μια αποθηκευμένη αλλαγή ή μια ολοκληρωμένη λειτουργία Git, εμφανίζονται κοντά στο πάνω μέρος της σελίδας. Χρησιμοποιήστε το κουμπί Κλείσιμο για να κλείσετε ένα αναδυόμενο μήνυμα με το ποντίκι ή το πληκτρολόγιο. Όταν περνάτε τον δείκτη από πάνω του, το μήνυμα παραμένει ορατό για να το διαβάσετε· το κλείσιμό του απλώς κρύβει το μήνυμα, ενώ η ίδια η λειτουργία διατηρεί την τρέχουσα κατάστασή της.
Τα εισερχόμενα
Οι ειδοποιήσεις είναι πρώτα γραμμές βάσης: κρυπτογραφημένος τίτλος και σώμα, όριο 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 | Ανακοινώσεις επιπέδου εγκατάστασης |
Δημοσιεύονται μόνο στον επηρεαζόμενο χρήστη. Αναφορά ονόματος που δεν είναι μέλος του καναλιού δεν παράγει τίποτα.
Οι ειδοποιήσεις μπορούν επίσης να ενεργοποιήσουν αυτοματισμούς: ένας
αυτοματισμός με trigger event εκτελείται όποτε μια ειδοποίηση
του επιλεγμένου τύπου φτάσει στον ιδιοκτήτη του, με όριο ενός λεπτού ανά
αυτοματισμό.
Εξερχόμενα 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.
Email
Το email είναι το τρίτο κανάλι παράδοσης, και το μόνο που χρειάζεται ρύθμιση από
διαχειριστή. Οι Settings → User Management → Access & policies → Email
notifications κρατούν έναν εξερχόμενο SMTP server: host, θύρα, ασφάλεια σύνδεσης
(STARTTLS, ρητό TLS, ή none για έμπιστο δίκτυο), προαιρετικά διαπιστευτήρια, τη
διεύθυνση αποστολέα και τη δημόσια URL που χρησιμοποιείται για τους συνδέσμους. Οι
μεταβλητές περιβάλλοντος SMTP_* στις
Μεταβλητές περιβάλλοντος αρχικοποιούν τα ίδια πεδία για
αναπτύξεις container· μια τιμή αποθηκευμένη στο UI υπερισχύει. Ο κωδικός
αποθηκεύεται κρυπτογραφημένος και δεν επιστρέφεται ποτέ στον browser. Το Send
test στέλνει μήνυμα στη διεύθυνση του ίδιου του διαχειριστή (ή σε όποια διεύθυνση
πληκτρολογηθεί) ώστε η διαδρομή να αποδεικνύεται πριν βασιστούν σε αυτήν οι χρήστες.
Οι διαχειριστές επιλέγουν επίσης πρότυπο email Φωτεινό ή Σκούρο και το προεπισκοπούν πριν από την αποθήκευση. Το Φωτεινό είναι η προεπιλογή. Η αποθηκευμένη προρρύθμιση ισχύει για κάθε ειδοποίηση και δοκιμαστικό email σε αυτή την εγκατάσταση, συμπεριλαμβανομένων των αποτελεσμάτων Markdown· είναι ανεξάρτητη από το θέμα διεπαφής κάθε χρήστη. Η προεπισκόπηση αποδίδει δείγμα περιεχομένου χωρίς επικοινωνία με το SMTP, αποστολή αλληλογραφίας ή προσθήκη εργασίας σε ουρά. Μόνο οι διαχειριστές μπορούν να διαβάσουν ή να αλλάξουν την προρρύθμιση ή να ζητήσουν προεπισκόπηση. Οι ενσωματωμένες προρρυθμίσεις κρατούν ευανάγνωστα το κείμενο, τους συνδέσμους, τα μπλοκ κώδικα και τα κουμπιά· προσαρμοσμένα πρότυπα HTML δεν γίνονται δεκτά. Τα προγράμματα email μπορεί πάντως να προσαρμόσουν τα χρώματα σύμφωνα με τις δικές τους ρυθμίσεις εμφάνισης.
Μόλις ο διακόπτης ενεργοποιηθεί, κάθε χρήστης επιλέγει τι φτάνει στα εισερχόμενά του στις Settings → Notifications → Email notifications:
- Channel mentions: μήνυμα που σας αναφέρει σε κανάλι, με την προεπισκόπηση και σύνδεσμο προς το κανάλι.
- Automation results: το αποτέλεσμα κάθε εκτέλεσης αυτοματισμού σας, επιτυχία ή αποτυχία. Μια εκτέλεση chat φέρει την ίδια την απάντηση του βοηθού (έως λίγες χιλιάδες χαρακτήρες)· μια εκτέλεση Work φέρει τη γραμμή κατάστασης της εργασίας· μια αποτυχία φέρει το σφάλμα. Ο σύνδεσμος ανοίγει το chat ή την εργασία που προέκυψε.
Και οι δύο διακόπτες παραμένουν απενεργοποιημένοι μέχρι ο χρήστης να τους
ενεργοποιήσει, και λειτουργούν μόνο για λογαριασμούς με διεύθυνση email, την οποία ο
κάτοχος του λογαριασμού ορίζει κατά την εγγραφή ή προσθέτει διαχειριστής στο Users.
Τα μηνύματα φεύγουν μέσω του ίδιου μόνιμου job runtime με το Web Push, με
περιορισμένα retries για παροδικές αποτυχίες relay, και ο client SMTP είναι μικρή
ενσωματωμένη υλοποίηση (EHLO, STARTTLS, AUTH PLAIN ή LOGIN) που ποτέ δεν στέλνει
διαπιστευτήρια πάνω από μη κρυπτογραφημένη σύνδεση εκτός αν η λειτουργία είναι ρητά
none. Κάθε μήνυμα έχει τμήμα απλού κειμένου και εναλλακτικό HTML στην αισθητική
του site: το wordmark Libre WebUI, μία κάρτα με το περιεχόμενο, κοραλί κουμπί προς
τον προορισμό και υποσέλιδο που παραπέμπει πίσω στις Settings → Notifications. Ένα
αποτέλεσμα αυτοματισμού αποδίδεται από Markdown (επικεφαλίδες, λίστες, έμφαση,
κώδικας, σύνδεσμοι μόνο προς στόχους http(s))· όλα τα υπόλοιπα γίνονται escape, και η
μόνη εξωτερική εικόνα είναι το λογότυπο που εξυπηρετείται από το librewebui.org.
Χωρίς tracking.
Όρια
- Προτιμήσεις ανά τύπο δεν έχουν υλοποιηθεί ακόμη. Οι αυτοματισμοί τιμούν τη δική τους ρύθμιση και η έξοδος από κανάλι σταματά τις ειδοποιήσεις του.