Перейти к содержанию

Вебхуки

Администраторы могут настраивать вебхуки для отправки оповещений на определённый URL. Вы можете настроить оповещение для отправки результатов запроса на конечную точку по вашему выбору: в ваше приложение, сторонний сервис или куда угодно.

На данный момент вебхуки доступны только для оповещений; вы не можете выбрать вебхук в качестве получателя подписки на дашборд.

Создание вебхука

Прежде чем вы сможете отправлять оповещения через вебхук, администратор должен создать целевой вебхук.

Администраторы могут создать вебхук, нажав значок шестерёнки > Управление > Каналы уведомлений. В разделе Вебхуки для оповещений нажмите + Добавить ещё один. Glarus BI выведет небольшую форму:

  • URL вебхука. Куда Glarus BI должен отправлять результаты оповещения. Должен быть действительным URL.
  • Название. Назовите вебхук, чтобы люди могли выбрать правильный хук при настройке оповещения для запроса.
  • Описание. Для чего предназначен.
  • Метод аутентификации. См. ниже.

Метод аутентификации вебхука

Вы можете указать метод аутентификации для вебхука:

  • Нет: без ограничений.
  • Базовый: имя пользователя и пароль.
  • Bearer: добавить секретный токен (англ.).
  • Ключ API: можно добавить ключ API в заголовок или как параметр запроса. В обоих вариантах нужно указать ключ и значение (сам ключ API).

Payload вебхука

Glarus BI отправляет результаты оповещения в формате JSON. JSON включает метаданные о запросе, например автора оповещения и его ID (null в случае тестовых оповещений).

Glarus BI отправит «прикреплённую» визуализацию как PNG-файл в кодировке base64 в ключе data, внутри ключа visualization.

Закодированная диаграмма PNG

Данные в табличном виде Glarus BI отправит в raw_data.

Результаты в табличном виде

Пример payload для оповещения (без PNG‑кодировки):

{
  "type": "alert",
  "alert_id": null,
  "alert_creator_id": 123,
  "alert_creator_name": "Роберто Боланьо",
  "data": {
    "type": "question",
    "question_id": 108,
    "question_name": "Продажи",
    "question_url": "https://example.com/question/108",
    "visualization": "data:image/png;base64,=...ДЛИННЫЙ_ЗАКОДИРОВАННЫЙ_PNG_ЗДЕСЬ...",
    "raw_data": {
      "cols": [
        "CREATED_AT",
        "count"
      ],
      "rows": [
        [
          "2023-09-01T00:00:00Z",
          346
        ],
        [
          "2023-10-01T00:00:00Z",
          354
        ],
        [
          "2023-11-01T00:00:00Z",
          394
        ],
        [
          "2023-12-01T00:00:00Z",
          418
        ],
        [
          "2024-01-01T00:00:00Z",
          457
        ],
        [
          "2024-02-01T00:00:00Z",
          404
        ],
        [
          "2024-03-01T00:00:00Z",
          445
        ],
        [
          "2024-04-01T00:00:00Z",
          439
        ],
        [
          "2024-05-01T00:00:00Z",
          520
        ],
        [
          "2024-06-01T00:00:00Z",
          455
        ],
        [
          "2024-07-01T00:00:00Z",
          523
        ],
        [
          "2024-08-01T00:00:00Z",
          501
        ]
      ]
    }
  },
  "sent_at": "2024-09-30T20:16:15.76582Z"
}

События и внешние вызовы

Исходящие вебхук- и email-уведомления отправляются по оповещениям для вопросов: условие Есть результаты срабатывает, если запрос вернул строки; для графика временного ряда или визуализации «Прогресс» с настроенной целью можно выбрать условие сравнения с целевым значением. Payload фиксирован и не настраивается; его структура описана в разделе Payload вебхука. Способы аутентификации канала — в разделе Метод аутентификации вебхука.

Вебхук нельзя выбрать получателем подписки на дашборд или использовать для произвольных HTTP-событий. При сбое ETL-конвейера Glarus BI отправляет email группе «Администраторы» с именем конвейера, первым упавшим шагом и сообщением об ошибке; это событие не доставляется в вебхук. Подробнее — в разделе Уведомления о сбое конвейера.

Входящие внешние вызовы позволяют отдельно запускать ETL-задания и конвейеры, а также выгружать результаты вопроса. Они требуют ключ API в заголовке X-API-Key; права запроса определяются пользователем, к которому относится ключ:

  • POST /api/glarus/transforms/{id}/run — запустить ETL-задание;
  • POST /api/glarus/pipelines/{id}/run — запустить ETL-конвейер с параметрами;
  • POST /api/persist/card/{card-id}/refresh — обновить кешированную модель, для которой включено сохранение;
  • POST /api/card/{card-id}/query/{csv|xlsx|json} — выгрузить результаты сохранённого вопроса в CSV, XLSX или JSON.

Например, экспорт в CSV можно вызвать так:

curl -X POST -H "X-API-Key: $API_KEY" \
  "https://bi.example.com/api/card/$CARD_ID/query/csv"

Ключи API создаются и управляются администратором. О запуске ETL также см. Способы запуска: расписание, событие, API и Ключи API.

Дополнительная информация