0.108.0
Added
- Webhook-канал — новый канал связи для приёма команд от внешних систем через уникальные HTTP-эндпоинты (
POST /api/v1/hooks/<token>). Внешние системы (Алиса, IFTTT, n8n, мониторинг) отправляют текстовые команды агенту, получаютrequest_idи опрашивают статус черезGET /api/v1/hooks/<token>/status. - Управление webhook’ами через API: CRUD-эндпоинты
POST/GET/PUT/DELETE /api/v1/agents/{id}/webhooks, история запросовGET .../webhooks/{id}/history. - WebUI: вкладка «Webhooks» в карточке агента — создание, копирование URL, редактирование, удаление, просмотр истории запросов.
- Контекст агента: при обработке webhook-запроса агенту инжектируется история предыдущих запросов через этот же webhook (до 20 записей).
- Безопасность: токены 32 байта (256 бит энтропии), IP-whitelist (CIDR), rate limit 30/мин на webhook, маскирование токена в API и логах, 404 для неактивных/удалённых webhook’ов.
- Таблицы
webhooksиwebhook_requests— миграция 061 для SQLite и PostgreSQL. - Store:
CreateWebhook,GetWebhook,GetWebhookByToken,ListWebhooksByAgent,UpdateWebhook,DeleteWebhook,CreateWebhookRequest,GetWebhookRequest,UpdateWebhookRequestStatus,ListWebhookRequestsByWebhook. WebhookChannel— реализация интерфейсаChannelдля outbound-сообщений (запись результата в БД).- Тесты: unit-тесты Store (
TestWebhookCRUD,TestWebhookRequestLifecycle), handler-тесты (TestWebhookHandleHook_*,TestWebhookGetStatus_*,TestMaskToken,TestIsIPAllowed).