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

Вебхуки

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

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

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

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

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

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

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

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

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

Полезная нагрузка вебхука

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

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

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

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

Результаты в виде таблицы

Вот пример полезной нагрузки для оповещения (мы сократили кодировку PNG, потому что она длинная и крайне скучная):

{
  "type": "alert",
  "alert_id": null,
  "alert_creator_id": 2666,
  "alert_creator_name": "Роберто Боланьо",
  "data": {
    "type": "question",
    "question_id": 108,
    "question_name": "Продажи",
    "question_url": "http://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
        ],