Aviseringar
Libre WebUI har en beständig aviseringsinkorg per användare så att teamaktivitet — omnämnanden, direktmeddelanden, delningar, misslyckade automatiseringar och kalenderpåminnelser — når personer även när den berörda sidan är stängd.
Inkorgen
Aviseringar är i första hand databasrader: titel och brödtext krypteras vid lagring, högst 500 poster sparas per användare (de äldsta rensas), och en valfri källnyckel tar bort dubbletter så att upprepade publiceringar slås ihop till en post i stället för att fylla klockan med skräppost. REST-ytan listar, räknar olästa, markerar som lästa (en eller alla) och raderar.
Direktleverans går via den beständiga händelseströmmen per användare
notify:<userId> över GET /api/notifications/events (SSE). Strömmens
identitet kommer från den autentiserade sessionen — aldrig från klientdata —
och SQL-inkorgen förblir sanningskällan. En missad händelse återställs genom
att läsa listan, inte genom att spela upp strömmen igen.
Vad som skapar aviseringar
| Typ | Skapas när |
|---|---|
channel-dm | Någon skickar ett direktmeddelande till dig |
channel-mention | Någon @mentions dig i en kanal eller svarar på ditt meddelande |
channel-invite | Du läggs till i en kanal |
share | Någon delar en resurs med dig |
automation-failed | En av dina automatiseringar misslyckas (om aviseringar inte har valts bort för den) |
calendar-reminder | En händelse med påminnelseförskjutning når sin påminnelsetid |
work-run-finished | En av dina anlitade Work-agenter slutför en körning |
work-run-attention | En anlitad agent stannar för indata eller stöter på ett fel |
work-takeover | En Work-agent ber dig ta över dess skärm |
work-approval | En Work-körning väntar på att du godkänner en åtgärd med sidoeffekt |
system | Meddelanden på instansnivå |
Aviseringar publiceras alltid endast till den berörda användaren. Ett omnämnande av ett användarnamn som inte är medlem i kanalen skapar ingen avisering.
Utgående webhooks
Administratörer kan registrera webhookmål som tar emot teamhändelser.
- Skyddad utgående trafik. Målen följer samma destinationspolicy som
verktygsservrar: exakt URL, inga omdirigeringar och inga privata eller
länklokala adresser, om inte administratören uttryckligen har tillåtit en värd
via
TOOLS_PRIVATE_NETWORK_ALLOWLIST. Värdnamn slås upp och kontrolleras på nytt vid varje leverans. - Signerad. Med en konfigurerad hemlighet innehåller varje leverans
X-Libre-Signature: sha256=<hmac>, beräknad över exakt den skickade kroppen. - Sekretessfiltrerad. Omslaget innehåller händelseslag, aviseringstyp, titel, identifierare och tidsstämplar. Aviseringstexter, meddelandeinnehåll, promptar och dokument lämnar aldrig instansen.
- Beständig. Leveranser körs som beständiga jobb med ett begränsat antal återförsök. Ett 5xx-svar från mottagaren försöks igen, medan ett 4xx-svar behandlas som mottagarens beslut och avslutar leveransen.
- Avgränsad. Varje mål prenumererar på specifika aviseringstyper (eller
*).
Pushaviseringar i webbläsaren
Settings → Notifications registrerar den här webbläsaren för Web Push, så att omnämnanden, delningar, påminnelser och slutfört arbete når enheten även när fliken är stängd. Implementeringen är standardbaserad och självständig:
- VAPID (RFC 8292). Servern signerar varje leverans med ett ES256-nyckelpar
som genereras en gång och lagras krypterat, eller låses med
VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY(VAPID_SUBJECTanger kontaktanspråket). Inget pushbibliotek eller tjänstekonto från tredje part används utöver webbläsarleverantörens pushslutpunkt. - Krypterad nyttolast (RFC 8291). Varje meddelande krypteras med aes128gcm till enhetens egna nycklar innan det lämnar instansen. Pushtjänsten vidarebefordrar chiffertext som den inte kan läsa.
- Per enhet, sessionsbunden. En prenumeration tillhör webbläsaren som skapade den och den webbläsarens autentiseringssession. Utloggning från sessionen (eller "sign out other sessions") tar också bort pushregistreringen. Slutpunkter lagras krypterade med en nycklad uppslagningstoken och måste vara publika HTTPS-destinationer — samma hygien för utgående trafik som webhooks.
- Beständig. Pushleveranser körs som beständiga jobb med ett begränsat antal återförsök. Om en pushtjänst rapporterar att prenumerationen är borta (404/410) tas den bort.
- Nyttolasten innehåller aviseringens titel, valfri brödtext, typ och mållänk — samma sekretessfiltrering som inkorgen.
Push kräver produktionsappen (service worker registreras endast där) och ett säkert ursprung. Samma service worker tillhandahåller offlineskalet och installerbarheten: appmanifestet gör Libre WebUI installerbart, navigering faller tillbaka till det cachade skalet offline och hashade byggresurser cachas oföränderligt. API-trafik cachas aldrig.
Gränser
- Användarinställningar per typ är ännu inte implementerade. Automatiseringar följer sin egen aviseringsinställning och aviseringarna upphör när en användare lämnar en kanal.