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.
Statusmeddelanden
Korta statusmeddelanden, till exempel att en ändring har sparats eller att en Git-åtgärd är klar, visas nära sidans överkant. Använd knappen Stäng för att ta bort ett meddelande med pekare eller tangentbord. När du håller pekaren över meddelandet ligger det kvar så att du hinner läsa det. Om du stänger det försvinner meddelandet, men den underliggande åtgärden behåller sitt aktuella tillstånd.
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.
Aviseringar kan också utlösa automatiseringar: en
automatisering med en event-utlösare körs varje gång en
avisering av den valda typen når sin ägare, begränsad av en avsvalningstid
på en minut per automatisering.
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.
E-post
E-post är den tredje leveranskanalen, och den enda som kräver konfiguration av
en administratör. Inställningar → Användarhantering → Åtkomst och policyer →
E-postaviseringar håller en utgående SMTP-server: värd, port,
anslutningssäkerhet (STARTTLS, implicit TLS eller ingen för ett betrott
nätverk), valfria autentiseringsuppgifter, avsändaradressen och den publika
URL:en som används för länkar. Miljövariablerna SMTP_* i
Miljövariabler ger startvärden till samma fält för
containerdriftsättningar; ett värde som sparas i gränssnittet går före.
Lösenordet lagras krypterat och returneras aldrig till webbläsaren.
Skicka test levererar ett meddelande till administratörens egen adress
(eller valfri inskriven adress) så att hela kedjan bevisas innan användare
förlitar sig på den.
Administratörer väljer också en Ljus eller Mörk e-postmall och förhandsgranskar den innan de sparar. Ljus är standard. Den sparade förinställningen gäller för varje avisering och test-e-post på den här instansen, även Markdown-resultat; den är oberoende av varje användares gränssnittstema. Förhandsvisningen återger exempelinnehåll utan att kontakta SMTP, skicka e-post eller köa ett jobb. Bara administratörer kan läsa eller ändra förinställningen eller begära en förhandsvisning. De inbyggda förinställningarna håller text, länkar, kodblock och knappar läsbara; egna HTML-mallar godtas inte. E-postklienter kan ändå justera färger efter sina egna visningsinställningar.
När switchen är på väljer varje användare vad som når deras inkorg under Inställningar → Aviseringar → E-postaviseringar:
- Omnämnanden i kanaler: ett meddelande som nämner dig i en kanal, med förhandsvisningen och en länk till kanalen.
- Automatiseringsresultat: resultatet av varje automatiseringskörning du äger, lyckad eller misslyckad. En chattkörning bär själva assistentsvaret (upp till några tusen tecken); en Work-körning bär uppgiftens statusrad; en misslyckad körning bär felet. Länken öppnar den resulterande chatten eller uppgiften.
Båda switcharna förblir avstängda tills användaren slår på dem, och de
fungerar bara för konton som har en e-postadress, vilken kontoinnehavaren
anger vid registrering eller en administratör lägger till under Users.
Meddelanden går ut genom samma beständiga jobbmotor som Web Push, med
begränsade återförsök för tillfälliga relähaverier, och SMTP-klienten är en
liten inbyggd implementation (EHLO, STARTTLS, AUTH PLAIN eller LOGIN) som
aldrig skickar autentiseringsuppgifter över en okrypterad anslutning om inte
läget uttryckligen är none. Varje meddelande har en ren textdel och ett
HTML-alternativ i webbplatsens utseende: Libre WebUI-ordmärket, ett kort med
innehållet, en korallfärgad knapp till målet och en sidfot som pekar tillbaka
till Inställningar → Aviseringar. Ett automatiseringsresultat renderas från
Markdown (rubriker, listor, betoning, kod, länkar till bara http(s)-mål);
allt annat maskeras bort, och den enda externa bilden är loggan som serveras
från librewebui.org. Ingen spårning.
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.