Настройка каналов оповещений через file


Параметы для конфигурационного файла

seed

Определяет путь до папки с seed-файлами (от корня проекта). Читаются все файлы с расширением .yaml в указанной директории.
Формат: seed: <путь_к_файлам>/*.yaml
Пример: seed: seed/*.yaml

fail_on_malformed_seed

Управляет обработкой ошибок в seed-файлах:

  • true – остановка программы при первой ошибке (например, неверный формат или отсутствие поля)

  • false – пропуск невалидных каналов с продолжением работы

Пример: fail_on_malformed_seed: true

delete_unchangeable_channels

Контролирует синхронизацию между seed-файлами и БД:

  • true – удаляет из БД каналы, отсутствующие в seed-файлах (с обновлением существующих)

  • false – добавляет новые и обновляет существующие каналы (без удаления)

Уникальность канала определяется по имени. Каналы из seed-файлов создаются (если отсутствуют) или перезаписываются (если существуют).

Создание seed-файлов:

Вам нужно разместить YAML-файлы в определённой директории, путь к которой указан в параметре seed вашего конфигурационного файла. Нельзя создавать вложенные папки внутри этой директории — все YAML-файлы должны лежать прямо в корне указанной папки.

Подготовка к настройке Telegram

Ограничения Telegram

Сообщения в Telegram ограничены 4096 символами UTF-8. Для длинных сообщений рекомендуется использовать другие каналы.

Получение токена бота

  1. Откройте Telegram и найдите бота @BotFather

  2. Отправьте команду /newbot и следуйте инструкциям:

    • Укажите имя бота (должно заканчиваться на bot или _bot)

  3. После создания бота скопируйте токен API - он понадобится в параметре bot_token

Документация: Официальное руководство по созданию ботов

Получение ID чата

  1. Откройте настройки Telegram (меню слева → Settings)

  2. Перейдите в раздел Advanced

  3. Выберите Experimental Settings

  4. Активируйте опцию Show Peer Id in profile

  5. Для получения ID:

    • Личного чата: меню слева → Settings → My Profile → ID отобразится под фото

    • Группы: откройте информацию о группе (групповой чат → название вверху) → ID в разделе информации

    • Канала: откройте информацию о канале (канал → название вверху) → ID в разделе информации

Альтернативные методы:

Важные требования

  1. Для групп и каналов:

    • Бот должен быть добавлен как администратор

    • Должны быть включены права на отправку сообщений

  2. Для личных сообщений:

    • Пользователь должен начать диалог с ботом, отправив команду /start

Подготовка к настройке Mattermost

Получение имени канала

  1. Откройте нужный канал в Mattermost

  2. В заголовке канала нажмите на название → View Info

  3. В разделе Info вы увидете имя канала

Получение Webhook для Mattermost

Для настройки вебхука Mattermost ознакомьтесь с официальной документацией: Mattermost Incoming Webhooks

Настройка каналов в seed-файле:

Каждый файл должен содержать список каналов в формате:

- name: УникальноеИмяКанала        # Имя канала
  type: telegram|mattermost|email  # Тип канала
  settings:                        # Параметры канала
    параметр_1: значение
    параметр_2: значение

- name: ДругойКанал                # Следующий канал
  type: ...
  settings: ...

Параметры для типов каналов

Telegram (type: telegram)

settings:
  bot_token: токен_бота  # Полученный через @botfather
  chat_id: ID_чата       # Пример: 123456789 (для лочного диалога) или -100123456789 (для каналов и групп)

Особенности:

  • Для личного диалога: chat_id (пример: 123456789)

  • Для каналов и групп: -100chat_id (пример: -100123456789)

Mattermost (type: mattermost)

settings:
  chat_name: имя-канала  # Slug-имя канала в Mattermost
  webhook_url: URL       # Полный URL вебхука, пример: https://mattermost.example.com/hooks/xxx

Email (type: email)

settings:
  host: адрес SMTP-сервера  # Пример: smtp.gmail.com
  port: порт сервера        # Пример: 587
  username: логин SMTP      # Пример: alerts@company.com
  password: пароль SMTP
  from: email отправителя   # Пример: alerts@company.com