Webhooks
Webhooks — это канал уведомлений в Хоуке, который позволяет отправлять информацию о событиях и системные алерты на ваш собственный HTTP(S) endpoint. Каждый раз, когда срабатывает настроенное правило, Хоук отправляет POST-запрос с JSON-данными на указанный вами адрес.
Вы можете настроить веб-хуки на двух уровнях:
- На уровне проекта: для автоматизации обработки ошибок (например, создания тикетов или запуска workflow).
- На уровне пользователя: для получения персональных уведомлений (назначение ответственным, системные сообщения).
В проекте
- Перейдите в Настройки проекта → Уведомления.
- Создайте новый сценарий или отредактируйте существующий.
- В разделе Где получать активируйте чекбокс Webhook и введите URL вашего обработчика.
- Настройте фильтры (например, «Если ошибка встречалась более 500 раз за 1 час).
В аккаунте пользователя
- Перейдите в Аккаунт → Уведомления.
- В разделе Каналы найдите Webhook и укажите URL.
Заголовки запроса
Каждый запрос содержит следующие заголовки:
-
Content-Type: application/json -
User-Agent: Hawk-Webhook/1.0 -
X-Hawk-Notification: <type>— тип события (например, event, assignee).
Базовая структура тела (JSON)
-
type— строковый идентификатор типа уведомления. -
payload— объект с данными.
1. Проектные события (event / several-events)
Отправляются при возникновении ошибок в коде приложения.
-
Объект project: содержит
id,name,workspaceIdи ссылку на иконкуimage. -
Массив events: список инцидентов, каждый из которых включает:
title: заголовок ошибки..backtrace: стек вызовов (файл, строка, функция).totalCountиusersAffected: общее количество повторов и затронутых пользователей.timestamp: время события.
2. Персональные уведомления (assignee)
Приходит, когда пользователь назначается ответственным за ошибку.
-
Включает данные проекта, детали события (
event), а также объекты assignedBy (кто назначил) иassignee(кто назначен) с их именами и email.
3. Системные и биллинговые уведомления
Обычно приходят в Webhook пользователя и содержат объект workspace:
- block-workspace: уведомления о блокировке.
-
payment-failed: уведомления о неудачной оплате (с указанием причины
reason). -
events-limit-almost-reached: предупреждение о достижении лимита тарифного плана (поля
eventsCountиeventsLimit). -
payment-success: данные об успешной оплате и параметрах текущего тарифа
plan. - workspace-invite: ссылка и название воркспейса для вступления в команду.
- Дополнительно поддерживаются: blocked-workspace-reminder, days-limit-almost-reached, sign-up, password-reset.
- Протокол: поддерживаются только адреса HTTP или HTTPS.
- Порты: только 80 (http) и 443 (https).
- Хосты/адреса: localhost, внутренние домены и private/reserved IP запрещены (включая DNS-резолв).
- Таймаут: сервер должен ответить в течение 10 секунд, иначе попытка доставки считается неудачной. Повторные попытки доставки не выполняются (механизм acknowledge отсутствует).
- Редиректы: Хоук не следует по редиректам (ответы 3xx игнорируются).
-
Безопасность:
payloadформируется строго по белому списку полей для каждого типа уведомления; лишние и чувствительные поля не передаются.