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í
| Typ | Kdy se vytvoří |
|---|---|
channel-dm | Někdo vám pošle přímou zprávu |
channel-mention | Někdo vás v kanálu @mentions nebo odpoví na vaši zprávu |
channel-invite | Jste přidáni do kanálu |
share | Někdo s vámi sdílí prostředek |
automation-failed | Jedna z vašich automatizací selže (pokud neodmítla oznámení) |
calendar-reminder | Událost s připomínkou dosáhne jejího času |
work-run-finished | Jeden z vašich najatých agentů Work dokončí běh |
work-run-attention | Najatý agent se zastaví kvůli vstupu nebo chybě |
work-takeover | Agent Work vás požádá o převzetí obrazovky |
work-approval | Běh Work čeká, až schválíte akci s vedlejším účinkem |
system | Ozná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_SUBJECTurč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í.