Přeskočit na hlavní obsah

Oznámení

Libre WebUI uchovává trvalou schránku oznámení pro jednotlivé uživatele, takže se k lidem dostane týmová aktivita — zmínky, přímé zprávy, sdílení, selhání automatizace a kalendářní připomínky — i když je příslušná stránka zavřená.

Stavová vyskakovací okna​

Krátké stavové zprávy, například o uložené změně nebo dokončené operaci Git, se zobrazují u horního okraje stránky. Tlačítkem Zavřít okno zavřete myší i klávesnicí. Když na zprávu najedete ukazatelem, zůstane zobrazená, abyste si ji mohli přečíst. Zavřením zprávu skryjete, samotná operace si ale zachová svůj aktuální stav.

Schránka​

Oznámení jsou především řádky databáze: název a tělo jsou při uložení zašifrované, na uživatele se uchovává nejvýše 500 položek (nejstarší se odstraní) a volitelný klíč zdroje odstraňuje duplicity, aby se opakované publikování sloučilo do jediné položky místo zahlcení zvonku. Rozhraní REST položky uvádí, počítá nepřečtené, označuje jednu nebo všechny jako přečtené a maže je.

Živé doručování používá trvalý proud událostí pro uživatele notify:<userId> přes GET /api/notifications/events (SSE). Identita proudu pochází z ověřené relace, nikoli z klientského vstupu, a schránka SQL zůstává zdrojem pravdy. Zmeškaná událost se obnoví načtením seznamu, ne přehráním proudu.

Co vytváří oznámení​

TypKdy se vytvoří
channel-dmNěkdo vám pošle přímou zprávu
channel-mentionNěkdo vás v kanálu @mentions nebo odpoví na vaši zprávu
channel-inviteJste přidáni do kanálu
shareNěkdo s vámi sdílí prostředek
automation-failedJedna z vašich automatizací selže (pokud neodmítla oznámení)
calendar-reminderUdálost s připomínkou dosáhne jejího času
work-run-finishedJeden z vašich najatých agentů Work dokončí běh
work-run-attentionNajatý agent se zastaví kvůli vstupu nebo chybě
work-takeoverAgent Work vás požádá o převzetí obrazovky
work-approvalBěh Work čeká, až schválíte akci s vedlejším účinkem
systemOznámení na úrovni instance

Oznámení se vždy publikují pouze dotčenému uživateli. Zmínka uživatelského jména, které není členem kanálu, nic nevytvoří.

Oznámení mohou spouštět i automatizace: automatizace se spouštěčem event se spustí pokaždé, když jejímu vlastníkovi přijde oznámení zvoleného typu, s omezením na jedno spuštění za minutu na automatizaci.

Odchozí webhooky​

Správci mohou registrovat cíle webhooků, které přijímají týmové události.

  • Chráněný odchod. Cíle podléhají stejné zásadě destinací jako servery nástrojů: přesná adresa URL, žádná přesměrování a žádné soukromé ani link-local adresy, pokud správce hostitele výslovně nepovolí pomocí TOOLS_PRIVATE_NETWORK_ALLOWLIST. Názvy hostitelů se při každém doručení znovu přeloží a ověří.
  • Podepsané. S nakonfigurovaným tajemstvím nese každé doručení X-Libre-Signature: sha256=<hmac> vypočtený z přesného těla.
  • Redigované. Obálka obsahuje druh události, typ oznámení, název, identifikátory a časová razítka. Těla oznámení, obsah zpráv, prompty a dokumenty instanci nikdy neopustí.
  • Trvalé. Doručení běží jako trvalé úlohy s omezeným počtem opakování. Odpověď 5xx od příjemce se zopakuje, 4xx se považuje za rozhodnutí příjemce a úlohu uzavře.
  • Omezené. Každý cíl odebírá konkrétní typy oznámení (nebo *).

Push v prohlížeči​

Settings → Notifications zaregistruje tento prohlížeč pro Web Push, takže se zmínky, sdílení, připomínky a dokončená práce dostanou do zařízení i při zavřené kartě. Implementace je standardní a samostatná:

  • VAPID (RFC 8292). Server každé doručení podepisuje párem klíčů ES256, který se jednou vygeneruje a uloží zašifrovaný, nebo se nastaví pomocí VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY (VAPID_SUBJECT určuje kontaktní claim). Kromě push koncového bodu dodavatele prohlížeče se nepoužívá žádná knihovna ani účet služby třetí strany.
  • Šifrovaný obsah (RFC 8291). Každá zpráva se před opuštěním instance zašifruje pro vlastní klíče zařízení pomocí aes128gcm. Push služba přenáší šifrovaná data, která nemůže číst.
  • Pro zařízení a relaci. Odběr patří prohlížeči, který ho vytvořil, a jeho ověřené relaci. Odhlášení z relace (nebo „sign out other sessions“) odstraní i registraci push. Koncové body se ukládají zašifrované s klíčovaným vyhledávacím tokenem a musí být veřejné destinace HTTPS — stejná hygiena odchozího provozu jako u webhooků.
  • Trvalé. Push doručení běží jako trvalé úlohy s omezeným počtem opakování. Když push služba oznámí zaniklý odběr (404/410), odstraní se.
  • Obsah nese název oznámení, volitelné tělo, typ a cílový odkaz — se stejným redigováním jako schránka.

Push vyžaduje produkční aplikaci (service worker se registruje pouze tam) a bezpečný origin. Stejný service worker poskytuje offline shell a instalovatelnost: manifest aplikace umožní instalaci Libre WebUI, navigace offline přejde na uložený shell a hashované prostředky sestavení se ukládají neměnně. Provoz API se nikdy necachuje.

E-mail​

E-mail je třetí doručovací kanál a jediný, který vyžaduje nastavení správcem. Settings → User Management → Access & policies → Email notifications obsahuje jeden odchozí server SMTP: hostitele, port, zabezpečení spojení (STARTTLS, implicitní TLS nebo žádné pro důvěryhodnou síť), volitelné přihlašovací údaje, adresu odesílatele a veřejnou adresu URL použitou pro odkazy. Proměnné prostředí SMTP_* v Proměnných prostředí naplňují stejná pole pro kontejnerová nasazení; hodnota uložená v UI má přednost. Heslo se ukládá zašifrované a do prohlížeče se nikdy nevrací. Send test doručí zprávu na vlastní adresu správce (nebo na kteroukoli zadanou adresu), takže se funkčnost ověří dřív, než se na ni uživatelé spolehnou.

Správci také volí šablonu e-mailu Světlá nebo Tmavá a před uložením si ji prohlédnou v náhledu. Výchozí je Světlá. Uložená předvolba platí pro všechna oznámení a testovací e-maily této instance, včetně výsledků v Markdownu; nezávisí na motivu rozhraní jednotlivých uživatelů. Náhled vykreslí ukázkový obsah bez kontaktu se SMTP, bez odeslání pošty a bez zařazení úlohy. Předvolbu mohou číst a měnit a o náhled žádat jen správci. Vestavěné předvolby udržují text, odkazy, bloky kódu a tlačítka čitelné; vlastní šablony HTML se nepřijímají. E-mailoví klienti mohou barvy přesto upravit podle vlastního nastavení zobrazení.

Jakmile je přepínač zapnutý, každý uživatel si pod Settings → Notifications → Email notifications zvolí, co se dostane do jeho schránky:

  • Channel mentions: zpráva, která vás zmíní v kanálu, s náhledem a odkazem na kanál.
  • Automation results: výsledek každého běhu vaší automatizace, úspěch i selhání. Chatový běh nese přímo odpověď asistenta (až několik tisíc znaků), běh Work nese stavový řádek úlohy a selhání nese chybu. Odkaz otevře výsledný chat nebo úlohu.

Oba přepínače zůstávají vypnuté, dokud je uživatel nezapne, a fungují jen pro účty, které mají e-mailovou adresu — tu si držitel účtu nastaví při registraci nebo mu ji doplní správce v Users. Zprávy odcházejí stejným trvalým úlohovým runtime jako Web Push, s omezeným počtem opakování při dočasném selhání přenosu, a SMTP klient je malá vestavěná implementace (EHLO, STARTTLS, AUTH PLAIN nebo LOGIN), která nikdy neposílá přihlašovací údaje přes nešifrované spojení, pokud režim není výslovně none. Každá zpráva má textovou i HTML variantu v grafice webu: slovní značka Libre WebUI, jedna karta s obsahem, korálové tlačítko na cíl a patička odkazující zpět na Settings → Notifications. Výsledek automatizace se vykresluje z Markdownu (nadpisy, seznamy, zvýraznění, kód, odkazy jen na cíle http(s)); vše ostatní se escapuje a jediný externí obrázek je logo servírované z librewebui.org. Žádné sledování.

Omezení​

  • Uživatelské předvolby pro jednotlivé typy zatím nejsou implementovány. Automatizace respektují vlastní nastavení oznámení a opuštění kanálu jeho oznámení zastaví.