Вебхуки
Вебхуки позволяют организациям получать HTTP-коллбэки в реальном времени при наступлении событий в Planner. Настройте URL и выберите подписку на нужные события.
Модель
Webhook
├── orgId (каскадное удаление)
├── url (конечная точка)
├── events (JSON массив имён событий)
├── secret (для HMAC-подписи)
├── enabled (переключение без удаления)
└── logs (WebhookLog[])
WebhookLog
├── webhookId
├── event (имя события)
├── status (код HTTP-ответа)
├── response (тело ответа)
└── createdAtAPI Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
GET | /api/orgs/:orgId/webhooks | Список вебхуков организации |
POST | /api/webhooks | Создать вебхук |
PATCH | /api/webhooks/:id | Обновить вебхук |
DELETE | /api/webhooks/:id | Удалить вебхук |
GET | /api/webhooks/:id/logs | Логи доставки |
Фронтенд
Компонент WebhookSettings
Компонент WebhookSettings.vue в настройках организации предоставляет:
- Список вебхуков с переключателем статуса (вкл/выкл)
- Диалог создания/редактирования с полем URL и выбором событий
- Просмотр логов доставки с кодами статуса и телами ответов
Store вебхуков
typescript
const store = useWebhooksStore()
await store.fetchByOrg(orgId)
await store.create({ orgId, url, events })
await store.update(id, { url, events, enabled })
await store.remove(id)
await store.getLogs(id)Ключевые детали
- Каждый вебхук имеет
secretдля подписи полезной нагрузки через HMAC-SHA256 - Логи доставки хранят HTTP-код статуса и тело ответа для отладки
- Вебхуки привязаны к организациям — все события внутри организации триггерят настроенные вебхуки
- Флаг
enabledпозволяет приостановить доставку без удаления конфигурации вебхука