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á.

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ří.

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.

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í.