Sari la conținutul principal

Notificări

Libre WebUI păstrează un inbox persistent per utilizator, astfel încât activitatea echipei — mențiuni, mesaje directe, partajări, automatizări eșuate și mementouri — să ajungă chiar dacă pagina relevantă este închisă.

Ferestre pop-up de stare​

Mesajele scurte de stare, cum ar fi o modificare salvată sau o operație Git finalizată, apar în partea de sus a paginii. Folosiți butonul Închide pentru a elimina o fereastră pop-up cu mouse-ul sau de la tastatură. Când țineți cursorul deasupra, mesajul rămâne vizibil ca să îl puteți citi; închiderea lui elimină doar mesajul, iar operația de dedesubt își păstrează starea curentă.

Inbox-ul​

Notificările sunt rânduri de bază de date: titlu și corp criptate, limită 500 per utilizator (cele vechi eliminate) și cheie sursă opțională pentru deduplicare. Suprafața REST listează, numără necitite, marchează una/toate și șterge.

Livrarea live folosește fluxul persistent notify:<userId> prin GET /api/notifications/events (SSE). Identitatea vine din sesiunea autentificată, niciodată din client, iar inbox-ul SQL rămâne sursa adevărului. Un eveniment ratat se recuperează citind lista, nu reluând fluxul.

Surse de notificări​

TipCând se produce
channel-dmCineva trimite mesaj direct
channel-mentionCineva vă @mentions sau răspunde mesajului
channel-inviteSunteți adăugat într-un canal
shareCineva partajează o resursă
automation-failedO automatizare eșuează, dacă nu a renunțat la notificare
calendar-reminderUn eveniment ajunge la momentul mementoului
work-run-finishedUn agent Work angajat termină
work-run-attentionAgentul cere input sau întâlnește o eroare
work-takeoverAgentul cere preluarea ecranului
work-approvalO execuție Work așteaptă aprobarea unei acțiuni cu efect secundar
systemAnunț la nivel de instanță

Se publică numai utilizatorului afectat. O mențiune pentru cineva care nu este membru nu produce nimic.

Notificările pot și declanșa automatizări: o automatizare cu un declanșator event rulează de fiecare dată când o notificare de tipul ales ajunge la proprietarul ei, limitată de o perioadă de răcire de un minut per automatizare.

Webhook-uri de ieșire​

Administratorii pot înregistra ținte pentru evenimente de echipă.

  • Ieșire protejată. Aceeași politică precum serverele de unelte: URL exact, fără redirect și fără adrese private/link-local, exceptând host-uri permise explicit prin TOOLS_PRIVATE_NETWORK_ALLOWLIST. DNS se rezolvă și verifică la fiecare livrare.
  • Semnate. Cu secret, fiecare livrare are X-Libre-Signature: sha256=<hmac> calculat pe corpul exact.
  • Redactate. Învelișul conține tipul, titlul, ID-uri și timestamp-uri. Corpurile, mesajele, prompturile și documentele nu părăsesc instanța.
  • Persistente. Job-uri durabile cu retry limitat; 5xx se repetă, 4xx este verdict final.
  • Limitate. Fiecare țintă se abonează la tipuri specifice sau *.

Push în browser​

Settings → Notifications înregistrează browserul pentru Web Push, astfel încât mențiunile și mementourile ajung cu fila închisă.

  • VAPID (RFC 8292). Serverul semnează cu o pereche ES256 creată o dată și criptată sau fixată prin VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY (VAPID_SUBJECT pentru contact).
  • Payload criptat (RFC 8291). Fiecare mesaj se criptează aes128gcm pentru cheile dispozitivului; serviciul retransmite ciphertext ilizibil.
  • Per dispozitiv și sesiune. Abonamentul aparține browserului și sesiunii. Logout sau "sign out other sessions" elimină înregistrarea. Endpoint-urile sunt criptate cu token de căutare și trebuie să fie HTTPS publice.
  • Persistent. Livrarea are retry; 404/410 elimină abonamentul.
  • Payload-ul include titlu, corp opțional, tip și link, cu aceeași redactare.

Push necesită aplicația de producție și origin sigur. Același service worker oferă offline shell și instalare: manifestul face Libre instalabil, navigarea offline folosește shell-ul din cache și asset-urile hash sunt imuabile. Traficul API nu se cachează.

E-mail​

E-mailul este al treilea canal de livrare și singurul care necesită configurare de către un administrator. Settings → Gestionarea utilizatorilor → Acces și politici → Notificări prin e-mail păstrează un singur server SMTP de ieșire: gazdă, port, securitate a conexiunii (STARTTLS, TLS implicit sau none pentru o rețea de încredere), credențiale opționale, adresa expeditorului și URL-ul public folosit pentru linkuri. Variabilele de mediu SMTP_* din Variabile de mediu inițializează aceleași câmpuri pentru implementările în container; o valoare salvată în UI are prioritate. Parola este stocată criptat și nu este returnată niciodată browserului. Send test livrează un mesaj la propria adresă a administratorului (sau la orice adresă introdusă) astfel încât rundul complet este dovedit înainte ca utilizatorii să se bazeze pe el.

Administratorii aleg și un șablon de e-mail Luminos sau Întunecat și îl previzualizează înainte de salvare. Luminos este implicit. Presetarea salvată se aplică fiecărei notificări și fiecărui e-mail de test din această instanță, inclusiv rezultatelor Markdown; este independentă de tema interfeței fiecărui utilizator. Previzualizarea redă conținut de exemplu fără a contacta SMTP, fără a trimite e-mail și fără a pune o lucrare în coadă. Doar administratorii pot citi sau schimba presetarea ori cere o previzualizare. Presetările integrate păstrează lizibile textul, linkurile, blocurile de cod și butoanele; șabloanele HTML personalizate nu sunt acceptate. Clienții de e-mail pot totuși ajusta culorile conform propriilor setări de afișare.

Odată ce comutatorul este activ, fiecare utilizator alege ce ajunge în inboxul propriu sub Settings → Notificări → Notificări prin e-mail:

  • Mențiuni în canale: un mesaj care vă menționează într-un canal, cu previzualizarea și un link către canal.
  • Rezultate automatizări: rezultatul fiecărei execuții a automatizărilor dumneavoastră, succes sau eșec. O execuție de chat poartă chiar răspunsul asistentului (până la câteva mii de caractere); o execuție Work poartă linia de stare a sarcinii; un eșec poartă eroarea. Link-ul deschide chatul sau sarcina rezultată.

Ambele comutatoare rămân dezactivate până când utilizatorul le activează și funcționează numai pentru conturile care au o adresă de e-mail, pe care titularul contului o stabilește la înregistrare sau pe care un administrator o adaugă la Users. Mesajele pleacă prin același runtime durabil de job-uri ca Web Push, cu reîncercări limitate pentru eșecuri tranzitorii de releu, iar clientul SMTP este o implementare proprie mică (EHLO, STARTTLS, AUTH PLAIN sau LOGIN) care nu trimite niciodată credențiale pe o conexiune necriptată decât dacă modul este explicit none. Fiecare mesaj are o parte text simplu și o alternativă HTML în aspectul site-ului: wordmark-ul Libre WebUI, un card cu conținutul, un buton corai către țintă și un subsol care trimite înapoi la Settings → Notificări. Un rezultat de automatizare este randat din Markdown (titluri, liste, accent, cod, linkuri numai către ținte http(s)); orice altceva este escapat, iar singura imagine externă este logo-ul servit de pe librewebui.org. Fără urmărire.

Limite​

  • Preferințele per tip nu sunt încă implementate. Automatizările își respectă setarea, iar ieșirea din canal oprește notificările sale.