Уведомления
Libre WebUI хранит ящик каждого пользователя, чтобы упоминания, DM, общий доступ, ошибки автоматизации и календарь доходили при закрытой странице.
Ящик
Уведомления — прежде всего строки базы: заголовок/текст шифруются, максимум 500 (старые удаляются), необязательный ключ дедуплицирует повтор. RESTful показывает, считает, отмечает одно/все и удаляет.
Живая доставка через notify:<userId> и GET /api/notifications/events (SSE). Идентичность из сессии, не клиента, SQL — источник истины: пропуск восстанавливается списком, не проигрыванием.
Источники уведомлений
| Тип | Когда |
|---|---|
channel-dm | Личное сообщение |
channel-mention | Вас @mentions или отвечают |
channel-invite | Добавляют в канал |
share | Делятся ресурсом |
automation-failed | Ваша автоматизация падает, если не отключила уведомление |
calendar-reminder | Наступает время напоминания |
work-run-finished | Нанятый агент завершает |
work-run-attention | Нужны данные или ошибка |
work-takeover | Агент просит перехватить экран |
work-approval | Запуск Work ждёт одобрения действия с побочными эффектами |
system | Объявление инстанции |
Публикуется только затронутому пользователю; упоминание неучастника ничего не создаёт.
Исходящие вебхуки
Администратор регистрирует цели:
- Защищённый выход. Точная URL, без перенаправлений и частных или link-local-адресов, если имя хоста не разрешено через
TOOLS_PRIVATE_NETWORK_ALLOWLIST. Имя повторно разрешается при доставке. - Подпись. С секретом
X-Libre-Signature: sha256=<hmac>от точного тела запроса. - Редакция. Оболочка содержит вид, тип, заголовок, ID и время. Тексты, сообщения, промпты, документы не выходят.
- Долговечность. Ограниченные повторы; 5xx повторяется, 4xx считается решением.
- Область. Конкретные типы или
*.
Push браузера
Настройки → Уведомления регистрируют Web Push, чтобы события дошли при закрытой вкладке:
- VAPID (RFC 8292). Сервер подписывает ES256-парой, созданной раз и зашифрованной, либо
VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY(VAPID_SUBJECT— контакт). Нет сторонней библиотеки/аккаунта кроме точки браузера. - Шифрование (RFC 8291). aes128gcm ключами устройства до выхода; сервис видит шифротекст.
- Для каждого устройства и сессии. Выход (или «выйти из других сессий») удаляет регистрацию. Точки зашифрованы с ключевым токеном поиска и должны быть публичными HTTPS с той же защитой.
- Долговечность. Ограниченные повторы; 404/410 удаляет подписку.
- Полезная нагрузка содержит заголовок, текст, тип и ссылку с той же редакцией.
Push требует производственного приложения и безопасного источника. Сервис-воркер также обеспечивает установку и автономную оболочку: манифест делает приложение устанавливаемым, автономная навигация использует кэш, а хешированные ресурсы считаются неизменными. API не кэшируется.
Границы
- Настроек по отдельным типам пока нет; автоматизация соблюдает своё, выход из канала останавливает его уведомления.