Skip to content

Вебхуки

Вебхуки позволяют организациям получать HTTP-коллбэки в реальном времени при наступлении событий в Planner. Настройте URL и выберите подписку на нужные события.

Модель

Webhook
├── orgId (каскадное удаление)
├── url (конечная точка)
├── events (JSON массив имён событий)
├── secret (для HMAC-подписи)
├── enabled (переключение без удаления)
└── logs (WebhookLog[])

WebhookLog
├── webhookId
├── event (имя события)
├── status (код HTTP-ответа)
├── response (тело ответа)
└── createdAt

API Эндпоинты

МетодПутьОписание
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 позволяет приостановить доставку без удаления конфигурации вебхука