Feature Flags (Português (Brasil))
O que são feature flags
Seção intitulada “O que são feature flags”Uma feature flag é uma alternância nomeada (booleana ou enum) cujo valor pode ser alterado em
tempo de execução e persistido no banco de dados, sem exigir uma nova implantação do processo. Cada
flag é descrita por uma FeatureFlagDefinition com uma key, label,
description, category, defaultValue, type e uma indicação requiresRestart.
Ordem de resolução
Seção intitulada “Ordem de resolução”O valor efetivo de uma flag é resolvido por
resolveFeatureFlag() com esta
precedência (a mais alta prevalece):
- Substituição no banco de dados — um valor armazenado na tabela
key_valuesob o namespacefeature_flags(definido pelo painel ou pela API REST). - Variável de ambiente —
process.env[<KEY>], caso esteja definida e não esteja vazia. - Valor padrão da definição — o
defaultValuedefeatureFlagDefinitions.ts.
Uma flag booleana é considerada habilitada quando seu valor efetivo é "true",
"1" ou "yes" (consulte isFeatureFlagEnabled()).
[!NOTE] A maioria das flags também possui uma variável de ambiente correspondente com o mesmo nome, documentada em
ENVIRONMENT.md. A substituição da flag no banco de dados tem precedência sobre essa variável de ambiente. Uma flag comrequiresRestart: trueé persistida imediatamente, mas só é lida novamente na inicialização do processo — alterná-la exibe um banner “Reiniciar servidor” no painel.
Catálogo de Flags
Seção intitulada “Catálogo de Flags”77 flags em 6 categorias. Padrão é a definição padrão — o valor usado quando nem uma substituição de DB nem uma variável de ambiente estão presentes.
Segurança (10)
Seção intitulada “Segurança (10)”| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Exige uma chave de API para todas as requisições de entrada. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Habilita a sanitização de entrada para todas as requisições. |
INJECTION_GUARD_MODE |
enum | off |
Modo de proteção contra injeção de prompt. Valores: off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Redige PII de requisições (independente de INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Sanitiza PII de respostas do provedor. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Modo para sanitização de resposta de PII. Valores: redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Bloqueia requisições de saída para faixas de IP privadas/internas. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Permite que usuários autenticados do painel revelem chaves de API armazenadas em vez de apenas ver valores mascarados. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Inclui o prefixo da conta nas linhas de log de AUTENTICAÇÃO (por exemplo, “Usando a conta <provedor>: abc12345…”). Desabilitado por padrão para que os identificadores de conta sejam redigidos de logs de processo compartilhados/multi-tenant. Independente do Modo de Depuração; ativar o Modo de Depuração não revela isso. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Quando o OIDC está habilitado, desabilita o login por senha para que os usuários possam se autenticar apenas via OIDC Single Sign-On. Quando desabilitado (padrão), tanto o login por senha quanto o OIDC estão disponíveis. |
Rede (19)
Seção intitulada “Rede (19)”| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | Habilitar o modo furtivo (stealth mode) de impressão digital TLS (TLS fingerprint). |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Permitir que as rotas /v1/audio/* usem nós de provedores compatíveis com OpenAI hospedados fora do localhost. Desativado por padrão — o roteamento de áudio para um host remoto altera a identidade de saída (egress identity) e deve ser uma decisão explícita do operador. Nós de loopback são sempre permitidos e não são afetados. |
|
RERANK_REMOTE_PROVIDER_NODES |
boolean | false |
Permitir que POST /v1/rerank (e a etapa de reclassificação de loopback do mecanismo de memória) use nós de provedores compatíveis com OpenAI hospedados fora do localhost. Desativado por padrão — o roteamento para um host remoto altera a identidade de saída (egress identity) e deve ser uma decisão explícita do operador. Nós de loopback são sempre permitidos; nós remotos também devem passar pela política de URL de saída do provedor. |
|
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Quando nenhum proxy é atribuído a uma conexão, seleciona automaticamente o primeiro proxy funcional do registro. Desativado por padrão (caso contrário, qualquer proxy do registro torna-se um fallback global — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Permitir que os fluxos de validação de provedor e OAuth ignorem um proxy fixado e se conectem diretamente quando as pré-verificações de acessibilidade do proxy falharem. Desativado por padrão porque isso pode alterar o IP de saída (egress IP). | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
Em caso de exceção de rede (timeout, conexão recusada/redefinida) para um executor de rotação multi-conta, quando a conta com falha não possui um proxy dedicado, aplica um curto período de espera (cooldown) e pula outras contas sem proxy pelo restante da requisição, em vez de tentar cada uma delas. Ativado por padrão (seguro: sem alteração de IP de saída, apenas reduz a latência/risco de cooldown em contas de saída compartilhada). Desative para restaurar a propagação imediata no primeiro erro sem proxy. | |
ROTATION_ATTRIBUTION |
boolean | false |
A rotação do opencode registra qual conta atendeu ou foi pulada (apenas IDs mascarados, nunca IDs de conta completos) e vincula as entradas de log do proxy à sua requisição, para que o operador possa distinguir contas puladas de contas não utilizadas. Desativado por padrão. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Pools de proxy e a rotação por conta do opencode param de servir novamente um proxy que acabou de falhar (sonda TCP recusada ou um 429 recebido através dele) por um período por processo que dobra a cada repetição, até um limite. Nenhum status de proxy é gravado; com cada candidato deixado de lado, a escolha permanece inalterada. Desativado por padrão. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Mostra, sob um pool de proxy no painel, quantos IPs de saída observados atenderam seus membros nas últimas 24 horas e quantas conexões os utilizaram. Somente leitura, calculado a partir do log do proxy, nunca usado para roteamento. Desativado por padrão. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Para o executor OpenCode, observe o primeiro byte do corpo de uma resposta de Respostas transmitida (janela: RESPONSES_FIRST_BYTE_TIMEOUT_MS, padrão 15000). Um fluxo de Respostas 2xx que permanece silencioso após a janela é tratado como travado: a conta é resfriada e a requisição é rotacionada para a próxima conta uma vez; um segundo travamento falha rapidamente. Desativado por padrão: fluxos travados mantêm a espera atual até o tempo limite de prontidão do fluxo. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
Executor OpenCode: em um 403/451 que contenha uma recusa de user_blocked (não geo, não uma rejeição de impressão digital do Cloudflare), resfrie a conta recusada e rotacione para a próxima conta no máximo uma vez por requisição; uma segunda recusa é retornada como está, sem uma marca de sucesso. Desativado por padrão: contornar um bloqueio de usuário upstream pode parecer evasão e espalhar a sinalização pela frota. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
Rotação OpenCode: após duas falhas upstream transitórias consecutivas (5xx ou um 400 vazio), pause antes da próxima conta — 1.5s dobrando a cada falha adicional, limitado a 6s por pausa e 10s por requisição, ignorado em caso de desconexão do cliente; o corpo falho é liberado antes da espera. Desativado por padrão: o failover permanece imediato. | |
OPENCODE_PARK_AND_RESUME |
boolean | false |
Rotação OpenCode: estacione a requisição após 429s transitórios repetidos (ou um novo marcador de sobrecarga do pool) com um heartbeat, então reproduza uma perna limitada de até 3 contas sequenciais em vez de distribuir para toda a frota. Desativado por padrão: cada 429 rotaciona para a próxima conta exatamente como antes. | |
FLUSH_EMPTY_RETRY_ENABLED |
boolean | false |
Em turnos de streaming traduzidos, quando o turno upstream não contém conteúdo utilizável (conclusão apenas de raciocínio ou zero blocos valiosos), emita novas tentativas limitadas através do caminho de credenciais normal (até STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX) antes que algo seja exposto ao cliente. Desativado por padrão: turnos vazios mantêm o comportamento atual (200 vazio ou 502 com conteúdo vazio). |
|
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
Rotação OpenCode: pare a onda de contas no primeiro 429 classificado como um limite de taxa real (Retry-After analisável, ou um corpo que nomeia um limite de taxa/uso) e retorne esse 429 upstream inalterado. 429s não classificados continuam rotacionando. Desativado por padrão: o nível gratuito é limitado por IP de saída (#9611), então cada 429 rotaciona e uma onda exaurida retorna o último 429 upstream. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Desabilita a verificação de certificado TLS para o proxy MITM. Perigo. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Permite URLs de provedor que apontam para redes privadas/internas. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Permite adicionar/validar provedores em endereços locais/privados (127.0.0.1, localhost, LAN). Ativado por padrão (local-first); desative para bloqueio estrito apenas público. Metadados da nuvem permanecem bloqueados. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Habilita o modo de provedor compatível com Claude Code. |
Políticas (5)
Seção intitulada “Políticas (5)”| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Modo de aplicação da política de uso de ferramentas. Valores: disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Habilita automaticamente a limitação de taxa com base nos padrões de uso. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Ignora a verificação local da janela de contexto / token de entrada máximo do OmniRoute para solicitações diretas de modelo único. Os limites upstream ainda se aplicam. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Rejeita solicitações antes do despacho quando o modelo de destino não possui as capacidades necessárias (visão, ferramentas, saída estruturada, janela de contexto). Protege solicitações diretas de provedor único que ignoram o filtro de compatibilidade da camada combinada. |
RADAR_ENABLED |
boolean | false |
Habilita o módulo OmniRoute Radar (telas de feed do catálogo e sincronização). Desativado por padrão; a habilitação apenas desbloqueia a interface do usuário — a sincronização de dados permanece uma opção separada. |
Tempo de Execução (33)
Seção intitulada “Tempo de Execução (33)”| Key | Type | Default | Restart | Descrição |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Gerar e injetar resumos de conversas quando o roteamento combinado troca de modelos. Desative para tratar as trocas de modelo de forma independente e evitar solicitações de handoff em segundo plano para todos os combos existentes e futuros. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Remover itens de saída da fase de comentários internos dos fluxos de passagem da API Responses antes de encaminhar para os clientes. Desative para receber comentários brutos do upstream. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Aplicar restrições de escopo ao acesso à ferramenta MCP. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Comprimir descrições de ferramentas MCP para reduzir o uso de tokens. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Habilitar o processamento de tarefas em segundo plano em tempo de execução. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Desabilitar todos os serviços em segundo plano (atualização de cota, sincronização, etc). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
Confiar nos filtros RTK de nível de projeto sem validação. | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | Inicia o servidor WebSocket do painel em tempo real na importação (porta 20132 por padrão). |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Permite que o Codex use o transporte Responses-over-WebSocket. Quando desativado, o Codex retorna às Respostas HTTP. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Permite que o Codex use o transporte JSON-RPC WebSocket do servidor de aplicativos local (codexTransport=app-server). Quando desativado, as conexões que optaram pelo app-server retornam a outros transportes do Codex. | |
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
Encaminha solicitações com orçamento esgotado para o provedor/modelo de fallback de emergência gratuito. (Veja Fallback de Orçamento de Emergência abaixo.) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
Habilita a nova tentativa antecipada transparente para fluxos SSE upstream truncados antes que quaisquer bytes de resposta cheguem ao cliente. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
Permite que a recuperação de fluxo solicite novamente e junte uma resposta depois que os bytes já tiverem chegado ao cliente. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
Torna a continuação no meio do fluxo segura para chamadas de ferramenta: nunca retoma um fluxo cortado depois que uma chamada de ferramenta foi emitida (em andamento ou já finalizada com finish_reason tool_calls), e fecha após uma continuação vazia em vez de gastar todo o orçamento. Desativado: comportamento de lançamento. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
booleano | false |
Faz failover uma vez para uma conexão irmã quando um fluxo SSE fecha antes de emitir qualquer quadro útil e a tentativa limitada na mesma conexão é esgotada; sem uma conexão irmã utilizável, o 502 STREAM_EARLY_EOF original é retornado. Desativado por padrão: o early-EOF permanece terminal após a tentativa na mesma conexão. |
|
MODEL_CATALOG_INCLUDE_NAMES |
booleano | true |
Inclui campos de nome amigáveis para exibição nas respostas de /v1/models. Desative para clientes que esperam apenas IDs de modelo. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Controla como os IDs de modelo são prefixados em /v1/models. ‘dual’ (padrão) emite prefixos de alias e de ID de provedor canônico para compatibilidade com versões anteriores. ‘alias’ emite apenas o prefixo de alias curto (por exemplo, ds-web/model, não deepseek-web/model). ‘canonical’ emite apenas o prefixo de ID de provedor completo. Valores: dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
booleano | true |
Habilita a sincronização periódica do ELO do placar de líderes da Arena AI para classificações de inteligência de modelo. | |
EXPOSE_CC_DISCOVERY_ALIASES |
booleano | false |
Anuncia IDs espelho claude/<provider>/<model> em /v1/models para que a descoberta de modelos do gateway Claude Code liste modelos não-Claude. Nível global do portão de três níveis (a variável de ambiente prevalece sobre a substituição do painel). Veja configuração do Claude Code. |
|
NO_THINKING_ALIAS_ENABLED |
booleano | true |
Chave mestra para os aliases de gateway no-think/<provider>/<model>. Ativado (padrão): /v1/models anuncia uma variante “sem pensamento” para cada modelo Claude elegível capaz de pensar, e um ID no-think/ enviado em uma requisição é resolvido de volta para o modelo real com o raciocínio suprimido. Desativado: nenhuma variante é anunciada e um ID no-think/ é tratado como qualquer outro ID de modelo desconhecido. O opt-in/opt-out ModelSpec.noThinkingAlias por modelo ainda se aplica enquanto esta opção estiver ativada. |
|
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
booleano | false |
Desabilita a geração de variantes de nível de pensamento (por exemplo, -low, -medium, -high) no catálogo /v1/models. |
|
OMNIROUTE_CHAT_VIRTUAL_LANES |
booleano | false |
✓ | Habilita faixas de admissão virtuais adaptativas por locatário para despacho de provedor (#9654): o pico de um locatário não causa mais 503 em outro. A variável de ambiente OMNIROUTE_CHAT_VIRTUAL_LANES prevalece sobre esta substituição do painel; as alterações entram em vigor na reinicialização do servidor. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Anuncia IDs de espelho <gateway-alias>/<model> em /v1/models para modelos cujo proprietário canônico não possui credencial ativa, mas um gateway de passagem com uma credencial ativa os roteia. Aviso: adiciona entradas de catálogo para todos os clientes quando ativado globalmente. |
|
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Habilita a detecção de saldo para nós compatíveis com agregadores New-API / One-API / Sub2API. Quando ativado, nós compatíveis com a flag de agregador definida reportarão seu saldo no painel e no roteamento de pré-verificação de cota. | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Continua chamadas de ferramentas não-streaming de propriedade do servidor até que o modelo retorne uma resposta utilizável pelo cliente. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Estatísticas de pesquisa e pesquisas recentes contam apenas provedores que ainda possuem uma conexão ativa (provedores sem chave, como duckduckgo-free, sempre contam). Desativado mantém todas as linhas de pesquisa retidas com um ID de provedor. |
|
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Páginas de provedores do painel: mostra o selo ‘Grátis’ apenas em sinais que o provedor honra — descarta a heurística de nome de exibição, campos ‘grátis’ não-booleanos e sufixos :free em provedores registrados sem um nível gratuito documentado. Desativado mantém a regra histórica do selo. |
|
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
Em respostas agregadas 429/503 indisponíveis, omite Retry-After quando nenhum tempo de nova tentativa futuro concreto é conhecido (em vez de um 1s sintético), adiciona error.retry_after_provenance (signal | none), e permite que caminhos de drenagem combinados leiam dicas de nova tentativa em prosa de corpos JSON e de texto simples upstream. O campo aparece apenas em respostas construídas por unavailableResponse(); outros corpos 429/503 permanecem inalterados. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Quando um alvo combinado de prioridade marcado como ‘fallback-only-on-quota-exhaustion’ interrompe a combinação por uma causa que comprovadamente não é cota (disjuntor do provedor aberto, salto de latência preditiva), responde 502 em vez do 503 que parece cota. Bloqueio, resfriamento, indisponibilidade, exaustão e limites de concorrência mantêm 503. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Um Mistral 401 puro ({"detail":"Unauthorized"}, sem sinal de autenticação explícito) é idêntico para uma chave revogada e para cota esgotada. Quando ativado, ele resfria a conexão em vez de estacioná-la como expired, no máximo 3 vezes por hora por conexão; a próxima a estaciona, então uma chave revogada ainda converge. Desativado por padrão: cada Mistral 401 puro estaciona a conexão como antes. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Busca o catálogo de modelos xAI ao vivo para conexões xai-oauth de https://api.x.ai/v1/models usando o token de portador OAuth, em vez da semente estática congelada. Desativado por padrão: xai-oauth continua servindo a semente estática inalterada. Em qualquer erro de resolução, a descoberta retorna à semente (não verificado se x.ai aceita um portador OAuth neste endpoint). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Permite que a varredura de limpeza automática exclua trabalhos da API Batch em estado terminal (concluídos/falhados/cancelados/expirados) com mais de OMNIROUTE_BATCH_RETENTION_DAYS, juntamente com seus pontos de verificação por linha, e limpe o conteúdo BLOB de arquivos carregados após seu próprio expires_at. Desativado por padrão: cada instalação existente mantém esses dados exatamente como antes até que um operador opte por ativá-lo. A rota DELETE /api/v1/batches/delete-completed acionada pelo operador não é afetada de qualquer forma — é um contrato de API público separado e incondicional. |
|
ANTIGRAVITY_ACCOUNT_LEASE_ENABLED |
boolean | false |
Reserva a conta Antigravity selecionada para o ciclo de vida de streaming da requisição que a escolheu, para que uma nova tentativa concorrente ou a entrega de credenciais não possa escolher novamente uma conta já comprometida com um fluxo em andamento. A reserva é limitada a (conexão, modelo upstream chamável), então uma conta ainda pode servir dois modelos diferentes ao mesmo tempo. Quando todas as contas elegíveis já estão alugadas para esse modelo, a requisição retorna um 503 estruturado antigravity_pool_busy com um Retry-After limitado em vez de sobrecarregar uma conta ocupada. Desativado por padrão: a seleção de contas permanece exatamente como antes, e nenhuma reserva é feita. |
CLI (5)
Seção intitulada “CLI (5)”| Chave | Tipo | Padrão | Reiniciar | Descrição |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Habilita o modo de compatibilidade para todos os clientes CLI. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Habilita a camada de compatibilidade de alias de modelo. | |
PRICING_SYNC_ENABLED |
boolean | false |
Habilita a sincronização automática de dados de preços (também requer a variável de ambiente PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Após uma sincronização de modelo de provedor, reescreve automaticamente os arquivos de perfil ~/.codex/*.config.toml do catálogo ativo. Nunca altera a configuração ativa/padrão do Codex. Desativado por padrão. |
|
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Após uma sincronização de modelo de provedor, reescreve automaticamente os perfis de código Claude ~/.claude/profiles/<name>/settings.json do catálogo ativo. Nunca altera a configuração ativa/padrão do Claude. Desativado por padrão. |
Saúde (5)
Seção intitulada “Saúde (5)”| Chave | Tipo | Padrão | Descrição |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Desabilita o endpoint de verificação de saúde da instância local. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Desabilita a verificação de saúde de validação de token. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Habilita o acesso à rede no ambiente sandbox de habilidades. |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
Na varredura de saúde do proxy, uma sonda que o alvo recusou (401/403/429) redefine a sequência de falhas consecutivas do proxy. Desativado por padrão: uma recusa permanece neutra (#10654). Um 5xx permanece inconclusivo de qualquer forma; uma recusa nunca remove, desabilita ou reativa um proxy. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Executa a verificação de integridade/saúde do DB na inicialização depois que o servidor começa a aceitar requisições (via setImmediate) em vez de bloquear a inicialização até que seja concluída (#13717). Desativado por padrão: a inicialização bloqueia exatamente como antes deste PR. |
[!NOTA]
INPUT_SANITIZER_BLOCK_THRESHOLDe seu alias legadoINJECTION_GUARD_BLOCK_THRESHOLDajustam o modoblockdeINJECTION_GUARD_MODE, mas são variáveis de ambiente simples lidas porsrc/shared/utils/injectionSeverity.ts, não feature flags: eles não têm substituição de DB e nem alternância no painel. VejaENVIRONMENT.md.
[!NOTA] A coluna
Restartmarca flags comrequiresRestart: true— o valor é persistido instantaneamente, mas só entra em vigor após o processo ser recarregado. Flags de enumeração rejeitam qualquer valor fora do seu conjunto permitido (validado no lado do servidor tanto emsetFeatureFlagOverride()quanto no manipulador RESTPUT).
Alternando Flags
Seção intitulada “Alternando Flags”Navegue até Painel → Configurações → Feature Flags
(/dashboard/settings/feature-flags). A grade
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
suporta:
- Pesquisa por chave ou descrição, e filtro por categoria (além de uma visualização sintética Requer Reinício).
- Um alternador para flags booleanas e uma lista suspensa para flags de enumeração
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Um selo de origem por flag —
DB,ENV, ouDEF— mostrando de onde o valor efetivo veio. - Um botão Redefinir (mostrado apenas para flags com origem
DB) para remover a substituição, e um botão Redefinir Todas as Substituições na parte inferior. - Um banner Reiniciar Servidor quando uma flag
requiresRestarté alterada.
API REST
Seção intitulada “API REST”Todas as operações passam por uma única rota:
src/app/api/settings/feature-flags/route.ts.
Cada método requer uma sessão de painel autenticada (caso contrário, 401).
GET /api/settings/feature-flags
Seção intitulada “GET /api/settings/feature-flags”Retorna cada flag com seu valor efetivo, origem e um resumo.
{ "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", }, // ... all 77 flags ], "summary": { "total": 56, "active": 0, "inactive": 0, "overriddenByDb": 0, "overriddenByEnv": 0, },}PUT /api/settings/feature-flags
Seção intitulada “PUT /api/settings/feature-flags”Define ou remove uma única substituição. Corpo: { key: string; value?: string }.
Omitir value remove a substituição (restaurando o valor do ambiente / padrão).
# Define uma substituição de DBcurl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Remove a substituição (sem "value")curl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY"}'A resposta ecoa o novo effectiveValue/source, o previousValue/
previousSource, e requiresRestart. Chaves desconhecidas e valores de enumeração
fora do intervalo são rejeitados com 400.
DELETE /api/settings/feature-flags
Seção intitulada “DELETE /api/settings/feature-flags”Limpa todas as substituições do DB de uma vez, restaurando cada flag para seu valor
de ambiente / padrão. Retorna { cleared: <count>, message: "..." }.
[!NOTE] Flags com
requiresRestart: truesó entram em vigor após um recarregamento do processo. O fluxo de reinício do painel chamaPOST /api/restarte então consultaGET /api/health/pingaté que o servidor esteja novamente ativo.
Fallback Emergencial de Orçamento
Seção intitulada “Fallback Emergencial de Orçamento”OMNIROUTE_EMERGENCY_FALLBACK (categoria runtime, padrão true) controla o
caminho de fallback gratuito emergencial em
open-sse/services/emergencyFallback.ts.
Quando habilitado, as solicitações que esgotam seu orçamento são encaminhadas para um
provedor/modelo de fallback gratuito em vez de falharem imediatamente. Defina-o como false (ou 0) — por meio
do botão de alternância no dashboard, de uma substituição no DB ou da variável de ambiente
OMNIROUTE_EMERGENCY_FALLBACK — para desabilitar o comportamento e permitir que solicitações cujo orçamento
foi esgotado falhem. (Disponibilizado como um botão de alternância no dashboard nos PRs #3741 / #3752.)
Veja também
Seção intitulada “Veja também”- Referência de variáveis de ambiente — a maioria das flags possui uma variável de ambiente com o mesmo nome documentada ali (a substituição definida no DB tem precedência sobre ela).
src/shared/constants/featureFlagDefinitions.ts— fonte oficial de todas as flags.src/shared/utils/featureFlags.ts— lógica de resolução (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— persistência das substituições no DB no namespacefeature_flagsda tabelakey_value.
HagiCode
HagiCode é um ambiente de programação com agentes, fluxos estruturados, execução multiagente e visualizações Hero Dungeon.
Transforme ideias em software útil com um fluxo de trabalho com agentes mais inteligente, rápido e agradável.

- SmartFluxos estruturados transformam intenções em um caminho executável da ideia à entrega.
- EfficientFluxos multiagente mantêm pesquisa, implementação e revisão em andamento simultaneamente.
- FunO Hero Dungeon torna longas sessões de programação mais visuais e colaborativas.