Skip to content

Resources

Resources - это подключенные каналы доставки и внешние endpoints, которые workspace использует для отправки alerts.

Проще говоря, subscription определяет, на что подписаться, а resource отвечает на вопрос “куда отправить результат”: в Telegram chat, Discord channel, Slack channel или на webhook URL.

Для чего нужны resources

Resource хранит подключение к конкретному каналу или endpoint. Благодаря этому один и тот же канал можно использовать в разных subscriptions, не вводя его заново каждый раз.

Например, workspace может создать:

  • Telegram resource для основного чата команды;
  • Discord resource для канала мониторинга;
  • Webhook resource для собственного backend endpoint;
  • Slack resource для рабочего канала.

После этого при создании subscription пользователь просто выбирает нужный resource в шаге Action.

Как resources связаны с actions

Action описывает способ отправки уведомления: Telegram message, Discord webhook, Slack webhook или HTTP webhook.

Resource хранит конкретную цель для этого action:

  • для Telegram - подключенный chat;
  • для Discord - webhook URL канала;
  • для Slack - webhook URL канала;
  • для Webhook - URL вашего endpoint.

В простом режиме создания subscription интерфейс показывает resources как список доступных каналов доставки. В advanced mode action может попросить выбрать resource как один из параметров.

Workspace scope

Resources принадлежат текущему workspace. Если переключить workspace, список resources тоже изменится.

Управлять resources могут пользователи с правами управления workspace. Если у пользователя нет таких прав, раздел Resources будет недоступен для просмотра и редактирования.

Resource blueprint

Каждый resource создается по blueprint. Blueprint определяет тип resource, иконку, название в UI и поля, которые нужно заполнить.

Сейчас доступны четыре типа resources.

Telegram

Telegram resource используется для отправки alerts в Telegram chat.

Это external resource: при создании сервис сначала выдает инструкции. Пользователь следует этим инструкциям в Telegram, после чего resource становится ready и его можно выбирать в subscriptions.

Такой flow нужен потому, что Web3alert должен получить подтвержденную связь с конкретным chat, group или channel, а не просто произвольную строку.

Discord

Discord resource используется для отправки alerts в Discord channel через webhook.

В форме указывается URL Discord webhook. Его нужно создать в настройках нужного канала Discord и вставить в resource.

Slack

Slack resource используется для отправки alerts в Slack channel через Incoming WebHook.

В форме указывается URL Slack webhook. Его нужно создать в настройках Slack workspace/channel и вставить в resource.

Webhook

Webhook resource используется для отправки alerts на произвольный HTTP endpoint.

В форме указывается URL, на который Web3alert будет отправлять notification payload. Этот тип удобен, если alerts нужно передавать в собственный backend, automation system или другой внешний сервис.

Список resources

В разделе Resources отображаются resources текущего workspace.

Для каждого resource показываются:

Icon

Иконка типа resource. Она берется из blueprint.

Title

Человекочитаемое название resource. Его можно использовать как короткое понятное имя канала, например Main Telegram, Ops Discord или Backend webhook.

State

Текстовый статус resource, если он есть.

Для external resources статус помогает понять, завершено ли подключение. Например, Telegram resource может быть недоступен для выбора в subscription, пока подключение не подтверждено.

Actions

У resource есть меню управления. Через него можно открыть редактирование или удалить resource.

Add resource

Add resource открывает форму создания resource.

Type

Сначала выбирается тип resource: Telegram, Discord, Slack или Webhook.

Если форма открыта из Create subscription, список типов может быть ограничен теми resources, которые подходят выбранному action.

Title

Видимое название resource в интерфейсе.

Лучше выбирать название по смыслу канала, а не по техническому типу: например Alerts channel, DAO ops, Main backend webhook.

Name

Стабильный slug resource внутри workspace.

Name входит в fullname resource и используется как внутренний идентификатор. Обычно он заполняется автоматически из title, но его можно отредактировать до сохранения.

После создания resource name уже нельзя менять.

URL

Поле появляется у Discord, Slack и Webhook resources.

В него вставляется webhook URL соответствующего сервиса. Для Discord и Slack URL валидируется по формату конкретной платформы.

Get instructions

Для Telegram вместо URL используется кнопка Get instructions.

После нажатия сервис создает draft resource и показывает инструкции подключения. Когда Telegram подтверждает подключение, resource становится ready и появляется в списке доступных каналов доставки.

Add a resource

Для Discord, Slack и Webhook кнопка Add a resource сразу создает resource, если все обязательные поля заполнены корректно.

Edit resource

Edit открывает форму редактирования существующего resource.

Можно изменить title и поля подключения, если тип resource это поддерживает. Name остается read-only, потому что он является частью стабильного fullname.

Если resource используется в subscriptions, изменение URL или подключения повлияет на все subscriptions, которые отправляют alerts в этот resource.

Delete resource

Delete удаляет resource из workspace.

Перед удалением важно проверить, не используется ли resource в активных subscriptions. Если удалить канал доставки, subscriptions, которые ссылались на него, больше не смогут отправлять alerts через этот resource.