Feature Flags (Français)
Définition des indicateurs de fonctionnalité
Section intitulée « Définition des indicateurs de fonctionnalité »Un indicateur de fonctionnalité est un paramètre nommé (booléen ou énumération) dont la valeur peut être modifiée lors de
l’exécution et conservée dans la base de données, sans nécessiter le redéploiement du processus. Chaque
indicateur est décrit par un FeatureFlagDefinition comprenant une key, un label,
une description, une category, une defaultValue, un type et une indication requiresRestart.
Ordre de résolution
Section intitulée « Ordre de résolution »La valeur effective d’un indicateur est résolue par
resolveFeatureFlag() selon l’ordre de
priorité suivant (la priorité la plus élevée l’emporte) :
- Remplacement en base de données — une valeur stockée dans la table
key_valuesous l’espace de nomsfeature_flags(définie via le tableau de bord ou l’API REST). - Variable d’environnement —
process.env[<KEY>], si elle est définie et non vide. - Valeur par défaut de la définition — la
defaultValueprovenant defeatureFlagDefinitions.ts.
Un indicateur booléen est considéré comme activé lorsque sa valeur effective est "true",
"1" ou "yes" (voir isFeatureFlagEnabled()).
[!NOTE] La plupart des indicateurs disposent également d’une variable d’environnement correspondante portant le même nom, documentée dans
ENVIRONMENT.md. Le remplacement en base de données de l’indicateur est prioritaire sur cette variable d’environnement. Un indicateur avecrequiresRestart: trueest conservé immédiatement, mais n’est relu qu’au démarrage du processus — son basculement affiche une bannière « Redémarrer le serveur » dans le tableau de bord.
Catalogue des drapeaux
Section intitulée « Catalogue des drapeaux »77 drapeaux répartis en 6 catégories. La valeur par défaut est la définition par défaut — la valeur utilisée lorsqu’aucune surcharge de la base de données ni aucune variable d’environnement n’est présente.
Sécurité (10)
Section intitulée « Sécurité (10) »| Clé | Type | Par défaut | Description |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Exiger une clé API pour toutes les requêtes entrantes. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Activer la désinfection des entrées pour toutes les requêtes. |
INJECTION_GUARD_MODE |
enum | off |
Mode de protection contre l’injection de prompt. Valeurs : off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Masquer les informations personnelles identifiables (PII) des requêtes (indépendamment de INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Désinfecter les informations personnelles identifiables (PII) des réponses du fournisseur. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Mode de désinfection des réponses PII. Valeurs : redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Bloquer les requêtes sortantes vers les plages d’adresses IP privées/internes. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Permettre aux utilisateurs authentifiés du tableau de bord de révéler les clés API stockées au lieu de ne voir que les valeurs masquées. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Inclure le préfixe du compte dans les lignes de journal AUTH (par exemple, “Utilisation du compte <fournisseur> : abc12345…”). Désactivé par défaut afin que les identifiants de compte soient masqués des journaux de processus partagés/multi-locataires. Indépendant du mode débogage ; l’activation du mode débogage ne révèle pas cela. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Lorsque OIDC est activé, désactiver la connexion par mot de passe afin que les utilisateurs ne puissent s’authentifier que via l’authentification unique OIDC. Lorsqu’il est désactivé (par défaut), la connexion par mot de passe et OIDC sont tous deux disponibles. |
Réseau (19)
Section intitulée « Réseau (19) »| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | Active le mode furtif d’empreinte TLS. |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Permet aux routes /v1/audio/* d’utiliser des nœuds de fournisseur compatibles OpenAI hébergés en dehors de localhost. Désactivé par défaut — le routage audio vers un hôte distant modifie l’identité de sortie et doit être une décision explicite de l’opérateur. Les nœuds de bouclage sont toujours autorisés et non affectés. | |
RERANK_REMOTE_PROVIDER_NODES |
boolean | false |
Permet à POST /v1/rerank (et à l’étape de reranking en bouclage du moteur de mémoire) d’utiliser des nœuds de fournisseur compatibles OpenAI hébergés en dehors de localhost. Désactivé par défaut — le routage vers un hôte distant modifie l’identité de sortie et doit être une décision explicite de l’opérateur. Les nœuds de bouclage sont toujours autorisés ; les nœuds distants doivent également respecter la politique d’URL sortante du fournisseur. | |
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Lorsqu’aucun proxy n’est attribué à une connexion, sélectionne automatiquement le premier proxy fonctionnel du registre. Désactivé par défaut (sinon, tout proxy du registre devient un mécanisme de secours global — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Permet aux flux OAuth et de validation de fournisseur de contourner un proxy épinglé et de se connecter directement lorsque les vérifications préalables d’accessibilité du proxy échouent. Désactivé par défaut car cela peut modifier l’adresse IP de sortie. | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
En cas d’exception réseau (délai d’attente, connexion refusée/réinitialisée) pour un exécuteur de rotation multi-comptes, lorsque le compte défaillant n’a pas de proxy dédié, applique un court délai de récupération et ignore les autres comptes sans proxy pour le reste de la requête au lieu de réessayer chacun d’eux. Activé par défaut (sûr : pas de changement d’IP de sortie, réduit seulement la latence/le risque de délai de récupération sur les comptes à sortie partagée). Désactiver pour restaurer la propagation immédiate dès la première erreur sans proxy. | |
ROTATION_ATTRIBUTION |
boolean | false |
La rotation Opencode enregistre quel compte a servi ou a été ignoré (uniquement les identifiants masqués, jamais les identifiants de compte complets) et lie les entrées de journal de proxy à leur requête, afin que l’opérateur puisse distinguer les comptes ignorés des comptes inutilisés. Désactivé par défaut. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Les pools de proxy et la rotation par compte d’opencode cessent de réutiliser un proxy qui vient d’échouer (sonde TCP refusée, ou un 429 reçu via celui-ci) pendant une période par processus qui double à chaque répétition, jusqu’à un plafond. Aucun statut de proxy n’est écrit ; à chaque candidat mis de côté, le choix reste inchangé. Désactivé par défaut. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Affiche, sous un pool de proxy dans le tableau de bord, combien d’adresses IP de sortie observées ont servi ses membres au cours des dernières 24 heures et combien de connexions les ont utilisées. En lecture seule, calculé à partir du journal du proxy, jamais utilisé pour le routage. Désactivé par défaut. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Pour l’exécuteur OpenCode, surveille le premier octet du corps d’une réponse Responses en streaming (fenêtre : RESPONSES_FIRST_BYTE_TIMEOUT_MS, par défaut 15000). Un flux Responses 2xx qui reste silencieux au-delà de la fenêtre est considéré comme bloqué : le compte est mis en pause et la requête passe au compte suivant une seule fois ; un second blocage échoue rapidement. Désactivé par défaut : les flux bloqués conservent l’attente actuelle jusqu’au délai d’expiration de la préparation du flux. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
Exécuteur OpenCode : en cas de refus 403/451 indiquant un user_blocked (pas de géo, pas de rejet d’empreinte Cloudflare), met en pause le compte refusé et passe au compte suivant au maximum une fois par requête ; un second refus est renvoyé tel quel, sans marque de succès. Désactivé par défaut : contourner un blocage utilisateur en amont peut ressembler à de l’évasion et propager le signal à travers la flotte. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
Rotation OpenCode : après deux échecs transitoires consécutifs en amont (5xx ou un 400 vide), met en pause avant le compte suivant — 1,5s doublant à chaque échec supplémentaire, plafonné à 6s par pause et 10s par requête, ignoré en cas de déconnexion du client ; le corps échoué est libéré avant l’attente. Désactivé par défaut : le basculement reste immédiat. | |
OPENCODE_PARK_AND_RESUME |
boolean | false |
Rotation OpenCode : met la requête en attente après des 429 transitoires répétés (ou un nouveau marqueur de surcharge de pool) avec un battement de cœur, puis rejoue une étape limitée de jusqu’à 3 comptes séquentiels au lieu de distribuer à toute la flotte. Désactivé par défaut : chaque 429 passe au compte suivant exactement comme avant. | |
FLUSH_EMPTY_RETRY_ENABLED |
boolean | false |
Lors des tours de streaming traduits, lorsque le tour en amont ne contient aucun contenu utilisable (complétion de raisonnement uniquement ou zéro bloc de valeur), effectue des tentatives limitées via le chemin d’authentification normal (jusqu’à STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX) avant que quoi que ce soit ne soit exposé au client. Désactivé par défaut : les tours vides conservent le comportement actuel (200 vide ou 502 sans contenu). |
|
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
Rotation OpenCode : arrête la vague de comptes au premier 429 classé comme une véritable limite de débit (en-tête Retry-After analysable, ou un corps nommant une limite de débit/d’utilisation) et renvoie ce 429 amont inchangé. Les 429 non classés continuent de tourner. Désactivé par défaut : le niveau gratuit est limité par IP de sortie (#9611), donc chaque 429 tourne et une vague épuisée renvoie le dernier 429 amont. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Désactive la vérification du certificat TLS pour le proxy MITM. Danger. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Autorise les URL de fournisseurs pointant vers des réseaux privés/internes. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Autorise l’ajout/la validation de fournisseurs sur des adresses locales/privées (127.0.0.1, localhost, LAN). Activé par défaut (priorité locale) ; désactiver pour un blocage strict uniquement public. Les métadonnées cloud restent bloquées. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Active le mode fournisseur compatible Claude Code. |
Politiques (5)
Section intitulée « Politiques (5) »| Key | Type | Default | Description |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Mode d’application de la politique d’utilisation des outils. Valeurs : disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Active automatiquement la limitation de débit en fonction des modèles d’utilisation. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Ignore la vérification locale de la fenêtre de contexte / du nombre maximal de jetons d’entrée d’OmniRoute pour les requêtes directes à modèle unique. Les limites en amont s’appliquent toujours. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Rejette les requêtes avant l’envoi si le modèle cible ne dispose pas des capacités requises (vision, outils, sortie structurée, fenêtre de contexte). Protège les requêtes directes à fournisseur unique qui contournent le filtre de compatibilité de la couche combo. |
RADAR_ENABLED |
boolean | false |
Active le module OmniRoute Radar (écrans de flux de catalogue et synchronisation). Désactivé par défaut ; l’activation ne fait que déverrouiller l’interface utilisateur — la synchronisation des données reste une option distincte. |
Exécution (33)
Section intitulée « Exécution (33) »| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Génère et injecte des résumés de conversation lorsque le routage combiné change de modèle. Désactivez pour traiter les changements de modèle indépendamment et empêcher les requêtes de transfert en arrière-plan pour toutes les combinaisons existantes et futures. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Supprime les éléments de sortie de la phase de commentaire interne des flux de transmission de l’API Responses avant de les transférer aux clients. Désactivez pour recevoir les commentaires bruts en amont. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Applique les restrictions de portée sur l’accès aux outils MCP. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Compresse les descriptions des outils MCP pour réduire l’utilisation des jetons. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Active le traitement des tâches en arrière-plan à l’exécution. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Désactive tous les services en arrière-plan (actualisation des quotas, synchronisation, etc.). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
boolean | false |
Fait confiance aux filtres RTK au niveau du projet sans validation. | |
OMNIROUTE_ENABLE_LIVE_WS |
boolean | true |
✓ | Démarre le serveur WebSocket du tableau de bord en temps réel lors de l’importation (port 20132 par défaut). |
OMNIROUTE_CODEX_WS_ENABLED |
boolean | true |
Permet à Codex d’utiliser le transport Réponses-sur-WebSocket. Si désactivé, Codex utilise les Réponses HTTP. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
boolean | true |
Permet à Codex d’utiliser le transport JSON-RPC WebSocket du serveur d’applications local (codexTransport=app-server). Si désactivé, les connexions optant pour app-server reviennent aux autres transports de Codex. | |
OMNIROUTE_EMERGENCY_FALLBACK |
boolean | true |
Acheminer les requêtes dont le budget est épuisé vers le fournisseur/modèle de secours gratuit d’urgence. (Voir Secours d’urgence en cas de budget ci-dessous.) | |
STREAM_RECOVERY_ENABLED |
boolean | false |
Active la nouvelle tentative anticipée transparente pour les flux SSE en amont tronqués avant que les octets de réponse n’atteignent le client. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
boolean | false |
Permet à la récupération de flux de redemander et de reconstituer une réponse après que les octets ont déjà atteint le client. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
boolean | false |
Rend la continuation en milieu de flux sûre pour les appels d’outils : ne jamais reprendre un flux coupé une fois qu’un appel d’outil a été émis (en cours ou déjà terminé avec finish_reason tool_calls), et fermer après une continuation vide au lieu de dépenser tout le budget. Désactivé : comportement de publication. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
Bascule une fois vers une connexion sœur lorsqu’un flux SSE se ferme avant d’émettre une trame utile et que la tentative de nouvelle connexion bornée sur la même connexion est épuisée ; sans sœur utilisable, le STREAM_EARLY_EOF 502 original est renvoyé. Désactivé par défaut : le early-EOF reste terminal après la nouvelle tentative sur la même connexion. |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
Inclut des champs de nom conviviaux dans les réponses /v1/models. Désactivez pour les clients qui n’attendent que des ID de modèle. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Contrôle la façon dont les ID de modèle sont préfixés dans /v1/models. dual (par défaut) émet à la fois les préfixes d’alias et d’ID de fournisseur canoniques pour la rétrocompatibilité. alias n’émet que le préfixe d’alias court (par exemple, ds-web/model, pas deepseek-web/model). canonical n’émet que le préfixe d’ID de fournisseur complet. Valeurs : dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
Active la synchronisation périodique ELO du classement Arena AI pour les classements d’intelligence des modèles. | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Annonce les ID miroirs claude/<provider>/<model> sur /v1/models afin que la découverte de modèles de la passerelle Claude Code liste les modèles non-Claude. Niveau global de la porte à trois niveaux (l’environnement l’emporte sur la surcharge du tableau de bord). Voir configuration de Claude Code. |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
Interrupteur principal pour les alias de passerelle no-think/<provider>/<model>. Activé (par défaut) : /v1/models annonce une variante no-thinking pour chaque modèle Claude éligible capable de penser, et un ID no-think/ envoyé sur une requête se résout en le modèle réel avec le raisonnement supprimé. Désactivé : aucune variante n’est annoncée et un ID no-think/ est traité comme tout autre ID de modèle inconnu. L’option ModelSpec.noThinkingAlias par modèle (opt-in/opt-out) s’applique toujours lorsque cette option est activée. |
|
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
Désactive la génération de variantes de niveau de réflexion (par exemple, -low, -medium, -high) dans le catalogue /v1/models. |
|
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Active les voies d’admission virtuelles adaptatives par locataire pour la répartition des fournisseurs (#9654) : la rafale d’un locataire ne provoque plus de 503 pour un autre. La variable d’environnement OMNIROUTE_CHAT_VIRTUAL_LANES l’emporte sur cette surcharge du tableau de bord ; les modifications prennent effet au redémarrage du serveur. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Annonce les identifiants miroirs <gateway-alias>/<model> sur /v1/models pour les modèles dont le propriétaire canonique n’a pas d’identifiant actif mais qu’une passerelle de type passthrough avec un identifiant actif les route. Avertissement : ajoute des entrées de catalogue pour tous les clients lorsqu’activé globalement. |
|
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Active la détection de solde pour les nœuds compatibles avec les agrégateurs New-API / One-API / Sub2API. Lorsqu’activé, les nœuds compatibles avec le drapeau agrégateur défini rapporteront leur solde dans le tableau de bord et le routage de pré-vérification des quotas (quota-preflight). |
|
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Continue les appels d’outils appartenant au serveur (non-streaming) jusqu’à ce que le modèle renvoie une réponse utilisable par le client. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Les statistiques de recherche et les recherches récentes ne comptent que les fournisseurs ayant encore une connexion active (les fournisseurs sans clé comme duckduckgo-free comptent toujours). Désactivé conserve chaque ligne de recherche retenue avec un identifiant de fournisseur. |
|
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Pages des fournisseurs du tableau de bord : affiche le badge Free uniquement sur les signaux honorés par le fournisseur — abandonne l’heuristique du nom d’affichage, les champs free non-booléens et les suffixes :free sur les fournisseurs enregistrés sans niveau gratuit documenté. Désactivé conserve la règle historique du badge. |
|
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
Sur les réponses d’indisponibilité 429/503 agrégées, omet Retry-After lorsqu’aucun temps de nouvelle tentative futur concret n’est connu (au lieu d’une valeur synthétique de 1s), ajoute error.retry_after_provenance (signal | none), et permet aux chemins de drainage combo de lire les indices de nouvelle tentative en prose à partir des corps JSON et texte brut en amont. Le champ n’apparaît que sur les réponses construites par unavailableResponse(); les autres corps 429/503 restent inchangés. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Lorsqu’une cible combo priority marquée fallback-only-on-quota-exhaustion arrête le combo pour une cause qui n’est manifestement pas liée au quota (disjoncteur du fournisseur ouvert, saut par latence prédictive), répond par une 502 au lieu de la 503 ressemblant à un quota. Les arrêts pour verrouillage, refroidissement, indisponibilité, épuisement et limite de concurrence conservent la 503. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Une erreur Mistral 401 brute ({"detail":"Unauthorized"}, sans signal d’authentification explicite) est identique pour une clé révoquée et pour un quota épuisé. Lorsqu’activé, cela met la connexion en refroidissement au lieu de la marquer comme expired, au maximum 3 fois par heure et par connexion ; la suivante la parque, de sorte qu’une clé révoquée finit toujours par converger. Désactivé par défaut : chaque 401 Mistral brute parque la connexion comme auparavant. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Récupère le catalogue de modèles xAI en direct pour les connexions xai-oauth depuis https://api.x.ai/v1/models en utilisant le jeton porteur OAuth, au lieu de la graine statique figée. Désactivé par défaut : xai-oauth continue de servir la graine statique inchangée. En cas d’erreur de résolution, la découverte revient à la graine (non vérifié si x.ai accepte un jeton porteur OAuth à ce point de terminaison). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Permet au balayage de nettoyage automatique de supprimer les tâches d’API Batch terminées (achevées/échouées/annulées/expirées) plus anciennes que OMNIROUTE_BATCH_RETENTION_DAYS, ainsi que leurs points de contrôle par ligne, et d’effacer le contenu BLOB des fichiers téléchargés après leur expires_at. Désactivé par défaut : chaque installation existante conserve ces données exactement comme avant jusqu’à ce qu’un opérateur l’active. La route DELETE /api/v1/batches/delete-completed déclenchée par l’opérateur n’est pas affectée dans les deux cas — il s’agit d’un contrat d’API public distinct et inconditionnel. |
|
ANTIGRAVITY_ACCOUNT_LEASE_ENABLED |
boolean | false |
Réserve le compte Antigravity sélectionné pour le cycle de vie de streaming de la requête qui l’a choisi, de sorte qu’une nouvelle tentative concurrente ou le transfert d’informations d’identification ne puisse pas choisir un compte déjà engagé dans un flux en cours. La réservation est limitée à (connexion, modèle amont appelable), de sorte qu’un compte peut toujours servir deux modèles différents simultanément. Lorsque tous les comptes éligibles sont déjà loués pour ce modèle, la requête renvoie un 503 structuré antigravity_pool_busy avec un Retry-After borné au lieu de s’accumuler sur un compte occupé. Désactivé par défaut : la sélection de compte reste exactement la même qu’avant, et aucune réservation n’est effectuée. |
| Key | Type | Default | Restart | Description |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Active le mode de compatibilité pour tous les clients CLI. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Active la couche de compatibilité des alias de modèle. | |
PRICING_SYNC_ENABLED |
boolean | false |
Active la synchronisation automatique des données de tarification (nécessite également la variable d’environnement PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Après une synchronisation de modèle de fournisseur, (ré)écrit automatiquement les fichiers de profil ~/.codex/*.config.toml à partir du catalogue en direct. Ne modifie jamais la configuration Codex active/par défaut. Désactivé par défaut. | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Après une synchronisation de modèle de fournisseur, (ré)écrit automatiquement les fichiers de profil Claude Code ~/.claude/profiles/<name>/settings.json à partir du catalogue en direct. Ne modifie jamais la configuration Claude active/par défaut. Désactivé par défaut. |
Santé (5)
Section intitulée « Santé (5) »| Clé | Type | Par défaut | Description |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Désactive le point de terminaison de vérification de l’état (health check) de l’instance locale. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Désactive la vérification de l’état de la validation des jetons. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Active l’accès réseau dans l’environnement sandbox des skills. |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
Lors du balayage de l’état du proxy, une sonde refusée par la cible (401/403/429) réinitialise la série d’échecs consécutifs du proxy. Désactivé par défaut : un refus reste neutre (#10654). Une erreur 5xx reste non concluante dans les deux cas ; un refus ne supprime, ne désactive ni ne réactive jamais un proxy. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Exécute la vérification d’intégrité/d’état de la base de données au démarrage après que le serveur a commencé à accepter les requêtes (via setImmediate) au lieu de bloquer le démarrage jusqu’à ce qu’elle soit terminée (#13717). Désactivé par défaut : le démarrage bloque exactement comme avant cette PR. |
[!NOTE]
INPUT_SANITIZER_BLOCK_THRESHOLDet son alias héritéINJECTION_GUARD_BLOCK_THRESHOLDajustent le modeblockdeINJECTION_GUARD_MODE, mais ce sont de simples variables d’environnement lues parsrc/shared/utils/injectionSeverity.ts, et non des feature flags : ils n’ont pas de surcharge en base de données ni de bouton d’activation dans le tableau de bord. VoirENVIRONMENT.md.
[!NOTE] La colonne
Restartmarque les drapeaux avecrequiresRestart: true— la valeur est persistée instantanément mais ne prend effet qu’après le redémarrage du processus. Les drapeaux de type Enum rejettent toute valeur en dehors de leur ensemble autorisé (validé côté serveur à la fois danssetFeatureFlagOverride()et dans le gestionnaire RESTPUT).
Activation/Désactivation des drapeaux
Section intitulée « Activation/Désactivation des drapeaux »Tableau de bord
Section intitulée « Tableau de bord »Accédez à Tableau de bord → Paramètres → Drapeaux de fonctionnalités
(/dashboard/settings/feature-flags). La grille
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
prend en charge :
- La recherche par clé ou description, et le filtrage par catégorie (plus une vue synthétique Nécessite un redémarrage).
- Un interrupteur pour les drapeaux booléens et une liste déroulante pour les drapeaux énumérés
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Un badge de source par drapeau —
DB,ENV, ouDEF— indiquant d’où provient la valeur effective. - Un bouton Réinitialiser (affiché uniquement pour les drapeaux provenant de
DB) pour annuler la surcharge, et un bouton Réinitialiser toutes les surcharges en bas. - Une bannière Redémarrer le serveur lorsqu’un drapeau
requiresRestartest modifié.
API REST
Section intitulée « API REST »Toutes les opérations passent par une seule route :
src/app/api/settings/feature-flags/route.ts.
Chaque méthode nécessite une session de tableau de bord authentifiée (401 sinon).
GET /api/settings/feature-flags
Section intitulée « GET /api/settings/feature-flags »Renvoie chaque drapeau avec sa valeur effective, sa source et un résumé.
{ "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
Section intitulée « PUT /api/settings/feature-flags »Définit ou supprime une seule surcharge. Corps : { key: string; value?: string }.
Omettre value supprime la surcharge (restaurer l’environnement / la valeur par défaut).
# Set a DB overridecurl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Remove the override (no "value")curl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY"}'La réponse renvoie la nouvelle effectiveValue/source, la previousValue/
previousSource, et requiresRestart. Les clés inconnues et les valeurs d’énumération hors limites
sont rejetées avec 400.
DELETE /api/settings/feature-flags
Section intitulée « DELETE /api/settings/feature-flags »Efface toutes les surcharges de la base de données en une seule fois, restaurant chaque drapeau à sa valeur d’environnement / par défaut. Renvoie { cleared: <count>, message: "..." }.
[!NOTE] Les drapeaux avec
requiresRestart: truene prennent effet qu’après un rechargement du processus. Le flux de redémarrage du tableau de bord appellePOST /api/restartpuis interrogeGET /api/health/pingjusqu’à ce que le serveur soit de nouveau opérationnel.
Solution de repli d’urgence en cas d’épuisement du budget
Section intitulée « Solution de repli d’urgence en cas d’épuisement du budget »OMNIROUTE_EMERGENCY_FALLBACK (catégorie runtime, valeur par défaut true) contrôle le
mécanisme de repli gratuit d’urgence dans
open-sse/services/emergencyFallback.ts.
Lorsqu’il est activé, les requêtes qui épuisent leur budget sont acheminées vers un
fournisseur/modèle de repli gratuit au lieu d’échouer purement et simplement. Définissez-le sur false (ou 0) — via le
bouton d’activation/désactivation du tableau de bord, une valeur de remplacement dans la DB ou la variable d’environnement OMNIROUTE_EMERGENCY_FALLBACK
— pour désactiver ce comportement et laisser échouer les requêtes dont le budget est
épuisé. (Présenté sous forme de bouton d’activation/désactivation dans le tableau de bord dans les PR #3741 / #3752.)
Voir aussi
Section intitulée « Voir aussi »- Référence des variables d’environnement — la plupart des indicateurs disposent d’une variable d’environnement du même nom documentée ici (la valeur de remplacement définie dans la base de données est prioritaire).
src/shared/constants/featureFlagDefinitions.ts— source de référence pour chaque indicateur.src/shared/utils/featureFlags.ts— logique de résolution (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— persistance des valeurs de remplacement de la base de données dans l’espace de nomsfeature_flagsde la tablekey_value.
HagiCode
HagiCode est un espace de développement agentique qui associe workflows structurés, exécution multi-agent et vues Hero Dungeon.
Transformez vos idées en logiciels utiles grâce à un workflow agentique plus intelligent, rapide et agréable.

- SmartDes workflows structurés transforment une intention en parcours exécutable, de l’idée à la livraison.
- EfficientLes workflows multi-agents font avancer recherche, réalisation et revue en parallèle.
- FunHero Dungeon rend les longues sessions de code plus visuelles et collaboratives.