Ga naar hoofdinhoud

Meldingen

Libre WebUI houdt per gebruiker een duurzame meldingeninbox bij, zodat teamactiviteiten — vermeldingen, privéberichten, gedeelde bronnen, mislukte automatiseringen en agendaherinneringen — mensen ook bereiken wanneer de betreffende pagina is gesloten.

Statuspop-ups​

Korte statusmeldingen, zoals een opgeslagen wijziging of een voltooide Git-bewerking, verschijnen bovenaan de pagina. Gebruik de knop Sluiten om een pop-up met de aanwijzer of het toetsenbord te sluiten. Zolang je de aanwijzer erboven houdt, blijft de melding zichtbaar zodat je hem kunt lezen; sluiten verwijdert de melding, terwijl de onderliggende bewerking haar huidige status behoudt.

De inbox​

Meldingen zijn allereerst databaserijen: titel en hoofdtekst worden versleuteld opgeslagen, het maximum is 500 per gebruiker (de oudste worden verwijderd) en een optionele bronsleutel ontdubbelt ze, zodat herhaald publiceren tot één vermelding wordt samengevoegd in plaats van de bel vol te spammen. Het RESTful-oppervlak vermeldt meldingen, telt ongelezen meldingen, markeert één of alle als gelezen en verwijdert ze.

Live levering gebruikt de duurzame gebeurtenissenstroom per gebruiker notify:<userId> via GET /api/notifications/events (SSE). De identiteit van de stroom komt uit de geverifieerde sessie, nooit uit clientinvoer, en de SQL-inbox blijft de bron van waarheid: een gemiste gebeurtenis wordt hersteld door de lijst te lezen, niet door de stroom opnieuw af te spelen.

Wat meldingen voortbrengt​

TypeWordt geproduceerd wanneer
channel-dmIemand je een privébericht stuurt
channel-mentionIemand je in een kanaal @mentions of op je bericht antwoordt
channel-inviteJe aan een kanaal wordt toegevoegd
shareIemand een bron met je deelt
automation-failedEen van je automatiseringen mislukt, tenzij meldingen zijn uitgezet
calendar-reminderEen gebeurtenis met herinnering het herinneringstijdstip bereikt
work-run-finishedEen van je ingehuurde Work-agenten een uitvoering voltooit
work-run-attentionEen ingehuurde agent stopt voor invoer of een fout tegenkomt
work-takeoverEen Work-agent je vraagt het scherm over te nemen
work-approvalEen Work-uitvoering wacht tot je een actie met neveneffecten goedkeurt
systemEr een aankondiging op instantieniveau is

Meldingen worden altijd alleen voor de getroffen gebruiker gepubliceerd; een vermelding van een gebruikersnaam die geen lid van het kanaal is, levert niets op.

Meldingen kunnen ook automatiseringen activeren: een automatisering met een event-trigger draait telkens wanneer een melding van het gekozen type de eigenaar bereikt, begrensd tot één keer per minuut per automatisering.

Uitgaande webhooks​

Beheerders kunnen webhookdoelen registreren die teamgebeurtenissen ontvangen.

  • Uitgaand verkeer bewaakt. Doelen volgen hetzelfde bestemmingsbeleid als toolservers: exacte URL, geen omleidingen en geen privé- of link-local-adressen, tenzij de beheerder een host expliciet toestaat via TOOLS_PRIVATE_NETWORK_ALLOWLIST. Hostnamen worden voor elke levering opnieuw bepaald en gecontroleerd.
  • Ondertekend. Met een ingesteld geheim bevat elke levering X-Libre-Signature: sha256=<hmac>, berekend over de exacte body.
  • Geredigeerd. De envelop bevat gebeurtenissoort, meldingstype, titel, ID's en tijdstempels. Hoofdteksten van meldingen, berichtinhoud, prompts en documenten verlaten de instantie nooit.
  • Duurzaam. Leveringen worden uitgevoerd als duurzame taken met begrensde pogingen; een 5xx van de ontvanger wordt opnieuw geprobeerd, een 4xx geldt als het oordeel van de ontvanger en wordt afgehandeld.
  • Afgebakend. Elk doel abonneert zich op specifieke meldingstypen of *.

Browserpush​

Instellingen → Meldingen registreert deze browser voor Web Push, zodat vermeldingen, gedeelde bronnen, herinneringen en voltooid werk het apparaat ook bereiken wanneer het tabblad is gesloten. De implementatie is standaard en zelfstandig:

  • VAPID (RFC 8292). De server ondertekent elke levering met een ES256-sleutelpaar dat eenmaal wordt gegenereerd en versleuteld opgeslagen, of wordt vastgezet met VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY (VAPID_SUBJECT stelt de contactclaim in). Naast het push-eindpunt van de browserleverancier is geen externe pushbibliotheek of serviceaccount betrokken.
  • Versleutelde payloads (RFC 8291). Elk bericht wordt met aes128gcm voor de eigen sleutels van het apparaat versleuteld voordat het de instantie verlaat; de pushservice stuurt versleutelde tekst door die deze niet kan lezen.
  • Per apparaat, aan sessie gebonden. Een abonnement behoort tot de browser die het heeft gemaakt en tot de verificatiesessie van die browser. Afmelden bij de sessie (of „andere sessies afmelden”) verwijdert ook de pushregistratie. Eindpunten worden versleuteld opgeslagen met een op een sleutel gebaseerd opzoektoken en moeten openbare HTTPS-bestemmingen zijn, met dezelfde beveiliging voor uitgaand verkeer als webhooks.
  • Duurzaam. Pushleveringen draaien als duurzame taken met begrensde pogingen; als een pushservice meldt dat het abonnement verdwenen is (404/410), wordt het verwijderd.
  • De payload bevat de meldingstitel, optionele hoofdtekst, het type en de doellink, met dezelfde redactiehouding als de inbox.

Push vereist de productie-app (de serviceworker wordt alleen daar geregistreerd) en een veilige oorsprong. De offlineshell en installeerbaarheid komen van dezelfde serviceworker: het appmanifest maakt Libre WebUI installeerbaar, navigatie valt offline terug op de gecachte shell en buildmiddelen met hash worden onveranderlijk gecachet. API-verkeer wordt nooit gecachet.

E-mail​

E-mail is het derde bezorgkanaal en het enige dat door een beheerder moet worden ingesteld. Instellingen → Gebruikersbeheer → Toegang en beleid → E-mailmeldingen bevat één uitgaande SMTP-server: host, poort, verbindingsbeveiliging (STARTTLS, impliciete TLS, of geen voor een vertrouwd netwerk), optionele inloggegevens, het afzenderadres en de openbare URL die voor links wordt gebruikt. De SMTP_*-omgevingsvariabelen in Omgevingsvariabelen vullen dezelfde velden voor containerimplementaties; een waarde die in de UI is opgeslagen krijgt voorrang. Het wachtwoord wordt versleuteld opgeslagen en nooit teruggestuurd naar de browser. Test versturen stuurt een bericht naar het eigen adres van de beheerder (of een ander ingetypt adres), zodat de heen-en-terugreis is bewezen voordat gebruikers erop vertrouwen.

Beheerders kiezen ook een Licht of Donker e-mailsjabloon en bekijken het vooraf voordat ze opslaan. Licht is de standaard. De opgeslagen voorinstelling geldt voor elke melding en test-e-mail op deze instantie, inclusief Markdown-resultaten; ze staat los van het interfacethema van elke gebruiker. De voorvertoning toont voorbeeldinhoud zonder contact met SMTP, zonder mail te versturen en zonder een taak in de wachtrij te zetten. Alleen beheerders kunnen de voorinstelling lezen of wijzigen of een voorvertoning opvragen. De ingebouwde voorinstellingen houden tekst, links, codeblokken en knoppen leesbaar; eigen HTML-sjablonen worden niet geaccepteerd. E-mailclients kunnen kleuren nog steeds aanpassen aan hun eigen weergave-instellingen.

Zodra de schakelaar aanstaat, kiest elke gebruiker zelf wat de eigen inbox bereikt onder Instellingen → Meldingen → E-mailmeldingen:

  • Vermeldingen in kanalen: een bericht dat je in een kanaal vermeldt, met het voorbeeld en een link naar het kanaal.
  • Resultaten van automatiseringen: de uitkomst van elke automatiseringsrun, geslaagd of mislukt. Een chatrun bevat het antwoord van de assistent zelf (tot een paar duizend tekens); een Work-run bevat de statusregel van de taak; een mislukking bevat de foutmelding. De link opent de resulterende chat of taak.

Beide schakelaars staan standaard uit totdat de gebruiker ze zelf inschakelt, en ze werken alleen voor accounts met een e-mailadres, dat de accounthouder bij aanmelding instelt of dat een beheerder onder Gebruikers toevoegt. Berichten vertrekken via dezelfde duurzame taakruntime als Web Push, met begrensde herhaalpogingen bij tijdelijke relaystoringen, en de SMTP-client is een kleine ingebouwde implementatie (EHLO, STARTTLS, AUTH PLAIN of LOGIN) die inloggegevens nooit over een onversleutelde verbinding verstuurt tenzij de modus expliciet none is. Elk bericht heeft een platte-tekstdeel en een HTML-alternatief in de look van de website: het Libre WebUI-woordmerk, één kaart met de inhoud, een koraalkleurige knop naar de bestemming en een voettekst die terugverwijst naar Instellingen → Meldingen. Een automatiseringsresultaat wordt vanuit Markdown gerenderd (koppen, lijsten, nadruk, code, links alleen naar http(s)-doelen); al het overige wordt ge-escaped, en de enige externe afbeelding is het logo dat vanaf librewebui.org wordt geserveerd. Geen tracking.

Grenzen​

  • Gebruikersvoorkeuren per type zijn nog niet geïmplementeerd; automatiseringen volgen hun eigen meldingsinstelling en een kanaal verlaten stopt de bijbehorende meldingen.