Feature Flags (Русский)
Что такое флаги функций
Заголовок раздела «Что такое флаги функций»Флаг функции — это именованный переключатель (логический или перечисляемый), значение которого можно изменять
во время выполнения и сохранять в базе данных без необходимости повторного развертывания процесса. Каждый
флаг описывается объектом FeatureFlagDefinition с полями key, label,
description, category, defaultValue, type и подсказкой requiresRestart.
Порядок определения значения
Заголовок раздела «Порядок определения значения»Эффективное значение флага определяется функцией
resolveFeatureFlag() со следующим
приоритетом (побеждает значение с наивысшим приоритетом):
- Переопределение в БД — значение, хранящееся в таблице
key_valueв пространстве именfeature_flags(задается через панель управления или REST API). - Переменная окружения —
process.env[<KEY>], если она задана и не пуста. - Значение по умолчанию из определения —
defaultValueизfeatureFlagDefinitions.ts.
Логический флаг считается включенным, если его эффективное значение равно "true",
"1" или "yes" (см. isFeatureFlagEnabled()).
[!NOTE] Большинство флагов также имеют соответствующую переменную окружения с тем же именем, задокументированную в
ENVIRONMENT.md. Переопределение флага в БД имеет приоритет над этой переменной окружения. Флаг сrequiresRestart: trueсохраняется немедленно, но повторно считывается только при запуске процесса — его переключение приводит к появлению баннера «Перезапустить сервер» в панели управления.
Каталог флагов
Заголовок раздела «Каталог флагов»77 флагов в 6 категориях. По умолчанию — это значение по умолчанию для определения, используемое, когда отсутствует как переопределение в базе данных, так и переменная окружения.
Безопасность (10)
Заголовок раздела «Безопасность (10)»| Key | Type | Default | Description |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Требовать ключ API для всех входящих запросов. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Включить очистку входных данных для всех запросов. |
INJECTION_GUARD_MODE |
enum | off |
Режим защиты от инъекций промптов. Значения: off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Скрывать PII из запросов (независимо от INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Очищать PII из ответов провайдера. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Режим очистки PII в ответах. Значения: redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Блокировать исходящие запросы к частным/внутренним диапазонам IP-адресов. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Разрешить аутентифицированным пользователям панели управления просматривать сохраненные ключи API вместо того, чтобы видеть только маскированные значения. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Включать префикс учетной записи в строки журнала AUTH (например, “Using <provider> account: abc12345…”). Отключено по умолчанию, чтобы идентификаторы учетных записей были скрыты из общих/многопользовательских журналов процессов. Независимо от режима отладки; переключение режима отладки не раскрывает эту информацию. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Когда OIDC включен, отключить вход по паролю, чтобы пользователи могли аутентифицироваться только через OIDC Single Sign-On. Когда отключено (по умолчанию), доступны как вход по паролю, так и OIDC. |
Сеть (19)
Заголовок раздела «Сеть (19)»| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | Включить режим скрытности отпечатков TLS. |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Разрешить маршрутам /v1/audio/* использовать узлы провайдера, совместимые с OpenAI, размещенные за пределами localhost. По умолчанию отключено — маршрутизация аудио на удаленный хост изменяет исходящую идентификацию и должна быть явным решением оператора. Узлы обратной связи всегда разрешены и не затрагиваются. |
|
RERANK_REMOTE_PROVIDER_NODES |
boolean | false |
Разрешить POST /v1/rerank (и шаг переранжирования обратной связи механизма памяти) использовать узлы провайдера, совместимые с OpenAI, размещенные за пределами localhost. По умолчанию отключено — маршрутизация на удаленный хост изменяет исходящую идентификацию и должна быть явным решением оператора. Узлы обратной связи всегда разрешены; удаленные узлы также должны соответствовать политике исходящих URL-адресов провайдера. |
|
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Если для соединения не назначен прокси, автоматически выбирать первый работающий прокси из реестра. По умолчанию отключено (иначе любой прокси из реестра становится глобальным запасным вариантом — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Разрешить потокам OAuth и проверки провайдера обходить закрепленный прокси и подключаться напрямую, если предварительные проверки доступности прокси завершаются неудачей. По умолчанию отключено, так как это может изменить исходящий IP-адрес. | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
При сетевом исключении (таймаут, отказ/сброс соединения) для исполнителя ротации с несколькими учетными записями, если у сбойной учетной записи нет выделенного прокси, применить короткую задержку и пропустить другие учетные записи без прокси для остальной части запроса вместо повторной попытки для каждой. Включено по умолчанию (безопасно: без изменения исходящего IP-адреса, только снижает задержку/риск задержки для учетных записей с общим исходящим трафисом). Отключите, чтобы восстановить немедленное распространение при первом сбое без прокси. | |
ROTATION_ATTRIBUTION |
boolean | false |
Ротация Opencode записывает, какая учетная запись обслуживала или была пропущена (только маскированные идентификаторы, никогда не полные идентификаторы учетных записей) и связывает записи журнала прокси с их запросом, чтобы оператор мог отличить пропущенные учетные записи от неиспользуемых. По умолчанию отключено. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Пулы прокси и ротация opencode для каждой учетной записи прекращают повторное использование прокси, который только что вышел из строя (отказал TCP-зонд или через него был получен ответ 429), на период, зависящий от процесса, который удваивается при каждом повторе, до достижения предела. Статус прокси не записывается; при каждом отложенном кандидате выбор остается неизменным. По умолчанию отключено. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Показывать в панели управления для пула прокси, сколько наблюдаемых исходящих IP-адресов обслуживали его участников за последние 24 часа и сколько соединений их использовали. Только для чтения, вычисляется из журнала прокси, никогда не используется для маршрутизации. По умолчанию отключено. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Для исполнителя OpenCode, отслеживать первый байт тела потокового ответа Responses (окно: RESPONSES_FIRST_BYTE_TIMEOUT_MS, по умолчанию 15000). Поток Responses с кодом 2xx, который остается безмолвным после истечения окна, считается зависшим: учетная запись охлаждается, и запрос один раз перенаправляется на следующую учетную запись; второе зависание приводит к быстрому сбою. По умолчанию отключено: зависшие потоки сохраняют текущее ожидание до истечения таймаута готовности потока. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
Исполнитель OpenCode: при получении 403/451 с отказом user_blocked (не гео, не отклонение по отпечатку Cloudflare), охладить отклоненную учетную запись и перенаправить запрос на следующую учетную запись не более одного раза за запрос; второй отказ возвращается как есть, без отметки об успехе. По умолчанию отключено: обход блокировки пользователя вышестоящим сервисом может выглядеть как уклонение и распространить флаг по всему парку. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
Ротация OpenCode: после двух последовательных временных сбоев вышестоящего сервиса (5xx или пустой 400) сделать паузу перед следующей учетной записью — 1.5 с, удваиваясь при каждом последующем сбое, с ограничением 6 с на паузу и 10 с на запрос, пропускается при отключении клиента; тело с ошибкой освобождается перед ожиданием. По умолчанию отключено: переключение на резерв остается немедленным. | |
OPENCODE_PARK_AND_RESUME |
boolean | false |
Ротация OpenCode: припарковать запрос после многократных временных 429 (или нового маркера перегрузки пула) с сердцебиением, затем повторно воспроизвести одно ограниченное звено из до 3 последовательных учетных записей вместо того, чтобы разворачивать весь парк. По умолчанию отключено: каждый 429 перенаправляется на следующую учетную запись точно так же, как и раньше. | |
FLUSH_EMPTY_RETRY_ENABLED |
boolean | false |
При переведенных потоковых ответах, когда вышестоящий ответ не содержит полезного содержимого (завершение только с обоснованием или нулевые ценные фрагменты), выполнять ограниченные повторные попытки через обычный путь учетных данных (до STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX) до того, как что-либо будет передано клиенту. По умолчанию отключено: пустые ответы сохраняют текущее поведение (пустой 200 или 502 с пустым содержимым). |
|
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
Ротация OpenCode: остановить волну учетных записей при первом 429, классифицированном как реальное ограничение скорости (анализируемый Retry-After или тело, указывающее на ограничение скорости/использования), и вернуть этот вышестоящий 429 без изменений. Неклассифицированные 429 продолжают ротацию. По умолчанию отключено: бесплатный уровень ограничен по исходящему IP (#9611), поэтому каждый 429 ротируется, а исчерпанная волна возвращает последний вышестоящий 429. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Отключить проверку TLS-сертификата для прокси MITM. Опасно. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Разрешить URL-адреса провайдеров, указывающие на частные/внутренние сети. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Разрешить добавление/проверку провайдеров по локальным/частным адресам (127.0.0.1, localhost, LAN). Включено по умолчанию (сначала локальные); отключите для строгой блокировки только публичных адресов. Метаданные облака остаются заблокированными. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Включить режим провайдера, совместимого с Claude Code. |
Политики (5)
Заголовок раздела «Политики (5)»| Key | Type | Default | Description |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Режим применения политики использования инструментов. Значения: disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Автоматически включать ограничение скорости на основе шаблонов использования. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Пропускать локальную проверку OmniRoute на размер контекстного окна / максимальное количество входных токенов для прямых запросов к одной модели. Ограничения вышестоящих систем по-прежнему действуют. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Отклонять запросы перед отправкой, если целевая модель не обладает необходимыми возможностями (зрение, инструменты, структурированный вывод, контекстное окно). Защищает прямые запросы к одному провайдеру, которые обходят фильтр совместимости комбинированного слоя. |
RADAR_ENABLED |
boolean | false |
Включить модуль OmniRoute Radar (экраны фида каталога и синхронизация). По умолчанию отключено; включение только разблокирует пользовательский интерфейс — синхронизация данных остается отдельной опцией. |
Среда выполнения (33)
Заголовок раздела «Среда выполнения (33)»| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Генерировать и внедрять сводки разговоров, когда комбинированная маршрутизация переключает модели. Отключите, чтобы рассматривать переключения моделей независимо и предотвратить фоновые запросы на передачу для всех существующих и будущих комбинаций. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Отбрасывать внутренние выходные элементы фазы комментариев из сквозных потоков Responses API перед пересылкой клиентам. Отключите, чтобы получать необработанные вышестоящие комментарии. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Применять ограничения области действия на доступ к инструментам MCP. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Сжимать описания инструментов MCP для уменьшения использования токенов. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Включить обработку фоновых задач во время выполнения. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Отключить все фоновые службы (обновление квот, синхронизация и т. д.). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
Доверять фильтрам RTK на уровне проекта без валидации. | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | Запускает WebSocket-сервер панели мониторинга в реальном времени при импорте (порт 20132 по умолчанию). |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Позволяет Codex использовать транспорт Responses-over-WebSocket. Если отключено, Codex переключается на HTTP-ответы. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Позволяет Codex использовать локальный WebSocket JSON-RPC транспорт app-server (codexTransport=app-server). Если отключено, соединения, выбранные для app-server, переключаются на другие транспорты Codex. | |
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
Направляет запросы с исчерпанным бюджетом к аварийному бесплатному резервному провайдеру/модели. (См. Emergency Budget Fallback ниже.) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
Включает прозрачную раннюю повторную попытку для усеченных вышестоящих SSE-потоков до того, как какие-либо байты ответа достигнут клиента. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
Позволяет восстановлению потока повторно запрашивать и сшивать ответ после того, как байты уже достигли клиента. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
Делает продолжение в середине потока безопасным для вызова инструмента: никогда не возобновлять прерванный поток после того, как был выдан вызов инструмента (в процессе или уже завершен с finish_reason tool_calls), и закрывать после одного пустого продолжения вместо того, чтобы тратить весь бюджет. Off: поведение выпуска. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
Переключиться один раз на родственное соединение, когда поток SSE закрывается до выдачи какого-либо полезного кадра и исчерпана ограниченная повторная попытка того же соединения; при отсутствии пригодного родственного соединения возвращается исходная ошибка STREAM_EARLY_EOF 502. По умолчанию отключено: ранний EOF остается терминальным после повторной попытки того же соединения. |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
Включать удобные для отображения поля имени в ответы /v1/models. Отключите для клиентов, которые ожидают только идентификаторы моделей. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Управляет тем, как префиксы идентификаторов моделей отображаются в /v1/models. dual (по умолчанию) выдает как псевдоним, так и канонические префиксы идентификаторов провайдеров для обратной совместимости. alias выдает только короткий префикс псевдонима (например, ds-web/model, а не deepseek-web/model). canonical выдает только полный префикс идентификатора провайдера. Значения: dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
Включить периодическую синхронизацию ELO таблицы лидеров Arena AI для ранжирования интеллекта моделей. | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Рекламировать зеркальные идентификаторы claude/<provider>/<model> на /v1/models, чтобы обнаружение моделей шлюза Claude Code отображало модели, не относящиеся к Claude. Глобальный уровень трехступенчатого шлюза (переменная среды имеет приоритет над переопределением на панели управления). См. Конфигурация Claude Code. |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
Главный переключатель для псевдонимов шлюза no-think/<provider>/<model>. Включено (по умолчанию): /v1/models рекламирует вариант без размышлений для каждой подходящей модели Claude, способной к размышлениям, а идентификатор no-think/, отправленный в запросе, разрешается обратно в реальную модель с подавлением рассуждений. Отключено: варианты не рекламируются, а идентификатор no-think/ обрабатывается как любой другой неизвестный идентификатор модели. Параметр ModelSpec.noThinkingAlias для каждой модели по-прежнему применяется, пока это включено. |
|
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
Отключить генерацию вариантов уровня мышления (например, -low, -medium, -high) в каталоге /v1/models. |
|
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Включить адаптивные виртуальные полосы допуска для каждого клиента для диспетчеризации провайдера (#9654): всплеск одного клиента больше не приводит к ошибке 503 у другого. Переменная среды OMNIROUTE_CHAT_VIRTUAL_LANES имеет приоритет над этим переопределением на панели управления; изменения вступают в силу после перезапуска сервера. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Рекламировать идентификаторы зеркала <gateway-alias>/<model> на /v1/models для моделей, чей канонический владелец не имеет активных учетных данных, но маршрутизируется через сквозной шлюз с активными учетными данными. Предупреждение: добавляет записи каталога для всех клиентов при глобальном включении. |
|
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Включить обнаружение баланса для узлов, совместимых с агрегатором New-API / One-API / Sub2API. При включении совместимые узлы с установленным флагом агрегатора будут сообщать свой баланс на панели мониторинга и при маршрутизации с предварительной проверкой квоты. | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Продолжать вызовы инструментов, принадлежащих серверу, без потоковой передачи, пока модель не вернет ответ, пригодный для использования клиентом. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Статистика поиска и недавние поиски учитывают только провайдеров, у которых все еще есть активное соединение (бесключевые провайдеры, такие как duckduckgo-free, всегда учитываются). Отключение сохраняет каждую сохраненную строку поиска с идентификатором провайдера. | |
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Страницы провайдеров на панели мониторинга: показывать значок “Бесплатно” только для сигналов, которые провайдер учитывает — отменяет эвристику отображаемого имени, небулевы свободные поля и суффиксы :free для зарегистрированных провайдеров без документированного бесплатного уровня. Отключение сохраняет историческое правило значка. |
|
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
При агрегированных недоступных ответах 429/503 опускать Retry-After, если неизвестно конкретное будущее время повторной попытки (вместо синтетического 1с), добавлять error.retry_after_provenance (signal | none) и позволять комбинированным путям слива читать прозаические подсказки о повторной попытке из JSON и обычного текста вышестоящих тел. Поле появляется только в ответах, созданных unavailableResponse(); другие тела 429/503 остаются без изменений. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Когда целевой объект priority combo, помеченный как “только при исчерпании квоты”, останавливает combo по причине, которая явно не является квотой (открыт автоматический выключатель провайдера, пропуск по прогнозируемой задержке), отвечать 502 вместо похожего на квоту 503. Блокировка, период охлаждения, недоступность, исчерпание и ограничения параллелизма сохраняют 503. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Голый Mistral 401 ({"detail":"Unauthorized"}, без явного сигнала аутентификации) идентичен для отозванного ключа и для исчерпанной квоты. При включении он охлаждает соединение вместо того, чтобы парковать его как expired, не более 3 раз в час на соединение; следующее паркует его, так что отозванный ключ все равно сходится. По умолчанию отключено: каждый голый Mistral 401 паркует соединение как раньше. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Получает каталог моделей xAI в реальном времени для подключений xai-oauth с https://api.x.ai/v1/models с использованием токена носителя OAuth вместо замороженного статического начального значения. По умолчанию отключено: xai-oauth продолжает обслуживать статическое начальное значение без изменений. При любой ошибке разрешения обнаружение возвращается к начальному значению (не проверено, принимает ли x.ai носитель OAuth в этой конечной точке). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Позволяет автоматической очистке удалять завершенные (completed/failed/cancelled/expired) задания Batch API старше OMNIROUTE_BATCH_RETENTION_DAYS вместе с их построчными контрольными точками и очищать содержимое BLOB-объектов загруженных файлов после истечения их expires_at. По умолчанию отключено: каждая существующая установка сохраняет эти данные точно так же, как и раньше, пока оператор не включит эту функцию. Маршрут DELETE /api/v1/batches/delete-completed, запускаемый оператором, не затрагивается ни в одном из случаев — это отдельный, безусловный публичный контракт API. |
|
ANTIGRAVITY_ACCOUNT_LEASE_ENABLED |
boolean | false |
Резервирует выбранную учетную запись Antigravity для жизненного цикла потоковой передачи запроса, который ее выбрал, чтобы одновременная повторная попытка или передача учетных данных не могли повторно выбрать учетную запись, уже задействованную в активном потоке. Резервирование ограничено (подключением, вызываемой вышестоящей моделью), поэтому одна учетная запись все еще может обслуживать две разные модели одновременно. Когда каждая подходящая учетная запись уже арендована для этой модели, запрос возвращает структурированный 503 antigravity_pool_busy с ограниченным Retry-After вместо того, чтобы накапливаться на занятой учетной записи. По умолчанию отключено: выбор учетной записи остается точно таким же, как и раньше, и резервирование не производится. |
CLI (5)
Заголовок раздела «CLI (5)»| Ключ | Тип | По умолчанию | Перезапуск | Описание |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Включить режим совместимости для всех клиентов CLI. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Включить уровень совместимости псевдонимов моделей. | |
PRICING_SYNC_ENABLED |
boolean | false |
Включить автоматическую синхронизацию данных о ценах (также требуется переменная среды PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
После синхронизации модели провайдера автоматически (пере)записывать файлы профилей ~/.codex/*.config.toml из каталога в реальном времени. Никогда не изменяет активную/по умолчанию конфигурацию Codex. По умолчанию отключено. | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
После синхронизации модели провайдера автоматически (пере)записывать файлы профилей ~/.claude/profiles/<name>/settings.json Claude Code из каталога в реальном времени. Никогда не изменяет активную/по умолчанию конфигурацию Claude. По умолчанию отключено. |
Health (5)
Заголовок раздела «Health (5)»| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Отключить эндпоинт проверки состояния (health check) локального экземпляра. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Отключить проверку состояния валидации токенов. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Разрешить сетевой доступ в среде песочницы навыков (skills sandbox). |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
При сканировании состояния прокси, если цель отклонила запрос (401/403/429), это сбрасывает счетчик последовательных неудач прокси. По умолчанию выключено: отказ остается нейтральным (#10654). Ошибка 5xx в любом случае остается неопределенной; отказ никогда не удаляет, не отключает и не активирует прокси повторно. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Запускать проверку целостности/состояния БД при запуске после того, как сервер начнет принимать запросы (через setImmediate), вместо блокировки запуска до завершения проверки (#13717). По умолчанию выключено: запуск блокируется точно так же, как до этого PR. |
[!NOTE]
INPUT_SANITIZER_BLOCK_THRESHOLDи его устаревший псевдонимINJECTION_GUARD_BLOCK_THRESHOLDнастраивают режимblockдляINJECTION_GUARD_MODE, но они являются обычными переменными окружения, считываемымиsrc/shared/utils/injectionSeverity.ts, а не флагами функций (feature flags): для них нет переопределения в БД и переключателя в панели управления. См.ENVIRONMENT.md.
[!NOTE] Столбец
Restartотмечает флаги сrequiresRestart: true— значение сохраняется мгновенно, но вступает в силу только после перезагрузки процесса. Флаги типа Enum отклоняют любое значение вне разрешенного набора (проверяется на стороне сервера как вsetFeatureFlagOverride(), так и в обработчике RESTPUT).
Переключение флагов
Заголовок раздела «Переключение флагов»Панель управления
Заголовок раздела «Панель управления»Перейдите в Панель управления → Настройки → Флаги функций
(/dashboard/settings/feature-flags). Сетка
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
поддерживает:
- Поиск по ключу или описанию, а также фильтрацию по категории (плюс синтетический вид Требуется перезапуск).
- Переключатель для булевых флагов и выпадающий список для флагов перечисления
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Значок источника для каждого флага —
DB,ENVилиDEF— показывающий, откуда было получено эффективное значение. - Кнопка Сброс (показывается только для флагов с источником
DB) для отмены переопределения, и кнопка Сбросить все переопределения внизу. - Баннер Перезапустить сервер при изменении флага
requiresRestart.
REST API
Заголовок раздела «REST API»Все операции проходят через один маршрут:
src/app/api/settings/feature-flags/route.ts.
Каждый метод требует аутентифицированной сессии панели управления (401 в противном случае).
GET /api/settings/feature-flags
Заголовок раздела «GET /api/settings/feature-flags»Возвращает каждый флаг с его эффективным значением, источником и сводкой.
{ "flags": [ { "key": "REQUIRE_API_KEY", "label": "Require API Key", "description": "Require an API key for all incoming requests", "category": "security", "type": "boolean", "enumValues": null, "defaultValue": "false", "effectiveValue": "false", "source": "default", // "db" | "env" | "default" "requiresRestart": false, "warningLevel": "caution", }, // ... все 77 флагов ], "summary": { "total": 56, "active": 0, "inactive": 0, "overriddenByDb": 0, "overriddenByEnv": 0, },}PUT /api/settings/feature-flags
Заголовок раздела «PUT /api/settings/feature-flags»Установить или удалить одно переопределение. Тело: { key: string; value?: string }.
Опущение value удаляет переопределение (восстанавливая env / значение по умолчанию).
# Установить переопределение DBcurl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Удалить переопределение (без "value")curl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY"}'Ответ повторяет новые effectiveValue/source, previousValue/
previousSource и requiresRestart. Неизвестные ключи и значения перечисления
вне диапазона отклоняются с 400.
DELETE /api/settings/feature-flags
Заголовок раздела «DELETE /api/settings/feature-flags»Очищает все переопределения БД сразу, восстанавливая каждый флаг до его значения
из env / по умолчанию. Возвращает { cleared: <count>, message: "..." }.
[!NOTE] Флаги с
requiresRestart: trueвступают в силу только после перезагрузки процесса. Процесс перезапуска панели управления вызываетPOST /api/restart, а затем опрашиваетGET /api/health/pingдо тех пор, пока сервер не будет снова запущен.
Аварийный резерв при исчерпании бюджета
Заголовок раздела «Аварийный резерв при исчерпании бюджета»OMNIROUTE_EMERGENCY_FALLBACK (категория runtime, значение по умолчанию true) управляет
аварийным путём бесплатного резервирования в
open-sse/services/emergencyFallback.ts.
Когда он включён, запросы, исчерпавшие свой бюджет, направляются к бесплатному резервному
провайдеру/модели вместо немедленного завершения с ошибкой. Установите значение false (или 0) — через
переключатель на панели управления, переопределение в БД или переменную окружения
OMNIROUTE_EMERGENCY_FALLBACK — чтобы отключить это поведение и позволить запросам с исчерпанным
бюджетом завершаться с ошибкой. (Добавлено как переключатель на панели управления в PR #3741 / #3752.)
См. также
Заголовок раздела «См. также»- Справочник переменных окружения — для большинства флагов там задокументирована одноимённая переменная окружения (переопределение в БД имеет над ней приоритет).
src/shared/constants/featureFlagDefinitions.ts— единый источник достоверной информации обо всех флагах.src/shared/utils/featureFlags.ts— логика разрешения (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— хранение переопределений БД в пространстве имёнfeature_flagsтаблицыkey_value.
HagiCode
HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.
Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

- SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
- EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
- FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.