Skip to content

HTTP API OneFlag

OneFlag публикуется как приложение, а не как библиотека: экспортируемых классов у пакета нет, публичный контракт - это HTTP-эндпоинты. Здесь их полный список.

Разделы

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

Защищённые эндпоинты принимают два вида доступа:

СпособЗаголовок или кукаКому
Ключ SDKAuthorization: Bearer <ONEFLAG_SDK_KEY>Приложениям и скриптам
Токен входаhttpOnly-кука, выдаётся POST /loginДашборду

Проверяются оба, порядок для итога не важен. Без валидного доступа возвращается 401 с телом application/problem+json.

Формат ошибок

Все ошибки API отдаются по RFC 9457:

Content-Type: application/problem+json
json
{ "type": "about:blank", "title": "Not Found", "status": 404, "detail": "Окружение qa не найдено" }
КодКогда
400Тело не является объектом JSON либо не заполнено обязательное поле
401Нет валидного ключа SDK и нет токена входа
404Флаг или окружение не найдены
405Метод не поддерживается точкой маршрута

Выбор окружения

Окружение берётся в следующем порядке:

  1. параметр строки запроса env;
  2. поле environment в теле запроса (там, где тело есть);
  3. ONEFLAG_DEFAULT_ENVIRONMENT.

Несуществующее окружение - 404.

Сводка

Метод и путьРаздел
GET /api/flags?env=devУправление
POST /api/flagsУправление
GET /api/flags/{ключ}Управление
PATCH, PUT /api/flags/{ключ}?env=devУправление
DELETE /api/flags/{ключ}Управление
GET /api/environmentsУправление
GET /api/audit?limit=50Управление
POST /api/evaluateОценка
POST /api/evaluate/allОценка
GET /api/snapshot?env=devОценка
GET /streamОценка
GET /healthzСлужебные
GET /metricsСлужебные
GET /stream/infoСлужебные

Маршруты дашборда (/, /login, /logout, /ui/...) отвечают фрагментами HTML для htmx и частью публичного контракта не считаются.