ВозможностиДокументацияЦеныPlaygroundFAQ

Approval Workflow

Human-in-the-loop для высокорисковых операций

🔧 Team и выше

Как работает

  1. Агент отправляет команду через MCP (flowlink_exec)
  2. Shield анализирует команду: 7-уровневый pipeline
  3. Risk score ≥ threshold → команда ставится в очередь на одобрение
  4. Уведомление отправляется через Telegram / Webhook / SSE
  5. Approver просматривает команду и принимает решение
  6. Approve → команда выполняется / Reject → логируется как заблокированная

Настройка через политики

bash
# Требовать одобрение для rm команд
curl -X POST https://relay.example.com/api/v1/policies \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "rm-approval",
    "action": "block",
    "pattern": "rm -rf*",
    "approval_required": true,
    "description": "rm -rf commands require human approval"
  }'

# Требовать одобрение для всех destructive команд
curl -X POST https://relay.example.com/api/v1/policies \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "destructive-approval",
    "action": "block",
    "pattern": "chmod 777|mkfs|dd if=|:(){",
    "approval_required": true
  }'

Управление заявками

Список ожидающих

bash
curl https://relay.example.com/api/approvals \
  -H "Authorization: Bearer $TOKEN"

Одобрить

bash
curl -X POST https://relay.example.com/api/approvals/${REQUEST_ID}/approve \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"approver": "admin", "reason": "Verified safe — only /tmp cleanup"}'

Отклонить

bash
curl -X POST https://relay.example.com/api/approvals/${REQUEST_ID}/reject \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"approver": "admin", "reason": "Potential data loss risk"}'

Уведомления

Telegram

Кнопки Approve/Reject прямо в чате. Настройте Telegram Bot в /docs/telegram.

Webhook

HTTP POST с событием approval_requested. Ваша система может одобрить автоматически.

SSE (Server-Sent Events)

Real-time stream через GET /api/events для dashboard интеграции.

Auto-Approve для доверенных агентов

Для CI/CD агентов можно настроить auto-approve на определённые паттерны, чтобы не блокировать pipeline. Используйте параметр always_approve при создании политики.

bash
curl -X POST https://relay.example.com/api/approvals/${REQUEST_ID}/approve \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"approver": "ci-bot", "always_approve": "git:*"}'