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

Справочник API

Полный справочник REST API AegisAI v1. Базовый URL: http://localhost:8000/api/v1.

Интерактивная документация: http://localhost:8000/docs

Аутентификация

Заголовок Назначение
X-API-Key API-ключ арендатора (агенты, SDK)
X-Admin-Key Ключ администратора (управление tenants)
Authorization: Bearer <jwt> JWT-сессия пользователя

Health & Status

Метод Путь Auth Описание
GET /health Liveness check
GET /health/ready Readiness (DB, Redis, OPA)
GET /status API Key Статус платформы
GET /stats API Key Статистика для панели

Prompt Guard

Метод Путь Auth Описание
GET /guard/health Health и конфиг Guard
POST /guard/validate API Key Проверка промпта (injection / jailbreak / leakage)
GET /guard/stats API Key Метрики Guard
GET /guard/detector/status API Key Статус детектора
GET /guard/detector/metrics API Key Метрики precision/recall
GET /guard/detector/versions API Key История версий модели
POST /guard/detector/train API Key + guard:manage Запуск обучения
GET /guard/detector/training/status Прогресс обучения (task_id)
POST /guard/detector/rollback/{version} API Key + guard:manage Откат версии
DELETE /guard/detector/cancel API Key + guard:manage Отмена обучения
POST /guard/detector/feedback API Key + guard:manage Ручная разметка (FP / атака)

Подробнее: Prompt Guard.

Аутентификация пользователей

Метод Путь Auth Описание
POST /auth/login Вход (email + password)
POST /auth/logout JWT Выход
GET /auth/me JWT Текущий пользователь
GET /auth/sso/providers Список SSO-провайдеров
GET /auth/sso/login Начало OIDC (redirect)
POST /auth/sso/exchange Обмен SSO code на JWT

POST /auth/login

// Request
{"email": "admin@aegisai.com", "password": "admin123"}

// Response
{
  "access_token": "eyJ...",
  "expires_in": 86400,
  "api_key": "aegis_...",
  "user": {"id": "...", "email": "...", "role": "admin"}
}

Агенты

Метод Путь Auth Описание
POST /agents/register API Key Регистрация агента
GET /agents API Key Список (с predicted_type / risk)
GET /agents/search API Key Семантический поиск ?q=
GET /agents/{id} API Key Агент по ID
GET /agents/{id}/details API Key Детали + embedding summary
PUT /agents/{id} API Key Обновление
DELETE /agents/{id} API Key Удаление
POST /agents/{id}/heartbeat API Key Heartbeat (+ refresh embeddings)

POST /agents/register

{
  "name": "Sales Bot",
  "type": "llm",
  "capabilities": ["observe", "track"],
  "permissions": {}
}

Discovery (Shadow AI)

Метод Путь Auth Описание
GET /discovery/candidates API Key Список кандидатов
POST /discovery/ingest API Key Ingest события
POST /discovery/ingest/batch API Key Batch ingest
POST /discovery/cluster API Key Async clustering
POST /discovery/candidates/{id}/confirm API Key Confirm → register
POST /discovery/candidates/{id}/dismiss API Key Dismiss

Политики

Метод Путь Auth Описание
POST /policies JWT (Admin) Создать политику
GET /policies API Key / JWT Список политик
GET /policies/templates API Key Rego-шаблоны
POST /policies/check API Key Проверка политики
GET /policies/{id} API Key Политика по ID
PUT /policies/{id} JWT (Admin) Обновление
DELETE /policies/{id} JWT (Admin) Удаление

POST /policies/check

// Request
{
  "agent_id": "uuid",
  "action": "read_data",
  "resource": "customer_pii",
  "context": {"consent": true}
}

// Response
{
  "allowed": true,
  "required_approval": false,
  "risk_score": 0.15,
  "risk": "low",
  "anomaly": false,
  "reason": "Access granted"
}

Аудит

Метод Путь Auth Описание
POST /audit/log API Key Запись в журнал
GET /audit API Key / JWT Список (пагинация)
GET /audit/{id} API Key Запись по ID
GET /audit/export API Key Экспорт JSONL
GET /audit/export/json API Key Экспорт JSON
GET /audit/export/csv API Key Экспорт CSV
POST /audit/export/async API Key Асинхронный экспорт
GET /audit/export/status/{id} API Key Статус экспорта
GET /audit/export/download/{id} API Key Скачать экспорт

Аномалии

Метод Путь Auth Описание
GET /anomalies API Key / JWT Список отчётов
GET /anomalies/stats API Key Статистика
POST /anomalies/report API Key Создать отчёт
GET /anomalies/detector/status API Key Статус детектора
GET /anomalies/detector/metrics API Key Метрики
POST /anomalies/detector/train JWT (Admin) Обучить модель
POST /anomalies/detector/rollback/{v} JWT (Admin) Откат версии

HITL

Метод Путь Auth Описание
POST /hitl/request API Key Запрос согласования
POST /hitl/approve/{id} JWT (Analyst+) Согласовать
POST /hitl/reject/{id} JWT (Analyst+) Отклонить
GET /hitl/status/{id} API Key Статус запроса
GET /hitl/pending JWT (Analyst+) Очередь

Пользователи

Метод Путь Auth Описание
GET /users/me JWT Мой профиль
PUT /users/me JWT Обновить профиль
POST /users/me/change-password JWT Сменить пароль
POST /users JWT (Admin) Создать пользователя
GET /users JWT (Admin) Список
GET /users/{id} JWT (Admin) По ID
PUT /users/{id} JWT (Admin) Обновить
PUT /users/{id}/role JWT (Admin) Сменить роль
POST /users/{id}/block JWT (Admin) Заблокировать
POST /users/{id}/unblock JWT (Admin) Разблокировать
DELETE /users/{id} JWT (Admin) Удалить

API-ключи

Метод Путь Auth Описание
POST /api-keys JWT Создать ключ
GET /api-keys JWT Список ключей
DELETE /api-keys/{id} JWT Отозвать

Арендаторы

Метод Путь Auth Описание
POST /tenants Admin Key Создать арендатора
GET /tenants Admin Key Список

SIEM (Admin)

Требуется JWT Super Admin или X-Admin-Key. См. SIEM.

Метод Путь Описание
GET /siem/status Конфигурация SIEM
POST /siem/test Тестовое событие

WebSocket

Протокол Путь Auth Описание
WS /ws?token=<jwt> JWT (query) Real-time события

Webhooks (вне /api/v1)

Метод Путь Auth Описание
POST /webhooks/agent API Key + Signature События агента

Коды ответов

Код Описание
200 Успех
201 Создано
202 Принято (async)
204 Успех без тела
400 Неверный запрос
401 Не авторизован
403 Доступ запрещён
404 Не найдено
422 Ошибка валидации
500 Внутренняя ошибка

OpenAPI

Полная спецификация доступна в Swagger UI: http://localhost:8000/docs