Notifikationer
Libre WebUI har en vedvarende notifikationsindbakke pr. bruger, så teamaktivitet — omtaler, direkte beskeder, delinger, mislykkede automatiseringer og kalenderpåmindelser — når frem til personer, selv når den relevante side er lukket.
Statusbeskeder
Korte statusbeskeder, for eksempel om at en ændring er gemt, eller at en Git-handling er fuldført, vises øverst på siden. Brug knappen Luk til at fjerne en besked med markør eller tastatur. Når du holder markøren over beskeden, bliver den stående, så du kan nå at læse den. Når du lukker den, forsvinder beskeden, men den underliggende handling bevarer sin aktuelle tilstand.
Indbakken
Notifikationer er først og fremmest databaserækker: titel og tekst krypteres ved lagring, der gemmes højst 500 pr. bruger (de ældste fjernes), og en valgfri kildenøgle deduplikerer, så en gentagen publicering samles i én post i stedet for at oversvømme klokken. REST-grænsefladen viser, tæller ulæste, markerer som læst (én eller alle) og sletter.
Direkte levering bruger den vedvarende hændelsesstream pr. bruger
notify:<userId> over GET /api/notifications/events (SSE). Streamens identitet
kommer fra den godkendte session — aldrig fra klientinput — og SQL-indbakken
forbliver sandhedskilden. En mistet hændelse gendannes ved at læse listen, ikke ved
at afspille streamen igen.
Hvad der skaber notifikationer
| Type | Oprettes når |
|---|---|
channel-dm | Nogen sender dig en direkte besked |
channel-mention | Nogen @mentions dig i en kanal eller svarer på din besked |
channel-invite | Du føjes til en kanal |
share | Nogen deler en ressource med dig |
automation-failed | En af dine automatiseringer mislykkes (medmindre notifikation er fravalgt) |
calendar-reminder | En begivenhed med påmindelsesforskydning når påmindelsestidspunktet |
work-run-finished | En af dine hyrede Work-agenter fuldfører en kørsel |
work-run-attention | En hyret agent stopper for input eller rammer en fejl |
work-takeover | En Work-agent beder dig overtage dens skærm |
work-approval | En Work-kørsel venter på, at du godkender en handling med sideeffekt |
system | Meddelelser på instansniveau |
Notifikationer publiceres altid kun til den berørte bruger. En omtale af et brugernavn, som ikke er medlem af kanalen, skaber intet.
Notifikationer kan også udløse automatiseringer: en
automatisering med en event-udløser kører, hver gang en
notifikation af den valgte type når dens ejer, begrænset af en køletid på
ét minut pr. automatisering.
Udgående webhooks
Administratorer kan registrere webhookmål, der modtager teamhændelser.
- Beskyttet udgående trafik. Mål følger samme destinationspolitik som
værktøjsservere: nøjagtig URL, ingen omdirigeringer og ingen private eller
link-lokale adresser, medmindre administratoren eksplicit har tilladt en vært via
TOOLS_PRIVATE_NETWORK_ALLOWLIST. Værtsnavne slås op og kontrolleres igen ved hver levering. - Signeret. Med en konfigureret hemmelighed indeholder hver levering
X-Libre-Signature: sha256=<hmac>, beregnet over den nøjagtige body. - Fortrolighedsfiltreret. Indpakningen indeholder hændelsestype, notifikationstype, titel, identifikatorer og tidsstempler. Notifikationstekst, beskedindhold, prompter og dokumenter forlader aldrig instansen.
- Vedvarende. Leveringer kører som vedvarende jobs med et afgrænset antal genforsøg. Et 5xx-svar fra modtageren forsøges igen; et 4xx-svar behandles som modtagerens afgørelse og afslutter leveringen.
- Afgrænset. Hvert mål abonnerer på bestemte notifikationstyper (eller
*).
Browser-push
Settings → Notifications registrerer denne browser til Web Push, så omtaler, delinger, påmindelser og afsluttet arbejde når enheden, selv når fanen er lukket. Implementeringen er standardbaseret og selvstændig:
- VAPID (RFC 8292). Serveren signerer hver levering med et ES256-nøglepar,
der genereres én gang og gemmes krypteret, eller låses med
VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY(VAPID_SUBJECTangiver kontaktpåstanden). Intet tredjeparts-pushbibliotek eller nogen tjenestekonto bruges ud over browserleverandørens push-slutpunkt. - Krypteret payload (RFC 8291). Hver besked krypteres med aes128gcm til enhedens egne nøgler, før den forlader instansen. Push-tjenesten videresender chiffertekst, den ikke kan læse.
- Pr. enhed, sessionsbundet. Et abonnement tilhører browseren, der oprettede det, og den pågældende browsers godkendelsessession. Hvis sessionen logges ud (eller "sign out other sessions" bruges), fjernes push-registreringen også. Slutpunkter gemmes krypteret med en nøglebaseret opslagstoken og skal være offentlige HTTPS-destinationer — samme hygiejne for udgående trafik som webhooks.
- Vedvarende. Push-leveringer kører som vedvarende jobs med afgrænsede genforsøg. Hvis en push-tjeneste rapporterer, at abonnementet er væk (404/410), fjernes det.
- Payloaden indeholder notifikationens titel, valgfri tekst, type og destinationslink — samme fortrolighedsfiltrering som indbakken.
Push kræver produktionsappen (service worker registreres kun dér) og en sikker origin. Den samme service worker leverer offline-skallen og muligheden for installation: appmanifestet gør Libre WebUI installerbar, navigation falder tilbage til den cachede skal offline, og hash-baserede build-ressourcer caches uforanderligt. API-trafik caches aldrig.
E-mail
E-mail er den tredje leveringskanal og den eneste, der kræver opsætning af
en administrator. Indstillinger → Brugeradministration → Adgang og
politikker → E-mailnotifikationer rummer én udgående SMTP-server: host,
port, forbindelsessikkerhed (STARTTLS, implicit TLS eller ingen for et
betroet netværk), valgfrie legitimationsoplysninger, afsenderadressen og
den offentlige URL brugt til links. Miljøvariablerne SMTP_* i
Miljøvariabler sår de samme felter til
containerudrulninger; en værdi gemt i brugerfladen går forud. Adgangskoden
gemmes krypteret og returneres aldrig til browseren. Send test afleverer
en besked til administratorens egen adresse (eller en hvilken som helst
indtastet adresse), så rundturen er bevist, før brugerne stoler på den.
Administratorer vælger også en Lys eller Mørk e-mailskabelon og ser den som forhåndsvisning, før de gemmer. Lys er standard. Den gemte forudindstilling gælder for alle notifikationer og test-e-mails på denne instans, også Markdown-resultater; den er uafhængig af hver brugers grænsefladetema. Forhåndsvisningen viser eksempelindhold uden at kontakte SMTP, sende mail eller sætte et job i kø. Kun administratorer kan læse eller ændre forudindstillingen eller bede om en forhåndsvisning. De indbyggede forudindstillinger holder tekst, links, kodeblokke og knapper læsbare; egne HTML-skabeloner accepteres ikke. E-mailklienter kan stadig justere farver efter deres egne visningsindstillinger.
Når kontakten er slået til, vælger hver bruger, hvad der når deres indbakke, under Indstillinger → Notifikationer → E-mailnotifikationer:
- Omtaler i kanaler: en besked, der nævner dig i en kanal, med forhåndsvisningen og et link til kanalen.
- Automatiseringsresultater: resultatet af hver af dine automatiseringskørsler, succes eller fejl. En chatkørsel bærer selve assistentens svar (op til et par tusind tegn); en Work-kørsel bærer opgavens statuslinje; en fejl bærer fejlen. Linket åbner den resulterende chat eller opgave.
Begge kontakter er slået fra, indtil brugeren selv slår dem til, og de
virker kun for konti, der har en e-mailadresse, som kontohaveren angiver
ved tilmelding, eller en administrator tilføjer under Brugere. Beskeder
sendes gennem samme vedvarende jobruntime som Web Push, med afgrænsede
genforsøg ved forbigående relay-fejl, og SMTP-klienten er en lille indbygget
implementering (EHLO, STARTTLS, AUTH PLAIN eller LOGIN), der aldrig sender
legitimationsoplysninger over en ukrypteret forbindelse, medmindre
tilstanden eksplicit er none. Hver besked har en ren tekstdel og et
HTML-alternativ i webstedets look: Libre WebUI-ordmærket, ét kort med
indholdet, en koralfarvet knap til målet og en fod, der peger tilbage til
Indstillinger → Notifikationer. Et automatiseringsresultat gengives fra
Markdown (overskrifter, lister, fremhævning, kode, links kun til
http(s)-mål); alt andet escapes, og det eneste eksterne billede er logoet,
der leveres fra librewebui.org. Ingen sporing.
Grænser
- Brugerpræferencer pr. type er endnu ikke implementeret. Automatiseringer følger deres egen notifikationsindstilling, og notifikationerne stopper, når brugeren forlader en kanal.