Hoppa till huvudinnehåll

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​

TypSkapas när
channel-dmNågon skickar ett direktmeddelande till dig
channel-mentionNågon @mentions dig i en kanal eller svarar på ditt meddelande
channel-inviteDu läggs till i en kanal
shareNågon delar en resurs med dig
automation-failedEn av dina automatiseringar misslyckas (om aviseringar inte har valts bort för den)
calendar-reminderEn händelse med påminnelseförskjutning når sin påminnelsetid
work-run-finishedEn av dina anlitade Work-agenter slutför en körning
work-run-attentionEn anlitad agent stannar för indata eller stöter på ett fel
work-takeoverEn Work-agent ber dig ta över dess skärm
work-approvalEn Work-körning väntar på att du godkänner en åtgärd med sidoeffekt
systemMeddelanden 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_SUBJECT anger 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.