Aller au contenu
OmniRoute source

Environment Variables Reference (Français)


Ces variables doivent être définies avant le premier démarrage. Sans elles, l’application refusera de démarrer ou fonctionnera avec des valeurs par défaut non sécurisées.

Variable Obligatoire Valeur par défaut Fichier source Description
JWT_SECRET Oui (aucune) src/lib/auth Signe/vérifie tous les cookies de session du tableau de bord (JWT). Générez-la avec openssl rand -base64 48.
API_KEY_SECRET Oui (aucune) src/lib/db/apiKeys.ts Clé de chiffrement AES pour les valeurs des clés API au repos dans SQLite. Générez-la avec openssl rand -hex 32.
INITIAL_PASSWORD Oui CHANGEME Script d’amorçage Définit le mot de passe initial d’administration du tableau de bord (correspond à la valeur par défaut de .env.example — volontairement non sécurisée afin d’imposer sa modification). Modifiez-le avant la première utilisation. Après vous être connecté, modifiez-le via Tableau de bord → Paramètres → Sécurité.
OMNIROUTE_WS_BRIDGE_SECRET Oui (production) (non définie) src/app/api/internal/codex-responses-ws/route.ts Secret partagé pour le pont WebSocket interne de Codex Responses. Authentifie les requêtes du pont entre le relais WS Electron/navigateur et OmniRoute. ⚠️ OBLIGATOIRE en production — lorsqu’il n’est pas défini, toutes les requêtes du pont WS sont rejetées. Générez-le avec openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID Non (SHA git) next.config.mjs, scripts/build/assembleStandalone.mjs Identifiant explicite d’invalidation du cache du service worker pour l’interface PWA (#11779) ; premier dans la chaîne de résolution.
SOURCE_VERSION Non (non définie) next.config.mjs, scripts/build/assembleStandalone.mjs Deuxième dans la chaîne — définie par les outils de construction PaaS (par exemple, de type Heroku) sur le commit déployé.
NEXT_PUBLIC_SW_BUILD_ID Non (dérivée) src/shared/components/PwaRegister.tsx Valeur publique définie lors de la compilation que le client utilise pour enregistrer /sw.js?v=… ; dérivée des deux valeurs ci-dessus, puis du SHA git.
OMNIROUTE_PEER_STAMP_TOKEN Non (automatique) (auto à chaque démarrage) src/server/authz/policies/management.ts Secret propre au processus prouvant que l’empreinte d’adresse IP de pair fiable provient du propre serveur HTTP d’OmniRoute (scripts/dev/peer-stamp.mjs). Le middleware authz n’accorde sa confiance à la localité de la requête (restriction des routes LOCAL_ONLY à la boucle locale/au LAN) que lorsque l’empreinte contient ce jeton. Généré automatiquement à chaque démarrage — laissez-le non défini ; ne le fixez que pour les configurations multiprocessus qui doivent partager l’empreinte.
Fenêtre de terminal
# Générer les quatre secrets en une seule fois :
echo "JWT_SECRET=$(openssl rand -base64 48)"
echo "API_KEY_SECRET=$(openssl rand -hex 32)"
echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"
echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"

[!CAUTION] Ne validez jamais dans le système de gestion de versions des fichiers .env contenant de véritables secrets. Le fichier .gitignore exclut déjà .env, mais vérifiez-le avant d’effectuer un push.


OmniRoute utilise SQLite (via better-sqlite3) pour toute la persistance. Ces variables contrôlent l’emplacement des données, leur chiffrement et leur cycle de vie.

Variable Valeur par défaut Fichier source Description
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Répertoire racine de la base de données SQLite, des sauvegardes et des fichiers de données. Remplacez cette valeur pour utiliser des volumes Docker ou des chemins personnalisés.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (non définie) src/lib/dataPaths.ts Échappatoire pour la protection DATA_DIR des tests/évaluations (#10428). Les tests et les sondes d’évaluation/d’affichage Node (-e/--eval/-p/--print, y compris les formes --eval=/--print=) sans DATA_DIR sont redirigés vers un répertoire temporaire jetable afin qu’ils ne puissent pas ouvrir la véritable base de données de l’opérateur ; définissez cette variable sur 1 pour réutiliser le véritable répertoire.
OMNIROUTE_BUILD_SHA (non définie) src/lib/monitoring/buildSha.ts SHA Git de l’artefact en cours d’exécution. Inscrit par npm run build:release ; peut être injecté dans les conteneurs livrés sans la sentinelle dist/BUILD_SHA. Exposé sous la forme system.buildSha sur /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Référence par rapport à laquelle le contrôle de provenance de l’artefact empaqueté vérifie le SHA de la build (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (non définie) scripts/build/buildProvenance.ts Définissez cette variable sur 1 pour autoriser l’empaquetage d’une build dont le SHA ne se trouve pas sur la branche de publication, en l’enregistrant comme version canary délibérée au lieu de faire échouer le contrôle (#10427).
OMNIROUTE_SMOKE_API_KEY (non définie) scripts/ops/deploy-canary.mjs Clé API de la sonde de vérification rapide du déploiement canary, envoyée sous la forme Authorization: Bearer sur /v1/chat/completions. Utilisée uniquement par le script de déploiement (#10429), jamais par le serveur. Sans rapport avec les variables OMNIROUTE_SMOKE_* du banc de vérification rapide en CLI à activation explicite (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS dans tests/integration/upstream-cli-smoke.int.test.ts) — voir Intégrations CLI → Vérification rapide réelle.
OMNIROUTE_BUILDING (non définie) src/lib/buildPhase.ts Signal de phase de build (#10060) : défini sur 1 par scripts/build/build-next-isolated.mjs et hérité par chaque worker de build lancé, afin que la couche de base de données renvoie un stub sans opération au lieu de charger l’extension native better-sqlite3 (qui interrompt le worker à sa fermeture). Jamais défini pour le serveur en cours d’exécution.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Définissez cette variable sur 1 pour ignorer la vérification préalable facultative des dépendances natives pour les arborescences de dépendances intégrées inhabituelles. Cela ne permet pas de compiler en cas de dépendance manquante ; utilisez cette option uniquement lorsque les dépendances natives sont fournies hors bande.
OMNIROUTE_DATA_DIR (non définie) open-sse/executors/promptql/threadSticky.ts Alias de secours pour DATA_DIR, vérifié uniquement lorsque DATA_DIR n’est pas définie. Utilisé pour localiser le cache sur disque des sessions persistantes par fil d’exécution de PromptQL (<dir>/promptql-thread-sessions.json) ; si aucune des deux variables n’est définie, le cache reste uniquement en mémoire (il n’est pas conservé entre les redémarrages).
OMNIROUTE_PLUGINS_DIR (non définie) src/lib/plugins/scanner.ts Répertoire lu par le scanner de plugins à l’exécution — et répertoire racine dans lequel le gestionnaire de plugins effectue les installations — remplaçant la valeur par défaut dérivée du répertoire personnel (#11827). Faites-le pointer vers l’arborescence de plugins montée par liaison dans Docker/K8s au lieu de déplacer HOME uniquement pour relocaliser le chemin d’analyse (HOME régit également tous les autres comportements relatifs au répertoire personnel). Non définie = ~/.omniroute/plugins, ou /tmp/.omniroute/plugins lorsque le processus n’exporte aucun répertoire personnel — ce qui élimine l’absence silencieuse de détection. Le répertoire résolu est journalisé une fois au démarrage sous la forme scanner.dir_resolved, avec l’entrée retenue. Côté serveur uniquement : les plugins de commandes CLI conservent leur propre OMNIROUTE_PLUGIN_PATH (section 9).
STORAGE_ENCRYPTION_KEY (vide = désactivé) src/lib/db/encryption.ts Clé AES pour le chiffrement au repos de l’intégralité de la base de données SQLite. Générez-la avec openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Étiquette de version de la clé de chiffrement. Incrémentez-la lors d’une rotation de clé afin de permettre le déchiffrement des anciennes sauvegardes.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Lorsque la valeur est true, ignore les sauvegardes régulières/avant écriture du fichier SQLite (enregistrement/suppression des tarifs models.dev, écritures des paramètres). Les sauvegardes manuelles et celles précédant une restauration sont toujours effectuées. Cela ne désactive pas l’instantané de sécurité durable obligatoire du gestionnaire de migrations ni la protection contre les migrations massives pour une base de données persistante existante. Les sauvegardes non manuelles sont limitées à une au maximum toutes les 60 minutes. L’option Paramètres → Stockage du tableau de bord permet de désactiver indépendamment la sauvegarde automatique régulière.
OMNIROUTE_CRYPT_KEY (non définie) src/lib/db/encryption.ts Alias hérité de STORAGE_ENCRYPTION_KEY. Accepté comme solution de repli lorsque la variable principale est absente.
OMNIROUTE_API_KEY_BASE64 (non définie) src/lib/db/encryption.ts Alias hérité (forme encodée en Base64) accepté comme solution de repli. Décodé automatiquement avant utilisation.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (non définie) src/lib/db/core.ts Remplace l’intervalle de vérification périodique de l’état de SQLite (ms). Lorsque cette variable n’est pas définie, les valeurs par défaut sont dérivées de NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS (supprimée) src/lib/db/walMaintenance.ts Supprimée. Un appel périodique à chaud de wal_checkpoint(TRUNCATE) peut invalider le mappage partagé de wal-index et provoquer l’arrêt brutal du processus avec SIGBUS (#13973) ; le planificateur n’existe donc plus. La variable est sans effet : une valeur positive consigne une seule fois un avertissement d’obsolescence, tandis que 0 ou une variable non définie ne produit aucun message. Le WAL est maintenu par des points de contrôle PASSIVE (ci-dessous) et tronqué par le point de contrôle lors de l’arrêt.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 min) src/lib/db/walMaintenance.ts Remplace l’intervalle fréquent de wal_checkpoint(PASSIVE) (ms). Maintient un faible nombre de trames WAL en attente afin que les points de contrôle restent rapides et que la taille du fichier WAL demeure limitée entre les troncatures effectuées lors des arrêts. 0 désactive cette fonction.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Lorsqu’une exécution PASSIVE détecte que le fichier WAL dépasse cette taille, exécute wal_checkpoint(RESTART) afin que le WAL reparte de zéro sans réécrire le wal-index mappé. Les points de contrôle à chaud en mode troncature ont été supprimés (voir la ligne OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS).
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Définissez cette variable sur 1/true/yes/on pour quitter le processus après le maintien d’une pression critique sur les ressources pendant OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, afin de permettre à un superviseur (systemd Restart=always, politique de redémarrage Docker) de relancer un processus sain au lieu de renvoyer indéfiniment des erreurs 503.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 min) open-sse/utils/resourcePressure.ts Durée pendant laquelle la pression critique doit persister avant le déclenchement de la sortie avec auto-redémarrage.
OMNIROUTE_SQLJS_WASM_PATH (détection automatique) src/lib/db/adapters/sqljsAdapter.ts Chemin explicite (absolu ou relatif au répertoire de travail courant) vers sql-wasm.wasm lors de l’utilisation de l’adaptateur de repli WASM sql.js. Lorsque cette variable n’est pas définie, le chemin est détecté automatiquement à partir des dépendances des packages et des structures de répertoires candidates.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Nombre de jours pendant lesquels les points de contrôle, les fichiers d’entrée/de sortie/d’erreur référencés et la ligne d’une tâche Batch API terminale (terminée/échouée/annulée/expirée) sont conservés avant leur suppression par le nettoyage automatique. Ne prend effet qu’une fois BATCH_AND_FILE_AUTO_CLEANUP_ENABLED activée ; correspond à la période de conservation des sorties de la Batch API d’OpenAI. N’affecte pas la route DELETE /api/v1/batches/delete-completed déclenchée par l’opérateur, qui reste inconditionnelle (sans filtre d’ancienneté) par conception.
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Lorsque la valeur est true, autorise le nettoyage automatique à supprimer les tâches Batch API terminales (ainsi que leurs points de contrôle) ayant dépassé OMNIROUTE_BATCH_RETENTION_DAYS, et à effacer le contenu BLOB des fichiers téléversés ayant dépassé leur propre valeur expires_at. Désactivée par défaut : chaque installation existante conserve ces données exactement comme auparavant jusqu’à ce qu’un opérateur choisisse d’activer cette fonction. Il s’agit également d’un indicateur de fonctionnalité modifiable depuis le tableau de bord — voir docs/reference/FEATURE_FLAGS.md → Exécution.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Définissez sur 1 pour ignorer entièrement le contrôle d’intégrité de la base de données au démarrage. Utile pour les tâches de courte durée et les tests d’intégration.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Définissez sur 1 pour forcer l’activation de la boucle de contrôle d’intégrité de la base de données, même lorsqu’elle serait normalement ignorée (par exemple, pour les tâches de courte durée).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Définissez sur 1 pour ignorer le préchauffage de l’environnement d’exécution natif pendant npm install. Utile dans les installations CI/sans interface graphique où sqlite est déjà compilé.
OMNIROUTE_MIGRATIONS_DIR (détection automatique) src/lib/db/migrationRunner.ts Remplacez le répertoire analysé par l’outil d’exécution des migrations. Utile lors de la livraison de migrations groupées dans des versions personnalisées.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (non défini) src/lib/db/migrationRunner/extraDirs.ts Répertoires de migration supplémentaires sous forme d’entrées namespace=dir séparées par le délimiteur de chemin de la plateforme (par exemple ee=/opt/app/enterprise/db/migrations). Les fichiers qui s’y trouvent sont enregistrés sous la forme <namespace>-<number>, afin qu’une distribution fournissant ses propres migrations n’entre jamais en conflit avec les emplacements numériques en amont. Une entrée mal formée, un espace de noms non valide ou un répertoire manquant provoque une erreur au démarrage au lieu d’ignorer silencieusement le schéma.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Seuil de sécurité pour les migrations en attente en masse (#3416). Le démarrage est interrompu si plus de ce nombre de migrations sont en attente sur une base de données existante (protection contre l’effacement d’une table de suivi). Augmentez-le pour restaurer une ancienne sauvegarde ; définissez-le sur 0 pour désactiver la vérification.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Répertoire de travail pour la barrière de validation de version check:install-upgrade. Il nécessite environ 12 Go (deux arborescences d’installation d’environ 3 Go chacune, plus l’archive tar), et ne doit donc pas être exécuté sur un petit tmpfs — sur le runner auto-hébergé, /tmp est un tmpfs de 12 Go soutenu par la RAM, que la barrière de validation a saturé, tronquant ainsi le package.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (valeur par défaut dans le code) src/lib/spend/batchWriter.ts Intervalle de vidage (ms) pour l’outil d’écriture groupée des dépenses/coûts. Des valeurs plus faibles réduisent le regroupement des écritures ; des valeurs plus élevées réduisent les conflits d’accès à la base de données.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (valeur par défaut dans le code) src/lib/spend/batchWriter.ts Nombre maximal d’entrées de dépenses mises en mémoire tampon avant un vidage forcé. Augmentez-le pour les déploiements à QPS élevé ; réduisez-le lorsque la limitation de la mémoire est prioritaire.
OMNIROUTE_PROXY_FETCH_DEBUG (non défini) open-sse/utils/proxyFetch.ts Définissez sur "true" pour émettre les journaux de débogage [ProxyFetch] sur le chemin de relais Vercel. Désactivé par défaut pour éviter de divulguer des indices de routage.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Définissez sur "true" ou "1" pour inclure les adresses IP du client/de sortie et le préfixe du compte dans la ligne détaillée [ProxyEgress] du journal de processus. Désactivé par défaut afin que le journal de processus ne divulgue ni les adresses IP ni le préfixe du compte.
OMNIROUTE_DEBUG (non défini) bin/cli/commands/quota.mjs Définissez sur 1 pour afficher dans stderr les diagnostics de durée par requête ([omniroute] GET <path> completed in Nms) à partir des commandes de quota de la CLI.
OMNIROUTE_HEALTHCHECK_PATH (automatique) scripts/dev/healthcheck.mjs Chemin explicite interrogé par le contrôle d’intégrité du conteneur. Lorsqu’il n’est pas défini, la sonde le déduit de OMNIROUTE_BASE_PATH ; le définir réactive le point de terminaison de surveillance approfondie.
OMNIROUTE_DEBUG_COMPLETION (non défini) bin/cli/commands/completion.mjs Définissez sur n’importe quelle valeur non vide pour émettre les diagnostics [omniroute completion] à partir des chemins de cache de complétion de shell de la CLI (lecture/actualisation/écriture). Désactivé par défaut — les échecs de ces caches sont silencieux afin qu’un cache manquant/corrompu n’empêche jamais la complétion par tabulation.
BATCH_RETRY_DURATION_MS 86400000 (24 h) open-sse/services/batchProcessor.ts Fenêtre maximale de nouvelle tentative pour les éléments individuels d’un lot (ms). Les éléments qui dépassent cette durée sont marqués comme ayant échoué.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Délai de base (ms) pour le backoff exponentiel lors des nouvelles tentatives sur les éléments d’un lot.
BATCH_BACKOFF_MAX_MS 3600000 (1 h) open-sse/services/batchProcessor.ts Limite (ms) du backoff exponentiel entre les nouvelles tentatives sur les éléments d’un lot.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Nombre maximal de lots traités simultanément. Augmentez cette valeur pour accroître le débit ; gardez-la basse pour éviter une avalanche de dépassements de limite de débit.

[!IMPORTANT] Avant de modifier une base de données persistante existante, l’outil de migration publie un instantané complet, adressé par son contenu, sous DATA_DIR/db_backups/. La publication nécessite un système de fichiers prenant en charge les liens physiques sans écrasement sur un même système de fichiers, ainsi que la synchronisation durable des fichiers. Les hôtes POSIX nécessitent également la synchronisation des répertoires ; sous Windows, Node peut refuser les descripteurs de répertoire, de sorte qu’OmniRoute vide le fichier publié et traite la synchronisation des entrées de répertoire comme une opération au mieux. Si le DATA_DIR monté ne peut pas fournir ces garanties, le démarrage échoue de manière sécurisée avant l’application d’une migration. Déplacez DATA_DIR vers un volume prenant en charge ces primitives ; n’utilisez pas DISABLE_SQLITE_AUTO_BACKUP pour contourner la sécurité des migrations.

Scénario Configuration
Développement local Conservez toutes les valeurs par défaut. La base de données se trouve dans ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + montez un volume sur /data.
Chiffrement au repos Définissez STORAGE_ENCRYPTION_KEY + conservez des sauvegardes de la clé ! La perdre = perdre les données.
CI/Tests DATA_DIR=/tmp/omniroute-test — éphémère, aucun chiffrement nécessaire.

Variable Valeur par défaut Fichier source Description
PORT 20128 src/lib/runtime/ports.ts Port principal pour l’interface du tableau de bord et les points de terminaison de l’API (mode à port unique).
OMNIROUTE_BASE_PATH (vide = racine) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Sous-chemin d’URL permettant de servir OmniRoute derrière un proxy inverse (définit le basePath de Next.js ; les redirections d’authentification tiennent compte du basePath). Par ex. /omniroute. Dans Docker, la valeur est intégrée lors de docker build (ARG OMNIROUTE_BASE_PATH) ; les images racine précompilées peuvent appliquer une autre valeur d’exécution une fois au démarrage du conteneur, avant le lancement de Next.js. Définissez NEXT_PUBLIC_BASE_URL sur l’origine publique incluant le même sous-chemin.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (vide = racine) src/shared/hooks/useDisplayBaseUrl.ts Copie de OMNIROUTE_BASE_PATH visible par le navigateur, intégrée lors de la compilation afin que l’affichage du point de terminaison du tableau de bord indique https://host/omniroute/v1 au lieu de https://host/v1. Utilise OMNIROUTE_BASE_PATH comme valeur de repli si elle n’est pas définie. Recompilez après toute modification (le basePath de Next est défini à la compilation).
DASHBOARD_ALLOW_EMBED (non défini = jamais intégrable dans un cadre) next.config.mjs, scripts/build/dashboardEmbed.mjs Autorise explicitement l’intégration des pages HTML dans une iframe. Lorsque cette variable n’est pas définie, chaque route fournit frame-ancestors 'none' + X-Frame-Options: DENY. Définissez-la sur vscode pour servir les pages (tableau de bord, connexion, documentation, accueil) avec frame-ancestors 'self' vscode-webview: et sans X-Frame-Options, afin que le navigateur simple de VS Code puisse les afficher (mode dashboardOpen: "editor" d’OmniCopilot). La surface de l’API (/api, /v1, /v1beta, /a2a, /healthz, alias de niveau racine) conserve dans tous les cas les en-têtes stricts. Seule la valeur vscode est reconnue — 1/true ne l’activent pas. Défini à la compilation : recompilez après toute modification (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode pour les images ; la définition de cette variable sur une installation précompilée n’a aucun effet).
API_PORT (non défini) src/lib/runtime/ports.ts Lorsqu’elle est définie, sert l’API proxy /v1/* sur ce port distinct.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Adresse d’écoute du port de l’API.
DASHBOARD_PORT (non défini) src/lib/runtime/ports.ts Lorsqu’elle est définie, sert l’interface du tableau de bord sur ce port distinct.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (désactivé) src/sse/utils/backpressure.ts Limite le nombre de connexions de discussion simultanées en cours ; les requêtes dépassant la limite reçoivent 503 avec Retry-After. Un entier positif active la protection ; une valeur non définie ou 0 la désactive.
OMNIROUTE_INSTANCE_ID (non défini) src/shared/resilience/peerRouting.ts Identifiant stable et unique de cette passerelle lors du chaînage d’instances OmniRoute. Active la détection des boucles entrantes entre homologues. Caractères autorisés : lettres, chiffres, ., _, : et - ; 64 caractères au maximum.
OMNIROUTE_PEER_URLS (non défini) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts Liste séparée par des virgules d’URL de base OmniRoute pouvant recevoir X-OmniRoute-Peer-Trace. Seules les URL en amont explicitement autorisées reçoivent les métadonnées d’homologue ; tous les autres fournisseurs restent inchangés.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Nombre maximal d’instances OmniRoute précédemment visitées accepté dans une requête chaînée (1-32). Les instances répétées ou un budget épuisé renvoient HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Port publié côté hôte pour le tableau de bord en mode de production Docker.
PROD_API_PORT 20131 docker-compose.prod.yml Port publié côté hôte pour l’API en mode de production Docker.
OMNIROUTE_PORT (non défini) src/lib/runtime/ports.ts Prend le pas sur PORT lors de l’exécution dans Electron ou d’autres enveloppes.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Port du serveur WebSocket de surveillance en temps réel.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Adresse d’écoute du serveur WebSocket en temps réel. Définissez-la sur 0.0.0.0 pour l’exposer sur le réseau local (configurez également LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (non défini) src/server/ws/liveServer.ts Origines supplémentaires, séparées par des virgules, autorisées à ouvrir un WebSocket en temps réel. Les origines du tableau de bord en boucle locale sont déjà autorisées par défaut.
LIVE_WS_ALLOWED_HOSTS (non défini) src/server/ws/liveServerAllowList.ts Noms d’hôte supplémentaires, séparés par des virgules, autorisés pour les origines WebSocket en temps réel. Contrairement à LIVE_WS_ALLOWED_ORIGINS (URL d’origine complètes), seules les parties correspondant aux hôtes sont comparées — utile pour les configurations LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (non défini) src/hooks/useLiveDashboard.ts URL publique du WebSocket du tableau de bord en temps réel (côté navigateur). Définissez-la lorsque le serveur WS est placé derrière un proxy inverse ou un tunnel Cloudflare (par ex. wss://ws.my-ai.com/live-ws) ; le navigateur s’y connecte à la place de ws://hostname:20132. La partie chemin est également utilisée comme chemin de mise à niveau WebSocket (valeur par défaut : /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts et scripts/start-ws-server.mjs Définissez-la sur 0 ou false pour désactiver le serveur WebSocket en temps réel (activé par défaut et lié à l’interface de boucle locale). Option de CI/banc d’essai qui désactive le script auxiliaire WebSocket autonome en temps réel.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Limite de débit du relais par couple (jeton, IP), en requêtes/minute. En mémoire, par instance. 0 ou une valeur négative désactive le contrôle basé sur l’IP (la limite en base de données par jeton reste applicable).
NODE_ENV production Noyau de Next.js Contrôle la verbosité de la journalisation, la mise en cache, l’exposition des détails des erreurs et les optimisations de Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — valeur par défaut du code) package.json / Next.js 16 Turbopack est le bundler par défaut pour npm run dev et npm run build (compilations 2 à 3 fois plus rapides, selon les mesures). Définissez cette variable sur 0 pour revenir à webpack sous Windows, en cas d’incompatibilités avec les liaisons natives ou le bundler, ou sur les machines disposant de peu de RAM — les compilations de production Turbopack avec cette série de versions de Next.js (16.2.x) sont connues en amont pour atteindre des pics de consommation mémoire nettement supérieurs à ceux de webpack sur de grands graphes de modules (le correctif d’éviction mémoire de Turbopack dans Next 16.3 n’est pas encore stable) ; la solution de repli webpack atteint des pics bien plus faibles. Voir #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (non défini) src/lib/db/core.ts / src/lib/db/healthCheck.ts Définissez-la sur 1 pour ignorer le contrôle d’intégrité de SQLite au démarrage. Utile pour accélérer le démarrage avec de grandes bases de données.
NOTIFY_SOCKET (non défini) systemd (protocole sd_notify) Définie par systemd lorsque le processus s’exécute dans une unité de service avec intégration sd_notify ; OmniRoute la lit (voir OMNIROUTE_DISABLE_SD_NOTIFY) pour envoyer des notifications READY/WATCHDOG. Ne doit jamais être définie par l’utilisateur.
OMNIROUTE_DISABLE_SD_NOTIFY (non défini) scripts/dev/systemd-notify.mjs Définissez-la sur 1 pour désactiver sd_notify de systemd (Type=notify / WatchdogSec=), même lors de l’exécution dans une unité systemd. Dans tous les cas, le notificateur ne fait rien en dehors de systemd.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Intervalle (ms) du planificateur de vérification de l’état des identifiants en arrière-plan. Minimum : 10000 (10 s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts Durée de vie (ms) de l’état d’intégrité des identifiants mis en cache.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Définissez-la sur 1 ou true pour désactiver les tests périodiques en arrière-plan des connexions aux fournisseurs. Les fournisseurs de recherche (SEARCH_VALIDATOR_CONFIGS dans src/lib/providers/validation/searchProviders.ts, par ex. tavily-search) sont toujours exclus du balayage — leur « validation » est une véritable requête en amont facturée, ils ne font donc jamais l’objet de contrôles d’intégrité planifiés (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Adresse d’écoute du serveur de développement/démarrage Next.js. Remplace la valeur par défaut 0.0.0.0 lorsqu’elle est définie.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Adresse d’écoute utilisée par l’exécuteur Playwright lors du lancement de Next.js. La valeur par défaut est 127.0.0.1 pour garantir des tests hermétiques. Ne l’utilisez pas pour omniroute serve — utilisez plutôt OMNIROUTE_SERVER_HOST (les shells POSIX définissent automatiquement HOSTNAME sur le nom de la machine ; .env ne peut pas la remplacer).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Adresse d’écoute pour omniroute serve. Évite tout conflit avec la variable HOSTNAME du shell POSIX (toujours définie sur le nom de la machine par bash/zsh). Utilise 0.0.0.0 comme valeur de repli lorsqu’elle n’est pas définie. (#6194)
┌──────────────────────────── Port unique (par défaut) ───────────────────────┐
│ PORT=20128 │
│ → Tableau de bord : http://localhost:20128 │
│ → API : http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────── Ports séparés ──────────────────────────────────┐
│ DASHBOARD_PORT=20128 │
│ API_PORT=20129 │
│ API_HOST=0.0.0.0 │
│ → Tableau de bord : http://localhost:20128 │
│ → API : http://0.0.0.0:20129/v1/chat/completions │
│ Cas d’usage : exposer l’API au LAN tout en limitant le tableau de bord à │
│ localhost. │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────── Docker en production ───────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → Mappe les ports du conteneur aux ports de l’hôte dans │
│ docker-compose.prod.yml. │
└─────────────────────────────────────────────────────────────────────────────┘

Variable Valeur par défaut Fichier source Description
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Sel combiné aux identifiants matériels pour générer l’empreinte de la machine. À modifier pour chaque déploiement afin d’assurer l’isolation.
OMNIROUTE_CLI_SALT (non défini = sel aléatoire propre à l’installation, conservé dans <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Sel HMAC utilisé pour dériver le jeton d’authentification local de la CLI. La définition de cette valeur renouvelle tous les jetons CLI de la machine et prévaut toujours sur le sel conservé. Voir docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Définit l’attribut Secure des cookies de session. Doit être défini sur true lorsque l’application s’exécute derrière HTTPS.
REQUIRE_API_KEY false Intergiciel d’API Lorsque la valeur est true, toutes les requêtes proxy /v1/* doivent inclure une clé d’API valide. Cet indicateur ne contrôle pas GET /v1/models, qui suit à la place la configuration de connexion du tableau de bord (requireAuthForModels) — ainsi, une erreur 401 provenant de /v1/models ne signifie PAS que l’inférence est protégée. Voir docs/security/INFERENCE_AUTH_POSTURE.md (#13695).
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Autorise l’affichage des valeurs complètes des clés d’API dans l’interface du tableau de bord. Configurable dans les indicateurs de fonctionnalité du tableau de bord ; présente un risque de sécurité sur les instances partagées.
NO_LOG_API_KEY_IDS (vide) src/lib/compliance/index.ts Identifiants de clés d’API, séparés par des virgules, pour lesquels la journalisation des requêtes est désactivée (conformité au RGPD).
DEFAULT_RATE_LIMIT_PER_DAY (non défini = illimité) src/shared/utils/apiKeyPolicy.ts Budget quotidien de requêtes de secours appliqué aux clés d’API dont la colonne rate_limits est nulle. Valeur non définie ou vide : aucune limite implicite (#2289, #11017). 0 produit le même résultat (illimité). Un entier positif N active N requêtes/jour, 5N/semaine et 20N/mois. Les valeurs non vides mal formées utilisent les limites historiques de 1000/jour, 5000/semaine et 20000/mois.
MAX_BODY_SIZE_BYTES 10485760 (10 Mo) src/shared/middleware/bodySizeGuard.ts Taille maximale autorisée du corps d’une requête. Rejette les charges utiles dépassant cette limite.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 Ko) src/shared/middleware/chatBodyAdmission.ts Les corps de requête réels dont la taille atteint ou dépasse ce seuil acquièrent le bail d’admission atomique local au processus pour les charges lourdes avant l’analyse JSON (chemin BYTE, y compris POST /v1/responses). Utilise le même mécanisme d’échappement lorsque la marge disponible est suffisante que #10437 pour les charges structurellement lourdes ; reste limité par OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, afin que #7849 ne se reproduise pas.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Limite stricte des routes de chat, appliquée aux octets lus pendant l’ingestion bornée, y compris pour les requêtes dont l’en-tête Content-Length est absent, non valide ou mensonger ; tout dépassement reçoit une réponse 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (non défini — aucune limite du nombre de requêtes) src/shared/middleware/chatBodyAdmission.ts #503-fanout : cette ancienne limite en NOMBRE de requêtes ne s’applique désormais que lorsqu’elle est explicitement définie. Lorsqu’elle n’est pas définie (comportement par défaut), l’admission des requêtes de chat lourdes est plutôt contrôlée par OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — un budget en OCTETS calculé automatiquement à partir de la limite de mémoire réelle du processus dans un seul processus (un seul tas V8). Deux requêtes /v1/responses simultanées d’environ 750 000 jetons font planter des tas d’environ 12 Gio (#7849) — il s’agit d’un avertissement lié au budget mémoire, et non d’une limite produit stricte de 2. Un processus sain (tas sous le ratio de délestage) PEUT accepter davantage de requêtes /v1/responses longues simultanées via OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Des dizaines de clients SSE de longue durée (40–50) dépendent du tas + de OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, et non d’un « maximum de 2 ». Augmenter aveuglément cette valeur pour « utiliser l’hôte » réintroduit #7849. Multipliez les tas avec N DATA_DIR indépendants (#11024) ; n’utilisez jamais replicas>1 avec un seul fichier SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (calculé automatiquement) src/shared/middleware/admissionBudget.ts #503-fanout : remplacement du budget d’octets d’ingestion calculé automatiquement (25 % de la plus restrictive des limites de mémoire V8/cgroup, divisés par une amplification transitoire de 8x). Les valeurs calculées et explicites sont limitées à une plage de 8 Mio à 2 Gio. Un corps plus volumineux que le budget effectif échoue immédiatement avec 413 body_exceeds_budget ; la contention entre des corps pouvant individuellement être traités reste retentable avec 503. La prise en charge de 40 à 50 clients SSE de longue durée dépend de ce budget + du tas, et non d’un « maximum de 2 » strict. Consultez chatAdmission.maxInflightBytes / budgetSource / pressureSeverity sur /api/monitoring/health avant tout réglage.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Ratio de délestage en cas de pression sur le tas (heapUsed / heap_size_limit) pour l’admission des requêtes lourdes de type OCTETS et STRUCTURE (#10183, #10268, #10437). Une requête lourde simultanée dépassant OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT n’est délestée avec la réponse retentable 503 que lorsque le tas atteint ou dépasse ÉGALEMENT ce ratio ; si le tas est sain, elle est admise via la marge de capacité saine.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (valeur par défaut 1) src/shared/middleware/chatBodyAdmission.ts Capacité supplémentaire bornée pour le chemin rapide avec tas sain (#10437), à la fois pour STRUCTURE et OCTETS (admitChatRequest, y compris les corps ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Sans cette limite, chaque requête reçue pendant une période chargée, mais avec un tas sain, contournait l’admission sans aucun plafond. Une fois ce nombre de baux simultanés actifs via le chemin avec tas sain atteint, les requêtes supplémentaires reçues pendant la période chargée basculent vers le MÊME chemin d’attente bornée/de délestage que celui utilisé sous une véritable pression sur le tas. 0 désactive entièrement le contournement.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Nombre de messages à partir duquel une requête de chat est classée comme lourde, même lorsque son corps est inférieur au seuil en octets.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Nombre d’outils à partir duquel une requête de chat est classée comme lourde, même lorsque son corps est inférieur au seuil en octets.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Estimation prudente du nombre de jetons d’après la taille des chaînes, utilisée pour classer une requête comme lourde ; il s’agit d’une approximation du coût d’admission, et non de la tokenisation utilisée pour la facturation du fournisseur.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (désactivé) src/shared/middleware/chatBodyAdmission.ts Limite facultative et volontaire de l’historique de chat. Désactivée par défaut : une limite du nombre de messages relève de la politique de déploiement, et non d’une propriété universelle d’une requête ; imposer cette limite ici rejette les conversations avec une réponse terminale 413 avant que le pipeline de compression puisse les rendre traitables. La croissance du tas est bornée par OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT et par le délestage en cas de pression sur le tas. Définissez une valeur positive pour les déploiements contraints en mémoire qui nécessitent un plafond strict ; tout dépassement reçoit alors une réponse structurée 413 indiquant qu’une compression est requise.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Limite stricte pour une réponse amont non diffusée en continu, entièrement mise en mémoire tampon. Au-delà de cette limite, la lecture en amont est annulée et la requête échoue rapidement au lieu de faire croître une chaîne sans limite jusqu’à épuisement du tas.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Nombre maximal d’octets transmis depuis les en-têtes de réponse en amont. Lorsque le budget est dépassé, les en-têtes de priorité inférieure (par ex., les en-têtes personnalisés x-codex-*, x-oai-request-id) sont supprimés afin de respecter les limites courantes des en-têtes des proxys inverses. Définissez une valeur plus élevée pour transmettre davantage de métadonnées en amont, au prix d’une taille accrue des en-têtes de réponse.
CORS_ORIGIN (non défini) src/server/cors/origins.ts Liste d’autorisation CORS historique pour une origine unique. Préférez CORS_ALLOWED_ORIGINS pour les nouveaux déploiements. CORS est uniquement destiné aux clients d’API de navigateur inter-origines ; les écritures authentifiées du tableau de bord utilisent plutôt des requêtes de même origine ainsi qu’une protection CSRF liée à la session.
CORS_ALLOWED_ORIGINS (non défini) src/server/cors/origins.ts Liste d’autorisation CORS séparée par des virgules. Aucun caractère générique n’est envoyé, sauf si CORS_ALLOW_ALL=true est explicitement configuré.
CORS_ALLOW_ALL false src/server/cors/origins.ts Échappatoire réservée au développement permettant de renvoyer n’importe quel Origin de navigateur. Ne l’activez pas dans les déploiements partagés ou de production.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Bloque les appels aux fournisseurs ciblant des plages d’adresses IP privées, de bouclage ou lien-local. Désactivez cette option uniquement dans des environnements de test isolés.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Autorise les URL de fournisseurs pointant vers des réseaux privés/locaux (localhost, 192.168.x.x, 10.x.x.x, etc.). REQUIS pour les fournisseurs auto-hébergés (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Lorsque la valeur est false, le tableau de bord refuse la validation des URL locales.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Autorise l’ajout/la validation de fournisseurs sur des adresses locales/privées (127.0.0.1, localhost, LAN, plages privées) — limité au chemin de validation des fournisseurs. Valeur par défaut : true (priorité au local) ; définissez false pour imposer un blocage strict limité aux adresses publiques. Les points de terminaison des métadonnées cloud (169.254.169.254, metadata.google.internal) restent bloqués dans tous les cas. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Permet aux routes /v1/audio/* (transcriptions, synthèse vocale, traductions) d’utiliser un nœud fournisseur compatible avec OpenAI hébergé en dehors de localhost. Désactivé par défaut — le routage audio vers un hôte distant modifie l’identité de sortie et doit résulter d’une décision explicite de l’opérateur. Les nœuds de bouclage/privés (localhost, 127.0.0.1, 172.16-31.x) sont toujours autorisés et ne sont pas affectés. (#3963)
RERANK_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/rerankProviderNodes.ts Permet à POST /v1/rerank (ainsi qu’à l’étape de reclassement en bouclage du moteur de mémoire) d’utiliser un nœud fournisseur compatible avec OpenAI hébergé en dehors de localhost — une machine du LAN ou un pair Tailscale exécutant TEI, Infinity, vLLM, etc. Désactivé par défaut — le routage vers un hôte distant modifie l’identité de sortie et doit résulter d’une décision explicite de l’opérateur. Les nœuds de bouclage (localhost, 127.0.0.1, 172.16-31.x) sont toujours autorisés et ne sont pas affectés. Les nœuds distants doivent également respecter la politique relative aux URL sortantes des fournisseurs (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS) ; les hôtes de métadonnées cloud ne sont jamais utilisés pour le routage.
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Lorsque OIDC est activé, désactive la connexion par mot de passe afin que les utilisateurs puissent uniquement s’authentifier via l’authentification unique OIDC. L’alias court OIDC_DISABLE_PASSWORD_LOGIN est également accepté ; l’indicateur de fonctionnalité du tableau de bord portant la même clé est prioritaire. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Alias court de OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).

Liste de contrôle du renforcement de la sécurité

Section intitulée « Liste de contrôle du renforcement de la sécurité »
Fenêtre de terminal
# Configuration de sécurité minimale pour la production :
AUTH_COOKIE_SECURE=true # Nécessite HTTPS
REQUIRE_API_KEY=true # Authentifie tous les appels au proxy
ALLOW_API_KEY_REVEAL=false # Ne jamais exposer les clés dans l’interface utilisateur
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # Limite de 5 Mo

5. Assainissement des entrées et protection des PII

Section intitulée « 5. Assainissement des entrées et protection des PII »

OmniRoute fournit une défense à deux niveaux : l’analyse des injections côté requête et la suppression des PII côté réponse.

⚠️ Limites : ces garde-fous reposent sur des détections heuristiques au mieux, et ne constituent ni un pare-feu complet contre les injections de prompt ni un système DLP pour les PII. Ils peuvent produire des faux positifs (prompts bénins de persona ou de jeu de rôle signalés) et des faux négatifs (leet speak, espacement, motifs dans d’autres langues que l’anglais). À eux seuls, ils ne suffisent pas à garantir la conformité. Ajustez les modes et effectuez des tests avec votre trafic avant de vous y fier.

Côté requête : protection contre les injections de prompt

Section intitulée « Côté requête : protection contre les injections de prompt »
Variable Valeur par défaut Fichier source Description
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Active l’analyse des messages entrants afin de détecter les motifs d’injection de prompt.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Politique d’injection : warn = journalisation uniquement, block = rejet de la requête avec le code 400. L’ancien mode redact ne supprime pas le texte d’injection ; utilisez PII_REDACTION_ENABLED pour réécrire les PII de la requête.
INJECTION_GUARD_MODE (non défini) src/middleware/promptInjectionGuard.ts Ancien alias de INPUT_SANITIZER_MODE — même comportement.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Sévérité minimale rejetée lorsque MODE=block : high (par défaut), medium ou low. Les motifs de sévérité moyenne sont uniquement observés, sauf si le seuil est abaissé.
INJECTION_GUARD_BLOCK_THRESHOLD (non défini) src/shared/utils/injectionSeverity.ts Ancien alias de INPUT_SANITIZER_BLOCK_THRESHOLD — même comportement.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Lorsque défini sur true, masque les PII dans les requêtes entrantes (indépendamment du mode d’injection).
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Masque les motifs connus de clés d’API et de jetons secrets dans les charges utiles des requêtes et des réponses. Facultatif ; fonctionne comme PII_REDACTION_ENABLED.
Variable Valeur par défaut Fichier source Description
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Analyse les réponses du LLM afin de détecter les fuites de PII avant de les renvoyer au client.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = masque les PII, warn = journalisation uniquement, block = supprime l’intégralité de la réponse.

Assainissement du contexte des routes à jeton de VS Code

Section intitulée « Assainissement du contexte des routes à jeton de VS Code »
Variable Valeur par défaut Fichier source Description
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Supprime le contexte implicite de l’éditeur actif (editorContext, activeEditor, currentFile, selection, openTabs…) des requêtes /v1/vscode/[token]/* et masque le contenu des fichiers sensibles explicitement joints. Sécurisé par défaut ; définissez cette variable sur 0 pour le désactiver.
Scénario Configuration
Conformité en entreprise INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (blocage des injections + masquage des PII dans les requêtes et les réponses ; les modes sont indépendants)
Surveillance uniquement INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — journalise sans jamais bloquer
Usage personnel Laissez tout désactivé — aucune surcharge

Variable Valeur par défaut Fichier source Description
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Contrôle l’accès du LLM aux outils/appels de fonctions. allowlist = uniquement les outils répertoriés, denylist = tous sauf ceux répertoriés, disabled = aucune restriction.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Chemin vers le fichier JSON des règles de manipulation des charges utiles (ajustements en amont propres à chaque modèle/protocole).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Intervalle de rechargement (ms) pour le rechargement à chaud du fichier de règles de charge utile. Minimum : 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Option facultative : achemine les identifiants de modèles claude-* sans préfixe provenant des clients Claude Code via le compte OAuth Claude Code au lieu d’exiger un préfixe de fournisseur. Les préfixes de fournisseur explicites restent prioritaires. Également configurable au moyen d’un bouton dans le tableau de bord, sur la page du fournisseur Claude.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Limite d’accès concurrent par modèle pour les combinaisons en tourniquet (#9100). Le sémaphore des combinaisons en tourniquet était strictement limité à 3 requêtes simultanées par modèle, sans possibilité de remplacement, ce qui mettait en file d’attente derrière cette limite le trafic présentant une concurrence plus élevée. Valeur validée à >= 1 et plafonnée à <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Option facultative dangereuse qui ignore la vérification locale d’OmniRoute concernant la fenêtre de contexte et le nombre maximal de jetons d’entrée pour les requêtes directes visant un seul modèle. Les fournisseurs en amont continuent d’appliquer leurs limites réelles ; la compression des invites et la propre limite de jetons de sortie du modèle restent actives. L’ordre de priorité effectif est le suivant : remplacement par la base de données Feature Flags > variable d’environnement > valeur par défaut ; aucun redémarrage n’est requis.
OMNIROUTE_SELF_HOSTED_PROVIDERS (non défini) open-sse/services/selfHostedEntry.ts Document YAML providers: en ligne (RIC-738, D4). Lorsqu’il est défini (avec ou sans bloc strategy:), /v1/chat/completions est redirigé vers le point d’entrée unifié auto-hébergé compatible avec OpenAI plutôt que vers le pipeline cloud. Lorsqu’il n’est pas défini (valeur par défaut), la route passe directement au pipeline cloud existant. Voir docs/routing/SELF_HOSTED_OPENAI_ENTRY.md.
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE (non défini) open-sse/services/selfHostedEntry.ts Chemin vers un fichier YAML contenant le même document providers: que OMNIROUTE_SELF_HOSTED_PROVIDERS, pour les déploiements qui préfèrent un fichier à une variable d’environnement en ligne. L’un ou l’autre active le point d’entrée auto-hébergé.
OMNIROUTE_SELF_HOSTED_API_KEY (non défini — route ouverte) open-sse/services/selfHostedEntry.ts Clé API partagée facultative pour le point d’entrée unifié auto-hébergé (structure D5, réservée au système de quotas par clé). Lorsqu’elle est définie, les requêtes doivent inclure Authorization: Bearer &lt;key&gt;. Lorsqu’elle n’est pas définie, la route est ouverte, conformément au modèle existant de fournisseur local auto-hébergé (déploiement sur la boucle locale ou un réseau de confiance).
OMNIROUTE_SELF_HOSTED_STRATEGY (non défini) open-sse/services/routingStrategies.ts Document YAML strategy: en ligne pour le moteur de routage déterministe (M2/RIC-740, D3) — liste noire/liste blanche, disjoncteur avec délai de récupération, priorité au coût, prise en compte de la latence et chaîne de repli. Remplace, pour chaque clé, un bloc strategy: en ligne imbriqué dans OMNIROUTE_SELF_HOSTED_PROVIDERS. Voir docs/routing/DETERMINISTIC_ROUTING.md.
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE (non défini) open-sse/services/routingStrategies.ts Chemin vers un fichier YAML contenant le même document strategy: que OMNIROUTE_SELF_HOSTED_STRATEGY, pour les déploiements qui préfèrent un fichier à une variable d’environnement en ligne.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (non défini) open-sse/services/conversationTracker.ts Définissez cette variable sur 1 pour arrêter de collecter l’historique des conversations. resolveConversationId() renvoie un résultat non suivi avant de lire SQLite ou d’analyser l’historique des messages, et les identifiants de session fournis par le client sont également pris en compte. La gestion des sessions de routage reste inchangée et les enregistrements existants ne sont pas supprimés. Cette option est destinée aux déploiements qui n’utilisent pas la vue des conversations du tableau de bord et souhaitent empêcher la table des tours de continuer à croître.

Variable Valeur par défaut Fichier source Description
BASE_URL http://localhost:20128 src/lib/cloudSync.ts URL côté serveur utilisée par les tâches de synchronisation internes pour appeler /api/sync/cloud. Conservez une URL de bouclage/de conteneur, même lorsque l’application est exposée publiquement par l’intermédiaire d’un proxy.
CLOUD_URL (vide) src/lib/cloudSync.ts URL du point de terminaison du relais cloud (fonctionnalité premium).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Délai d’expiration HTTP des requêtes de synchronisation cloud.
OMNIROUTE_BUILD_PROFILE full Configuration de build Webpack Profil utilisé lors du build (définissez-le sur minimal pour exclure physiquement du bundle les modules privilégiés).
OMNIROUTE_STANDALONE_DIR sortie standalone .build/ scripts/build/colocate-standalone.mjs Remplacement, lors du build, du répertoire de sortie standalone utilisé par l’étape de colocalisation post-build. Il ne s’agit pas d’un paramètre d’exécution.
OMNIROUTE_CLOUD_SYNC_SECRET (vide) src/lib/cloudSync.ts Secret partagé utilisé pour vérifier la signature HMAC-SHA256 des réponses de synchronisation cloud.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Définissez cette variable sur true pour autoriser le point de terminaison de synchronisation cloud à remplacer les identifiants locaux. La valeur par défaut est false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Définissez cette variable sur true pour rejeter une réponse de synchronisation cloud non signée lorsqu’aucun secret local n’est configuré (#13679). Toute signature présente est systématiquement vérifiée — et systématiquement rejetée lorsque OMNIROUTE_CLOUD_SYNC_SECRET n’est pas définie — indépendamment de cet indicateur. La vérification deviendra obligatoire par défaut dans la v3.9.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Définissez cette variable sur true pour revenir au comportement en une seule étape de la v3.8.5, qui consiste à « tout importer » sans confirmation de l’utilisateur.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, tableau de bord, synchronisation URL publique utilisée pour le redirect_uri OAuth, les liens du tableau de bord et les URL publiques générées. Définissez-la sur l’URL publique stable lorsque les rappels OAuth ou les liens générés pour le navigateur doivent utiliser un hôte canonique de proxy inverse.
NEXT_PUBLIC_CLOUD_URL (vide) Côté client Équivalent côté client de CLOUD_URL.
NEXT_PUBLIC_APP_URL (non défini) src/shared/services/cloudSyncScheduler.ts Solution de repli héritée pour NEXT_PUBLIC_BASE_URL.
NEXT_PUBLIC_PORT (non défini — utilise PORT en repli) src/shared/hooks/useDisplayBaseUrl.ts Port de repli côté client pour les URL d’affichage lorsqu’aucune origine n’est connue (SSR/tests) ; lu avant PORT.
OMNIROUTE_PUBLIC_BASE_URL (non défini) Résolveur d’origine publique, URL d’images Origine OmniRoute destinée au navigateur et ayant la priorité la plus élevée, utilisée pour générer les URL publiques et valider l’origine du navigateur hors tableau de bord. Définissez-la lorsque OpenWebUI ou un autre relais accède à OmniRoute via une URL interne, mais que le navigateur de l’utilisateur doit récupérer les médias générés depuis une origine LAN, un tunnel ou une origine publique. N’incluez pas /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (non défini) open-sse/config/providerPluginManifestUrl.ts URL absolue du manifeste du plugin fournisseur annoncée aux clients sidecar. Lorsqu’elle n’est pas définie, OmniRoute dérive /api/v1/provider-plugin-manifest de l’origine de la requête ou de HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protocole utilisé lors de la dérivation de l’URL du manifeste du plugin fournisseur à partir de HOST/PORT sans origine de requête. Définissez-le sur https derrière un proxy public terminant TLS lorsqu’aucune valeur explicite de OMNIROUTE_PROVIDER_MANIFEST_URL n’est définie.
OMNIROUTE_TRUST_PROXY (non défini) src/server/origin/publicOrigin.ts Mode de confiance facultatif pour les en-têtes d’origine publique transférés. Non défini = ne pas faire confiance à Forwarded / X-Forwarded-* pour les décisions de sécurité. true / loopback n’accorde sa confiance à l’hôte et au protocole transférés que depuis un proxy loopback marqué par un jeton. private / lan accorde également sa confiance aux pairs proxy du LAN privé. En production, privilégiez une valeur explicite pour NEXT_PUBLIC_BASE_URL.
KIE_CALLBACK_URL (non défini) open-sse/utils/kieTask.ts URL de rappel publique pour les tâches kie.ai asynchrones. Remplacement prioritaire avant OMNIROUTE_KIE_CALLBACK_URL et OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (non défini) open-sse/utils/kieTask.ts Autre nom de KIE_CALLBACK_URL. Utilisé comme solution de repli lorsque la variable principale n’est pas définie.
OMNIROUTE_PUBLIC_URL (non défini) open-sse/utils/kieTask.ts Origine publique utilisée pour composer les URL de rappel asynchrones. Solution de repli de priorité la plus faible pour les rappels kie.ai ; également utilisée comme URL publique générique pour d’autres relais.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Point de terminaison de consultation du quota CrofAI utilisé par la page Utilisation. À remplacer pour les relais / données de test.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Point de terminaison officiel d’utilisation OpenCode Go, authentifié par clé API et utilisé par la page Utilisation. À remplacer pour les relais / données de test.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Synthétise les en-têtes d’identité d’OpenCode CLI (User-Agent, x-opencode-client/project, UUID de requête/session) pour les requêtes en amont opencode-go/zen lorsque le client ne les a pas envoyés, afin que Cloudflare les accepte à la sortie d’un VPS (#6210/#5997). Activé par défaut depuis #10571 ; désactivez-le avec false/0/no/off.
OPENCODE_USER_AGENT opencode/1.18.31 open-sse/utils/opencodeHeaders.ts User-Agent par défaut utilisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé et qu’aucun remplacement <PROVIDER>_USER_AGENT propre au fournisseur n’est défini. Appliqué uniquement aux exécuteurs opencode. Pour une requête sans clé soumise aux restrictions du service en amont, une valeur configurée qui ne contient pas opencode/<version >= 1.17> est remplacée par cette valeur par défaut au lieu d’être refusée.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Valeur de l’en-tête x-opencode-client synthétisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Valeur de l’en-tête x-opencode-project synthétisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé.
OPENCODE_FREE_TIER_REQUEST_CONTRACT (non défini) open-sse/executors/opencodeFreeTierContract.ts Définissez cette variable sur off pour ne plus ajuster le corps des requêtes OpenCode sans clé (indicateur de streaming et liste d’outils). Les en-têtes continuent d’être appliqués. La valeur est lue à chaque requête ; toute modification prend donc effet immédiatement.
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS (non défini) open-sse/executors/opencodeFreeTierContract.ts Noms d’outils séparés par des virgules à déclarer dans une requête OpenCode sans clé qui n’en contient aucun, lorsque rien n’a encore été observé pour ce modèle. Une valeur vide entraîne l’utilisation d’un unique outil fictif que le modèle reçoit pour instruction de ne pas appeler. Au maximum 32 entrées, [A-Za-z_][A-Za-z0-9_-]{0,63} ; les entrées non valides sont ignorées.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL des paramètres Ollama Cloud utilisée pour extraire les informations de quota. À remplacer pour les relais ou les données de test.
OLLAMA_USAGE_COOKIE (non défini) open-sse/services/usage.ts Cookie __Secure-session d’Ollama Cloud utilisé pour extraire les informations de quota depuis la page des paramètres. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés.
OLLAMA_CLOUD_USAGE_COOKIE (non défini) open-sse/services/usage.ts Autre variable d’environnement pour le cookie __Secure-session d’Ollama Cloud. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés.
OMNIROUTE_OLLAMA_USAGE_COOKIE (non défini) open-sse/services/usage.ts Autre variable d’environnement pour le cookie __Secure-session d’Ollama Cloud, utilisée avant les alias plus courts. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Point de terminaison des limites d’utilisation de CodeWhisperer (AWS Kiro). À remplacer pour les relais ou les données de test.

[!IMPORTANT] Lors d’un déploiement derrière un proxy inverse (nginx, Caddy), définissez NEXT_PUBLIC_BASE_URL sur votre URL publique stable (par exemple, https://omniroute.example.com) lorsque les rappels OAuth ou les liens publics générés doivent utiliser ce nom d’hôte. Sans cela, les rappels OAuth peuvent échouer, car le redirect_uri ne correspondra pas, et les liens publics générés peuvent pointer vers l’origine interne du conteneur.

Conservez BASE_URL comme URL interne de bouclage ou de conteneur pour les tâches serveur à serveur. N’utilisez pas une valeur d’Origin de navigateur ni un nom d’hôte public pour les requêtes internes vers soi-même qui transportent des identifiants.

Les écritures authentifiées du tableau de bord ne nécessitent pas d’URL de base publique statique : le tableau de bord envoie les requêtes non sûres de même origine avec un jeton CSRF lié à la session. OmniRoute continue toutefois de centraliser la validation de l’origine publique pour les intégrations de navigateur hors tableau de bord : les variables d’environnement d’URL publique explicites sont approuvées en priorité ; les en-têtes Forwarded / X-Forwarded-* bruts sont ignorés, sauf si OMNIROUTE_TRUST_PROXY est activé et que le pair proxy immédiat est marqué comme approuvé au moyen d’un jeton. N’utilisez pas les paramètres CORS pour corriger les requêtes de même origine du tableau de bord ; CORS concerne uniquement les clients de navigateur interorigines.


Acheminez les appels aux fournisseurs de LLM en amont via un proxy HTTP ou SOCKS5 afin de contrôler le trafic sortant, d’effectuer un routage géographique ou de masquer l’adresse IP.

Variable Valeur par défaut Fichier source Description
ENABLE_SOCKS5_PROXY true open-sse/executors Active l’agent proxy SOCKS5 pour les appels en amont. Définissez cette variable sur false pour le désactiver.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Côté client Indique côté client la disponibilité de SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une substitution définie dans la base de données du tableau de bord est prioritaire). Les pools de proxys et la rotation par compte cessent de reproposer un membre qui vient d’échouer (sonde TCP refusée ou réponse 429 via celui-ci) pendant une durée qui double à chaque nouvel échec, jusqu’à une limite maximale. true (ou 1, yes) l’active.
HTTP_PROXY (non défini) Standard Node.js Proxy HTTP pour les appels en amont.
HTTPS_PROXY (non défini) Standard Node.js Proxy HTTPS pour les appels en amont.
ALL_PROXY (non défini) Standard Node.js Proxy universel (prend en charge socks5://).
OMNIROUTE_PROXY_ECHO_URL (non défini) src/lib/proxyEchoTarget.ts Fixe à une seule URL la cible de renvoi de l’adresse IP utilisée par les sondes de sortie du proxy. Si cette variable n’est pas définie, la sonde essaie api64.ipify.org, puis api4.ipify.org, afin que les tunnels prenant uniquement en charge IPv4 ne soient pas signalés comme indisponibles (#9694).
NO_PROXY (non défini) Standard Node.js Noms d’hôte/adresses IP séparés par des virgules pour contourner le proxy.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Nombre maximal de sockets simultanés par répartiteur de proxy HTTP/SOCKS mis en cache. Les flux SSE de longue durée, tels que Codex /v1/responses, nécessitent plusieurs connexions lorsque plusieurs requêtes partagent le même proxy au niveau du compte. Les valeurs supérieures à 256 sont plafonnées.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Délai d’expiration de la négociation SOCKS5 (connexion), en ms. Augmentez-le lorsqu’un même hôte de passerelle résidentielle est soumis à une forte concurrence (par exemple, 100 requêtes simultanées) : la négociation réelle peut dépasser 10 s lorsque le pool est saturé, même si le proxy reste accessible, ce qui provoquerait sinon une fausse erreur [Proxy Fast-Fail] Proxy unreachable. Plafonné à 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Lorsque cette variable vaut false (valeur par défaut), une requête dont le proxy attribué ne peut pas être résolu est refusée (échec fermé) au lieu de revenir à une connexion directe, ce qui empêche les fuites de l’adresse IP réelle. Définissez-la sur true pour rétablir l’ancien basculement vers DIRECT.
ENABLE_TLS_FINGERPRINT false open-sse/executors Usurpe l’empreinte TLS à l’aide de wreq-js (imite Chrome 124). Contourne le blocage JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (non défini) open-sse/utils/proxyFetch.ts Liste d’autorisation de fournisseurs, séparés par des virgules, pour le nouveau routage TLS via proxy (open-sse/utils/proxyFetch.ts). Lorsqu’elle n’est pas définie, les connexions TLS directes conservent leur ancien comportement ; seuls ces fournisseurs passent par la passerelle d’empreinte Chrome 124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Autorise le contexte de navigateur Playwright de Claude Turnstile à ignorer les erreurs de certificat HTTPS.
Scénario Configuration
SOCKS5 via un tunnel SSH ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Proxy HTTP d’entreprise HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Protection contre le fingerprinting ENABLE_TLS_FINGERPRINT=true — nécessite wreq-js (inclus)
Sortie contrôlée / aucun accès direct Laissez PROXY_FAIL_OPEN=false (valeur par défaut). Les requêtes échouent explicitement lorsque le proxy est indisponible, au lieu de fuiter via une connexion directe.
Ancien / développement — repli en direct PROXY_FAIL_OPEN=true. Rétablit le comportement antérieur au durcissement : une connexion directe est utilisée lorsque la résolution du proxy échoue.

Remarque (contournement de la validation NVIDIA — #3226) : le point de terminaison de validation des clés API de NVIDIA se bloque lorsqu’il est acheminé via le fetch global corrigé pour le proxy/TLS (répartiteur undici → 504). src/lib/providers/validation.ts::directHttpsRequest() contourne intentionnellement le correctif du proxy pour cet unique appel de validation à l’aide de safeOutboundFetch({ bypassProxyPatch: true }). Il s’agit d’une exception documentée et de portée limitée — elle n’affecte pas le trafic sortant des discussions/de l’utilisation. La portée du contournement est verrouillée par tests/unit/proxy-bypass-scope-guard-3226.test.ts.


Contrôle la manière dont OmniRoute découvre et lance les sidecars CLI (Claude Code, Codex, etc.).

Variable Valeur par défaut Fichier source Description
CLI_MODE auto src/shared/services/cliRuntime.ts auto = rechercher dans le PATH système ; manual = utiliser uniquement des chemins explicites.
CLI_EXTRA_PATHS (non définie) src/shared/services/cliRuntime.ts Entrées PATH supplémentaires pour la détection des binaires CLI (séparées par des deux-points).
CLI_CONFIG_HOME (non définie) src/shared/services/cliRuntime.ts Remplace le répertoire personnel utilisé pour lire les configurations CLI (~/.claude, ~/.codex). Il doit être absolu et situé dans le répertoire personnel du processus — ou, dans un conteneur, correspondre à un chemin monté par liaison (c’est ainsi que /host-home fonctionne). Toute autre valeur entraîne l’utilisation du répertoire personnel.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Autorise OmniRoute à écrire dans les fichiers de configuration CLI (actualisation des jetons, données de session). Définissez cette variable sur false pour que toute écriture dans la configuration CLI échoue avec une erreur explicite indiquant que les écritures sont désactivées.
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Claude.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Codex.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Droid.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI d’OpenClaw.
CLI_CURSOR_BIN agent, puis cursor src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire de l’agent Cursor. En son absence, la détection essaie d’abord agent, puis se rabat sur cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Cline.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de 5dive.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Répertoire d’état système de 5dive (profils d’authentification appartenant à root) ; correspond à la valeur par défaut de STATE_DIR propre à 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Continue.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Qoder.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Qwen Code.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI d’Aider.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Goose.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Google Gemini — uniquement pour la détection et les contrôles d’intégrité côté serveur ; omniroute run gemini résout le binaire gemini à partir du PATH système.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Kilo Code.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI d’OpenCode.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire d’Hermes. Partagé par les deux entrées du catalogue (hermes et hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de ForgeCode.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de jcode.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire TUI de DeepSeek.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de CodeWhale.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Smelt.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire de Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Crush.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire de l’agent Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire CLI de Letta.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (aucune) src/shared/services/cliRuntime.ts Chemin personnalisé vers le binaire de Windsurf. Windsurf n’est fourni avec aucune commande par défaut — la détection du binaire reste désactivée jusqu’à ce que cette variable soit définie.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Chemin personnalisé vers le binaire CLI de Devin (v3.8.0). Utilisé par l’exécuteur Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts ide_version de Devin Desktop. Les valeurs de remplacement doivent respecter le format x.y.z ; les valeurs non valides entraînent l’utilisation de la valeur par défaut vérifiée.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts extension_version du serveur de langage/Codeium intégré, distincte de l’ide_version de Desktop. Les valeurs de remplacement doivent respecter le format x.y.z ; les valeurs non valides entraînent l’utilisation de la valeur par défaut intégrée.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Remplacement du CLI Devin réservé au pont agentique. L’exécuteur accepte uniquement le flux stdio ACP local en amont.
DEVIN_AGENTIC_HOME (requise) open-sse/executors/devin-cli-agentic.ts Répertoire personnel absolu et isolé pour le sous-processus Devin agentique ; les chemins de pont acceptés sont /home/bridge et les chemins .sandbox locaux à la tâche (sous Windows, C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Durée maximale d’un tour ACP de Devin avant que le pont ne termine le processus enfant et ne renvoie explicitement un dépassement de délai.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Alias du modèle principal de Claude Code pour le pont isolé. Le banc d’essai actif remplace l’exemple par un modèle renvoyé par le compte Devin actuel.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias du pont isolé utilisé lorsque Claude Code demande son modèle Sonnet par défaut.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias du pont isolé utilisé lorsque Claude Code demande son modèle Opus par défaut.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias du pont isolé utilisé lorsque Claude Code demande son modèle Haiku par défaut.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias du pont isolé utilisé pour les sous-agents de Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Remplacement facultatif de l’API de gestion des licences Codeium utilisée pour le quota du CLI Devin (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Remplacement par un chemin absolu du binaire CLI d’Augment (Auggie) utilisé par le fournisseur local auggie. Se rabat sur CLI_AUGGIE_BIN, puis sur une recherche dans le PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Alias permettant de remplacer le chemin du binaire CLI d’Augment (Auggie) (vérifié après AUGGIE_BIN).
ZCODE_BIN zcode open-sse/executors/zcode.ts Binaire utilisé pour le client stdio du fournisseur local zcode. Se rabat sur zcode dans le PATH.
ZCODE_ARGS — open-sse/executors/zcode.ts Tableau JSON (≤16 chaînes) d’arguments supplémentaires transmis au binaire zcode lorsqu’il est lancé via cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Répertoire de travail du sous-processus du serveur d’application ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Remplacement de l’identifiant du fournisseur envoyé au serveur d’application.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Racine de l’environnement d’exécution du serveur d’application ZCode (où se trouvent les fichiers node et zcode-server.cjs intégrés).
ZCODE_SERVER_NODE &lt;runtimeRoot&gt;/node open-sse/executors/zcode.ts Exécutable Node utilisé pour héberger le serveur d’application ZCode.
ZCODE_SERVER_ENTRY &lt;runtimeRoot&gt;/zcode-server.cjs open-sse/executors/zcode.ts Script d’entrée du serveur d’application utilisé pour héberger le serveur ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Délai d’expiration au démarrage (ms) au-delà duquel le lancement d’un serveur d’application ZCode est considéré comme ayant échoué.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Délai d’expiration RPC par requête (ms) pour un appel au serveur d’application ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Durée maximale (ms) d’un tour ZCode avant que le superviseur ne signale un dépassement de délai.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Intervalle d’interrogation (ms) pour vérifier l’achèvement d’un tour ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Répertoire personnel d’Hermes Agent dans lequel OmniRoute lit et écrit la configuration du CLI Hermes. Correspond à la variable d’environnement définie sous Windows par le programme d’installation PowerShell d’Hermes (%LOCALAPPDATA%\hermes).

Ces indicateurs de fonctionnalité sont facultatifs et désactivés par défaut. Ils peuvent également être activés ou désactivés depuis le tableau de bord CLI Code.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Après la synchronisation des modèles d’un fournisseur, réécrit automatiquement les fichiers de profil ~/.codex/*.config.toml à partir du catalogue actif. Nécessite CLI_ALLOW_CONFIG_WRITES ; ne modifie jamais la configuration Codex active/par défaut, l’authentification, les paramètres Codex-lb ni le choix du fournisseur.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Après la synchronisation des modèles d’un fournisseur, réécrit automatiquement les fichiers de profil Claude Code ~/.claude/profiles/&lt;name&gt;/settings.json à partir du catalogue actif. Nécessite CLI_ALLOW_CONFIG_WRITES ; ne modifie jamais la configuration Claude active/par défaut, l’authentification ni le choix du fournisseur.
Fenêtre de terminal
# Montez les binaires de l’hôte dans le conteneur et indiquez à OmniRoute où ils se trouvent :
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude

CLI_CONFIG_HOME ne prend effet que lorsque le chemin est réellement monté par liaison depuis l’hôte — associez-le à des montages tels que ~/.codex:/host-home/.codex:rw (voir le profil host dans docker-compose.yml). Un chemin qui ne se trouve ni dans le répertoire personnel de l’utilisateur du conteneur ni dans un montage par liaison est ignoré, car toute écriture à cet emplacement serait perdue lors de la recréation du conteneur.

L’image s’exécute en tant que USER node ; un répertoire /root non monté ne constitue donc pas une substitution valide.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_CONTAINER (auto) src/shared/utils/containerEnv.ts Force l’activation (1/true) ou la désactivation (0/false) de la détection du conteneur. Nécessaire uniquement pour les environnements d’exécution non détectés automatiquement.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Autorise malgré tout l’écriture des configurations des outils CLI dans un chemin de conteneur non monté. L’équivalent en ligne de commande est --allow-container-write.

Ces variables ajustent le comportement propre au binaire CLI omniroute (et non la détection du processus auxiliaire ci-dessus).

Variable Valeur par défaut Fichier source Description
OMNIROUTE_LANG (système) bin/cli/i18n.mjs Force la langue de sortie de la CLI. Paramètre régional BCP-47 (p. ex. en, pt-BR). Remplace les variables d’environnement de paramètres régionaux du système (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (non définie) bin/cli/runtime/processSupervisor.mjs Définissez cette variable sur 1 pour transmettre les sorties standard et d’erreur du serveur au terminal en mode supervisé. Équivaut à l’option --log de omniroute serve.
OMNIROUTE_CLI_TOKEN (non définie) bin/cli/api.mjs Jeton d’authentification de machine injecté sous forme d’en-tête x-omniroute-cli-token. Généré automatiquement dans la tâche 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Délai d’expiration HTTP par tentative (ms) pour les requêtes de la CLI vers le serveur.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Durée maximale (ms) pendant laquelle la CLI attend le point de terminaison d’intégrité du serveur avant d’afficher un avertissement d’expiration. Utile pour les démarrages à froid lents (p. ex. sous Windows). Également configurable via --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Définissez cette variable sur 1 pour afficher les diagnostics de nouvelle tentative et d’attente progressive sur stderr pendant l’exécution des commandes CLI.
OMNIROUTE_PLUGIN_PATH (non définie) bin/cli/plugins.mjs Répertoire personnalisé pour la découverte des plugins CLI (paquets omniroute-cmd-*). Utilise par défaut ~/.omniroute/plugins/ lorsque la variable n’est pas définie. Réservé à la CLI — cette valeur n’atteint jamais l’analyseur de plugins côté serveur, qui est configuré via OMNIROUTE_PLUGINS_DIR (section 2).

Variable Valeur par défaut Fichier source Description
OMNIROUTE_BASE_URL détection automatique open-sse/mcp-server/server.ts URL explicite permettant aux outils MCP/A2A d’atteindre OmniRoute. Remplace la détection automatique de localhost.
OMNIROUTE_API_KEY (non définie) Modules MCP/A2A Clé API pour les appels internes des outils MCP et des compétences A2A.
OMNIROUTE_API_KEY_ID (non défini) open-sse/mcp-server/audit.ts ID de clé pour l’attribution des journaux d’audit MCP.
ROUTER_API_KEY (non définie) Ancien système Ancien alias de OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Nombre de jours pendant lesquels l’historique des tâches A2A est conservé dans la base de données locale avant qu’une ligne soit supprimée lors de la purge quotidienne. Une valeur non définie, non numérique ou <= 0 revient à 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Interrupteur d’arrêt de la fonctionnalité d’observabilité des accès mémoire A2A. Définissez-le sur 0 pour ignorer entièrement la recherche de rappel mémoriel pour une tâche ; toute autre valeur (y compris non définie) la maintient activée.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Active le point de terminaison de triage enregistré hors ligne/local d’Issue Agent. Laissez-le désactivé, sauf si vous exécutez explicitement des workflows locaux de triage enregistré.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (non défini) src/lib/issueAgent/execution.ts Délai d’expiration (ms) pour une seule exécution de triage enregistré d’Issue Agent. Limité à un maximum interne ; revient à la valeur par défaut intégrée lorsqu’il n’est pas défini ou qu’il est invalide.
OMNIROUTE_CONTEXT (contexte actif) bin/cli/program.mjs, bin/cli/api.mjs Contexte/profil du mode distant de la CLI pour les commandes omniroute ; remplace le contexte actif dans le stockage local des contextes. Équivalent à --context &lt;name&gt;.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Désactive le backend facultatif keytar du trousseau du système d’exploitation pour les identifiants de contexte de la CLI. Lorsqu’il est activé, les identifiants restent dans config.json avec le mode 0600 et la CLI émet un avertissement unique de repli ; prévu pour une utilisation volontaire sans interface graphique ou dans un conteneur.
OMNIROUTE_MCP_ENFORCE_SCOPES false open-sse/mcp-server/server.ts Applique un contrôle d’accès fondé sur les portées aux appels d’outils MCP.
OMNIROUTE_MCP_SCOPES (toutes) open-sse/mcp-server/server.ts Portées séparées par des virgules : admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Compresse les descriptions des outils MCP avant de sérialiser le manifeste. Valeurs d’activation : 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Algorithme/profil de compression. Valeurs de désactivation : 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Délai maximal d’abandon (ms) pour les lectures de gestion internes du serveur MCP (état, résilience, combinaisons, quota, utilisation).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Délai maximal avant abandon (ms) pour les sauts MCP qui attendent un fournisseur (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Nombre maximal d’instances d’index de corpus local mises en cache en mémoire (LRU, une par répertoire racine indexé). Limité à un minimum de 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Intervalle de synchronisation du catalogue de modèles, en heures.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Intervalle d’interrogation des limites de débit et des quotas des fournisseurs.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Délai (ms) entre les récupérations consécutives de quotas OAuth lors d’une synchronisation groupée ; les connexions OAuth sont traitées une par une pour éviter de surcharger un service en amont. 0 désactive cet espacement (exécution simultanée).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Intervalle minimal (ms) entre les récupérations consécutives de quotas en amont sur le chemin de contrôle préalable/surveillance de chaque requête ; espace les appels réseau simultanés afin que de nombreux comptes utilisant une même adresse IP ne surchargent pas le service en amont. Intégré aux mécanismes de récupération des quotas de Codex (/wham/usage), DeepSeek, Bailian (sur les deux sites de récupération), OpenCode et Crof (#6009, #6911). Le chemin de répartition générique usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) n’est pas encore couvert — il fait l’objet d’un suivi distinct. Les accès au cache ne sont pas affectés. 0 désactive cette fonctionnalité ; valeur limitée à 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Délai (ms) avant l’actualisation des limites du fournisseur après un événement d’utilisation réel, afin de laisser à l’API de quota en amont le temps d’enregistrer la consommation.
OMNIROUTE_LOGIN_BROWSER_PATH détection automatique open-sse/services/adobeFireflyBrowserLogin.ts Chemin absolu vers un exécutable système Chrome ou Edge utilisé pour la connexion interactive à Adobe Firefly et le renouvellement hors écran.
ADOBE_FIREFLY_BROWSER_REFRESH activé open-sse/services/adobeFireflySession.ts Maintient à jour l’état IMS et l’état de risque du navigateur grâce à des sessions Chrome CDP propres à chaque compte. Définissez cette option sur 0 pour désactiver le renouvellement via le navigateur.
ADOBE_FIREFLY_SESSION_DISK activé open-sse/services/adobeFireflySession.ts Conserve les sessions Adobe réparées sous DATA_DIR après les redémarrages du processus. Définissez cette option sur 0 pour conserver les sessions uniquement en mémoire.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervalle minimal, en millisecondes, entre les soumissions de génération à Adobe Firefly ; 0 désactive l’espacement.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Période de pause supplémentaire, en millisecondes, après chaque troisième soumission Adobe réussie.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Délai de repli de base, en millisecondes, après des réponses Adobe 408 transitoires ; combiné à l’espacement des soumissions sur un maximum de cinq tentatives.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Désactive tous les services en arrière-plan (synchronisation, tarification, actualisation des modèles). Utile pour la CI/les tests.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (non défini) src/lib/config/runtimeSettings.ts Force l’activation des tâches en arrière-plan lorsqu’un environnement de test automatisé est détecté. Définissez cette option sur 1 pour remplacer l’heuristique de test.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Fréquence de vérification de la réinitialisation du budget (ms). Valeur minimale : 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Cadence de récupération proactive après le délai de réactivation des connexions (ms) : revalide les connexions dont la valeur transitoire rate_limited_until est arrivée à échéance, en dehors du chemin critique des requêtes. Minimum 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Désactive le planificateur de récupération proactive après le délai de réactivation des connexions (la récupération différée dans getProviderCredentials reste applicable).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Cadence de nettoyage du cache de raisonnement (ms). Minimum 60000.
OMNIROUTE_REASONING_MIN_BUDGET non défini (désactivé) open-sse/services/reasoningTokenBuffer.ts Seuil minimal facultatif pour les budgets de sortie des modèles de réflexion : la valeur max_tokens de l’appelant comprise dans [256, seuil) est relevée jusqu’au seuil (dans la limite du plafond de sortie du modèle). Non défini = les budgets clients ne sont jamais augmentés (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Expression cron (UTC) de la tâche d’exportation des journaux d’appels, qui traite chaque destination d’exportation de journaux activée.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Intervalle d’interrogation (ms) pour le rechargement à chaud de la configuration. Toute valeur inférieure à 1000 est rejetée.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (activé) src/lib/db/apiKeys.ts Définissez sur 1 pour contourner le cache d’authentification des clés d’API basé sur Redis (force les lectures dans la base de données).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Approuve les règles de filtrage de projet RTK gérées par l’utilisateur sans vérification stricte des signatures.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Limite de caractères pour la troncature proactive des résultats d’outils Lite lorsque lite.maxToolLength n’est pas défini. Plage : 256–1000000. Le paramètre du tableau de bord prévaut sur cette variable d’environnement.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Nombre maximal de workers RTK/Caveman synchrones exécutés simultanément ; les tâches excédentaires attendent selon l’ordre FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Délai d’expiration par tâche, en millisecondes. Les workers ayant dépassé le délai sont arrêtés et la requête échoue de manière ouverte, sans modification.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Durée d’inactivité, en millisecondes, avant l’arrêt d’un worker de compression inutilisé.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Interrupteur principal du disjoncteur par moteur pour les pipelines empilés T02. Activation facultative (désactivé par défaut) — lorsqu’il est activé, un moteur qui génère des exceptions à plusieurs reprises sur différentes requêtes est ignoré (échec ouvert) pendant un délai de récupération ; désactivé = comportement historique identique octet pour octet.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Nombre d’échecs consécutifs sur différentes requêtes avant l’ouverture du disjoncteur d’un moteur.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Durée, en millisecondes, pendant laquelle un moteur dont le disjoncteur est ouvert reste ignoré avant une tentative en état semi-ouvert.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Progression des retours de récupération CCR T08/H8 : chaque récupération antérieure d’un bloc stocké augmente linéairement sa valeur minChars effective (le contenu fréquemment récupéré est moins compressé ; >=3 récupérations = jamais compressé). 1 désactive la progression (ignoré de manière binaire uniquement au niveau du seuil).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Stockage durable des blocs CCR (#9061). Adosse le stockage en mémoire à SQLite afin qu’un bloc survive à une éviction LRU, au TTL, à un redémarrage ou à une récupération aboutissant sur une autre instance. Définissez sur false pour conserver les blocs uniquement en mémoire. Les blocs de plus de 512 Ko et les environnements d’exécution cloud restent uniquement en mémoire dans tous les cas.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Interrupteur principal du gel des préfixes basé sur l’utilisation observée T08/H5. Activation volontaire (désactivé par défaut) — lorsqu’il est activé, un prompt système observé >= au seuil est traité comme un préfixe stable pouvant être mis en cache et préservé de la compression, même pour les fournisseurs que l’heuristique de cache statique ne détecte pas (le gel ne fait que préserver et ne modifie jamais).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Nombre d’observations d’un prompt système avant qu’il ne soit traité comme un préfixe stable gelé.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Défini sur true par le script d’amorçage après la configuration initiale. Contrôle la visibilité de l’assistant de configuration.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Échappatoire : autorise le corps de la requête à remplacer le champ de projet Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Politique relative aux crédits Google One AI : off n’injecte jamais de crédits, retry les injecte une fois après une erreur 429 de quota admissible et always les injecte dès la première requête.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Autorise le traducteur de requêtes Antigravity à ignorer sa validation stricte de la signature des requêtes CLI lorsque le service en amont refuse les signatures réelles (mode de débogage/CLI obsolète). Une valeur non nulle active le contournement.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Remplace le chemin du fichier de jeton de la CLI Antigravity (agy) pour l’importation de connexion locale par détection automatique.
Variable Valeur par défaut Fichier source Description
OMNIROUTE_SERVER détection automatique src/lib/oauth/config/index.ts URL du serveur pour le pont d’authentification CLI↔OmniRoute.
OMNIROUTE_TOKEN (non définie) src/lib/oauth/config/index.ts Jeton d’authentification pour le pont CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts ID utilisateur pour les sessions du pont CLI.
SERVER_URL (non définie) src/lib/oauth/config/index.ts Alias historique de OMNIROUTE_SERVER.
CLI_TOKEN (non définie) src/lib/oauth/config/index.ts Alias historique de OMNIROUTE_TOKEN.
CLI_USER_ID (non définie) src/lib/oauth/config/index.ts Alias historique de OMNIROUTE_USER_ID.

Identifiants intégrés pour le développement en local. Pour les déploiements à distance, enregistrez les vôtres sur la console développeur de chaque fournisseur.

Variable Fournisseur Remarques
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Client public — aucun secret nécessaire.
CLAUDE_CODE_REDIRECT_URI Claude Code Remplace l’URI de redirection. Par défaut : https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Client public.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Nécessite un _SECRET correspondant.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google) —
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Client public.
MUSE_CODE_OAUTH_CLIENT_ID Muse Code (Meta) Remplacement facultatif de l’ID client de flux de périphérique public de Muse CLI. Laissez non défini pour utiliser le client public intégré.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Nécessite un _SECRET correspondant.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google) —
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Client public.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Remplacement facultatif de l’ID client OAuth de GitHub Enterprise Copilot. Revient à la valeur par défaut publique de GITHUB_OAUTH_CLIENT_ID si non défini.
COPILOT_INTEGRATION_ID GitHub Copilot Remplacement facultatif de l’ID d’intégration client de GitHub Copilot envoyé dans les en-têtes Copilot-Integration-Id et Editor-Plugin-Version. Par défaut : copilot-developer-cli.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Clé API de secours utilisée par open-sse/executors/devin-cli.ts lorsqu’aucun identifiant par connexion n’est disponible. Facultatif.
CLI_DEVIN_BIN Devin CLI (v3.8) Chemin personnalisé vers le binaire Devin CLI (devin). Résolu par open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) ID client OAuth pour GitLab Duo. Enregistrez une application sur https://gitlab.com/-/profile/applications avec l’URI de redirection <NEXT_PUBLIC_BASE_URL>/callback et les scopes api, read_user, openid, profile, email. Revient à GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Secret client OAuth pour GitLab Duo. Facultatif — le flux PKCE ne nécessite pas de secret. Revient à GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Remplace l’URL de base de GitLab (GitLab auto-hébergé). Par défaut : https://gitlab.com. Revient à GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Remplacement de secours hérité pour GITLAB_DUO_BASE_URL. Utilisé lorsque la variante _DUO_ n’est pas définie.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Remplacement de secours hérité pour GITLAB_DUO_OAUTH_CLIENT_ID consommé par src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Remplacement de secours hérité pour GITLAB_DUO_OAUTH_CLIENT_SECRET consommé par src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder —
QODER_OAUTH_AUTHORIZE_URL Qoder Défini pour activer Qoder OAuth.
QODER_OAUTH_TOKEN_URL Qoder —
QODER_OAUTH_USERINFO_URL Qoder —
QODER_OAUTH_CLIENT_ID Qoder —
QODER_PERSONAL_ACCESS_TOKEN Qoder Clé API directe de secours (contourne OAuth).
QODER_CLI_WORKSPACE Qoder ID d’espace de travail pour Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Alias pour QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Remplace le répertoire de configuration de Qoder CLI (session PAT isolée, évite d’écraser une connexion par navigateur).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Jeton tk du frontend à envoyer comme validated sur /api/chat. Requis lorsque Blackbox impose la correspondance des jetons ; sinon OmniRoute utilise un UUID aléatoire. Voir le problème #2252.
VISION_BRIDGE_BASE_URL Garde-fou Vision Bridge URL de base compatible OpenAI pour les appels vision-bridge non-Anthropic. Par défaut, utilise la variable d’environnement de l’URL OpenAI héritée ou api.openai.com. Pointez vers la boucle interne /v1 d’OmniRoute ou tout point de terminaison compatible OpenAI (Gemini OpenAI-compat, OpenRouter). Problème #2232. Lorsque l’URL est le propre /v1 d’OmniRoute, la sous-requête de description envoie x-omniroute-admission-bypass: internal et s’authentifie avec les informations d’identification de la boucle interne résolue (sentinelle sk_omniroute en mode local, ou OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350) afin que les déploiements REQUIRE_API_KEY=true fonctionnent.
VISION_BRIDGE_API_KEY Garde-fou Vision Bridge Clé API pour l’URL ci-dessus. Remplace les variables d’environnement OpenAI / Google par fournisseur pour les appels vision-bridge non-Anthropic. Les modèles Anthropic conservent leur chemin de clé Anthropic dédié. Problème #2232.
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS Garde-fou Vision Bridge Durée de mise en cache d’un résultat de routage “aucun candidat utilisable”, en ms (par défaut 30000). Les valeurs invalides ou négatives reviennent à la valeur par défaut ; 0 désactive le cache négatif. Source : src/lib/guardrails/visionBridgeRouter.ts.

[!WARNING]

  1. Allez dans Google Cloud Console → Credentials
  2. Créez un ID client OAuth 2.0 (type : “Application web”)
  3. Ajoutez l’URL de votre serveur comme URI de redirection autorisée
  4. Remplacez les valeurs d’identification dans .env.

Remplacez l’en-tête User-Agent envoyé à chaque fournisseur en amont. Celui-ci est résolu dynamiquement lors de l’exécution par la classe de base de l’exécuteur :

process.env[`${PROVIDER_ID}_USER_AGENT`]

Source : open-sse/executors/base.ts → buildHeaders()

Variable Valeur par défaut Quand effectuer la mise à jour ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli) Lorsqu’Anthropic publie une nouvelle version de la CLI
CLAUDE_DISABLE_TOOL_NAME_CLOAK false executors/base.ts + executors/cliproxyapi.ts Définissez cette variable sur 1/true pour transmettre tels quels à Anthropic les noms d’outils de frameworks tiers sur les deux chemins liés à Anthropic (OAuth natif et CLIProxyAPI). Par défaut, l’exécuteur attribue de manière déterministe des alias aux noms d’outils ne provenant pas de Claude Code (mappage canonique de Claude Code lorsqu’il en existe un, sinon PascalCase) et rétablit les noms d’origine dans la réponse via _toolNameMap, afin que les frameworks utilisant des outils en snake_case ne soient pas refusés parce qu’ils sont identifiés comme des clients tiers. À des fins de débogage uniquement.
CODEX_USER_AGENT codex-cli/0.155.0 (Windows 10.0.26200; x64) Lorsqu’OpenAI met à jour la CLI Codex
CODEX_CLIENT_VERSION 0.155.0 Remplacer la version du client Codex indépendamment de la chaîne UA complète
CLAUDE_CODE_CLIENT_VERSION 2.1.258 Remplacer la version de Claude Code annoncée indépendamment de CLAUDE_USER_AGENT. Anthropic conditionne l’accès à certains modèles à cette valeur (#12417).
GITHUB_COPILOT_CLI_VERSION 1.0.81-6 Remplacer la version de la CLI Copilot annoncée indépendamment de GITHUB_USER_AGENT
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0 Lors de la mise à jour de GitHub Copilot Chat
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 darwin/arm64 Lors de la mise à jour de l’IDE Antigravity
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 Lors de la mise à jour de l’IDE Kiro
KIRO_OAUTH_CLIENT_ID kiro-cli Remplacer le clientId (identifiant public) du code d’appareil social Kiro
KIRO_VERIFY_FULL_CRC false Facultatif : validation complète du CRC de chaque trame dans le flux d’événements Kiro (pour déboguer les flux corrompus)
QODER_USER_AGENT Qoder-Cli Lors de la mise à jour de la CLI Qoder
CURSOR_USER_AGENT Cursor/3.3 Lors de la mise à jour de Cursor

[!TIP] Vous pouvez ajouter des remplacements du User-Agent pour n’importe quel fournisseur en utilisant le modèle {PROVIDER_ID}_USER_AGENT. L’exécuteur construit dynamiquement le nom de la variable d’environnement.


Lorsqu’elle est activée, OmniRoute réorganise les en-têtes HTTP et les champs du corps JSON afin de reproduire exactement la signature des outils CLI officiels. Cela réduit le risque que le compte soit signalé tout en préservant l’adresse IP de votre proxy.

Source : open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Variable Activation Effet
CLI_COMPAT_CODEX =1 Imite la signature des requêtes de Codex CLI
CLI_COMPAT_CLAUDE =1 Imite la signature des requêtes de Claude Code
CLI_COMPAT_GITHUB =1 Imite la signature des requêtes de GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Imite la signature des requêtes d’Antigravity
CLI_COMPAT_CURSOR =1 Imite la signature des requêtes de Cursor
CLI_COMPAT_KIMI_CODING =1 Imite la signature des requêtes de Kimi Coding
CLI_COMPAT_KILOCODE =1 Imite la signature des requêtes de Kilo Code
CLI_COMPAT_CLINE =1 Imite la signature des requêtes de Cline
Variable Activation Effet
CLI_COMPAT_ALL =1 Active la compatibilité des empreintes pour tous les fournisseurs à la fois.
Variable Valeur par défaut Fichier source Description
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Remplace la version de Kimi CLI envoyée lors des appels OAuth/API.
KIMI_CODING_DEVICE_ID (valeur capturée par défaut) src/lib/oauth/providers/kimi-coding.ts Remplace l’identifiant d’appareil Kimi capturé utilisé dans les en-têtes du client.

[!NOTE] Cette fonctionnalité fonctionne conjointement avec les remplacements de User-Agent (§12). Le système d’empreintes gère l’ordre des en-têtes et des champs du corps, tandis que les remplacements de User-Agent gèrent la chaîne UA spécifique. Les deux peuvent être activés indépendamment.


Clés API pour les fournisseurs utilisant une authentification directe. Configuration recommandée : Tableau de bord → Fournisseurs → Ajouter une clé API.

La configuration au moyen de variables d’environnement constitue une solution alternative pour les déploiements Docker ou sans interface graphique.

Format reconnu : {PROVIDER_ID}_API_KEY

Variable Fournisseur
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + solution de secours Reader)
JINA_API_KEY Jina AI (alias de JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio), embeddings + solution de secours pour le chat
GOOGLE_API_KEY Gemini (alias de GEMINI_API_KEY)

[!NOTE] Les entrées statiques ${PROVIDER}_API_KEY pour Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius et Qianfan ont été supprimées dans la v3.8.0, car l’environnement d’exécution ne les lit plus — ces fournisseurs dépendent exclusivement du tableau de bord, de data/provider-credentials.json ou de la base de données chiffrée. Consultez la section Audit : variables supprimées / obsolètes au bas de ce document pour connaître la procédure de migration.

[!TIP] Les clés définies via le tableau de bord sont stockées sous forme chiffrée dans SQLite et sont prioritaires sur les variables d’environnement.

Jina : les embeddings jina-ai/…, ainsi que les opérations de reclassement, de classification, de segmentation et jina-search, ne facturent pas une clé d’environnement du cluster lorsqu’une connexion jina-ai du tableau de bord (ou une connexion jina-reader partagée) existe — getProviderCredentials applique une stratégie de remplissage prioritaire. JINA_AI_API_KEY / JINA_API_KEY ne sont utilisées que lorsqu’aucune clé exploitable du tableau de bord n’existe. Les journaux d’appels attribuent la solution de secours fournie par l’environnement à connection_id=env:JINA_AI_API_KEY. La carte Reader (jina-reader, r.jina.ai) ne prend jamais en charge /v1/embeddings ni /v1/rerank.

Gemini : gemini/gemini-embedding-2 (alias google/gemini-embedding-2) utilise en priorité la connexion gemini du tableau de bord. GEMINI_API_KEY / GOOGLE_API_KEY ne sont utilisées que lorsqu’aucune clé exploitable du tableau de bord n’existe. Les journaux d’appels attribuent la solution de secours fournie par l’environnement à connection_id=env:GEMINI_API_KEY. Le trafic multimodal natif utilise x-goog-api-key avec :embedContent / :batchEmbedContents — N éléments OpenAI input produisent N vecteurs.


Toutes les valeurs sont exprimées en millisecondes. Résolution centralisée dans src/shared/utils/runtimeTimeouts.ts.

REQUEST_TIMEOUT_MS (remplacement global)
├─→ FETCH_TIMEOUT_MS (appels aux fournisseurs en amont, valeur par défaut : 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)
│ ├─→ FETCH_BODY_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (indépendant, valeur par défaut : 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (indépendant, valeur par défaut : 15000)
│ ├── FETCH_CONNECT_TIMEOUT_MS (indépendant, valeur par défaut : 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (indépendant, valeur par défaut : 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (indépendant, valeur par défaut : 1260000 ; 0 le désactive)
├─→ STREAM_READINESS_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limite les extensions adaptatives du délai de disponibilité, valeur par défaut : 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 30000)
├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (dérivé, valeur par défaut : 300000)
├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (valeur par défaut : 60000)
├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (valeur par défaut : 5000)
└── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (valeur par défaut : 0 = désactivé)
Variable Valeur par défaut Description
REQUEST_TIMEOUT_MS (non définie) Raccourci global — remplace les valeurs par défaut de FETCH_TIMEOUT_MS et STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Délai d’expiration total de la requête HTTP pour les appels aux fournisseurs en amont.
STREAM_IDLE_TIMEOUT_MS 600000 Durée maximale de silence entre les octets bruts reçus en amont avant abandon. Les modèles à raisonnement étendu font rarement des pauses >90s.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Durée de vie active totale maximale du flux SSE ; elle n’est jamais réinitialisée par les octets reçus en amont et est indépendante de REQUEST_TIMEOUT_MS. Dérivée de la plus grande valeur timeoutMs par modèle dans le registre (1200000, Codex), avec une marge de 60000, afin qu’un modèle autorisé à utiliser l’intégralité de son budget ne soit jamais interrompu en cours de réponse. Définissez-la sur 0 pour la désactiver.
OMNIROUTE_SSE_COMMENTS (désactivée) Indique si OmniRoute peut émettre des lignes de commentaires SSE : (par exemple, le signal périodique : keepalive et les bandes-annonces de métadonnées x-omniroute-*). Désactivé par défaut (#10524), car les clients strictement compatibles avec OpenAI appliquent JSON.parse à chaque ligne SSE et plantent sur les commentaires : ; les signaux périodiques data: ne sont pas affectés. Définissez cette variable sur on/true/1/yes pour les réactiver. Utilisée par open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Délai pour recevoir le premier événement SSE autre qu’un ping. Hérite de REQUEST_TIMEOUT_MS lorsqu’elle est définie.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Fenêtre adaptative maximale d’attente du premier événement pour les requêtes en streaming volumineuses, utilisant beaucoup d’outils ou nécessitant un raisonnement approfondi.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Interrupteur d’arrêt pour l’heuristique /goal. Définissez-le sur false/0/off pour désactiver complètement la détection — les délais d’attente de disponibilité et la récupération du flux ne sont jamais augmentés par le corps ou les en-têtes de la requête, ce qui limite l’amplification des délais contrôlée par le client.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Fenêtre maximale d’attente du premier événement pour les exécutions d’agent /goal détectées ou les requêtes forcées avec x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Active automatiquement la récupération anticipée du flux pour les exécutions d’agent /goal détectées. Définissez cette variable sur false/0/off pour désactiver l’activation spécifique à l’objectif. Cela peut uniquement AJOUTER la récupération en plus de la valeur par défaut de l’opérateur — cela ne remplace jamais une désactivation explicite dans les paramètres STREAM_RECOVERY_ENABLED/DB.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Supprime les événements SSE codex.* non standard (par exemple, codex.rate_limits) qui provoquent une erreur 502 dans responses.stream() du SDK OpenAI. Activé par défaut (#11014). Définissez cette variable sur 0/false/no/off pour les transférer.
OMNIROUTE_CODEX_APPSERVER_WS (non définie) Transport app-server Codex à activer explicitement. Point de terminaison WebSocket (ws:///wss://) d’un sidecar codex app-server local. Lorsqu’il est défini avec un jeton, les requêtes Codex sont acheminées via JSON-RPC vers le sidecar plutôt que vers l’API HTTP Responses. Peut également être défini pour chaque connexion via providerSpecificData.codexAppServerUrl. Utilisé par open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (non définie) Jeton de capacité/d’authentification Bearer en ligne présenté à l’app-server. Remplacement par connexion : providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (non définie) Chemin vers un fichier contenant le jeton de capacité de l’app-server (provenant de codex app-server --ws-token-file). Utilisé lorsque OMNIROUTE_CODEX_APPSERVER_WS_TOKEN n’est pas définie. Remplacement par connexion : providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Répertoire de travail dans lequel s’exécute le tour de l’app-server. Remplacement par connexion : providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (non définie) Politique d’approbation transmise au tour de l’app-server (par exemple, never, on-request). Remplacement par connexion : providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (non définie) Politique de bac à sable transmise au tour de l’app-server (par exemple, read-only, workspace-write, danger-full-access). Lorsqu’elle n’est pas définie, l’exécuteur utilise par défaut workspace-write (configuration renforcée ; auparavant danger-full-access). Remplacement par connexion : providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Approuve automatiquement les propres demandes d’approbation de l’app-server (exécution de commandes/fichiers/autorisations sur l’hôte). Désactivé par défaut — les demandes sont automatiquement refusées ; les appels d’outils du harnais ne sont pas affectés (ils passent par le transfert distinct item/tool/call). Accepte true/1/yes. Remplacement par connexion : providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Délai pour recevoir les en-têtes de réponse.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30 s) Délai maximal d’attente du début de la réponse (ms) pour chaque tentative directe sans proxy. En cas d’expiration, une nouvelle tentative est effectuée une fois sur un nouveau socket ; définissez la valeur sur 0 pour désactiver cette limite et conserver le comportement précédent.
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS 600000 (10 min) Plafond (ms) pour la tentative RETRY sur un nouveau socket après l’expiration du délai d’attente du début de la réponse d’une tentative utilisant une connexion mutualisée, décrite ci-dessus (#13703). S’applique uniquement lorsque l’appelant a déjà associé son propre signal d’échéance (la cascade résolue connexion/modèle/fournisseur/FETCH_TIMEOUT_MS) ; ce signal constitue la véritable limite et se déclenche en premier dans le chemin prévu. Il s’agit donc d’un filet de sécurité généreux plutôt que d’un plafond fixe — sans lui, la nouvelle tentative réutilisait exactement la même courte fenêtre OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS que la tentative mutualisée et provoquait des erreurs 504 sur des modèles de raisonnement sains mais dont le TTFB était élevé. Cette valeur ne peut jamais être inférieure au plancher fixe ci-dessus ; lorsque l’appelant ne fournit aucun signal d’échéance, la nouvelle tentative conserve le plancher fixe inchangé.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Délai maximal pour recevoir l’intégralité du corps de la réponse.
FETCH_CONNECT_TIMEOUT_MS 30000 Délai maximal d’établissement de la connexion TCP.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Délai d’inactivité du socket keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Délai maximal du proxy d’empreinte TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Limite spécifiquement le délai jusqu’au premier octet du corps sur le transport d’empreinte TLS wreq-js ; TLS_CLIENT_TIMEOUT_MS ne peut pas, à lui seul, détecter un corps bloqué, car il se résout dès l’arrivée des en-têtes (#12656). Une expiration annule le lecteur wreq et bascule vers le répartiteur direct/proxy ; 0 désactive le mécanisme de surveillance.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Exécuteur OpenCode uniquement, et seulement lorsque l’indicateur de fonctionnalité OPENCODE_RESPONSES_STALL_ROTATION est activé (désactivé par défaut) : limite l’attente du premier octet du corps d’une réponse Responses diffusée en continu après ses en-têtes (#13484). Un flux Responses s’ouvre avec response.created ; un silence dépassant cette fenêtre indique donc un blocage : le compte est mis en période de récupération et la requête bascule une fois vers le compte suivant ; un second blocage provoque un échec immédiat. 0 désactive la protection même lorsque l’indicateur est activé.
OPENCODE_PARK_AND_RESUME false Exécuteur OpenCode uniquement : met la requête en attente avec un signal périodique après plusieurs erreurs 429 transitoires (ou la détection d’un marqueur récent de saturation du pool), puis rejoue un seul segment plafonné sur un maximum de 3 comptes séquentiels au lieu de solliciter simultanément l’ensemble du parc (#13924). Désactivé par défaut : chaque erreur 429 provoque une rotation vers le compte suivant, exactement comme auparavant.
OPENCODE_POOL_STRAIN_MARKER_PATH (non défini) Exécuteur OpenCode uniquement : remplace le chemin du marqueur de saturation du pool lu avant la mise en attente ({since, reason, ttl_s}, valeur par défaut /tmp/opencode-pool-strain.json, #13924). Un marqueur récent entraîne la mise en attente sans nouveau comptage ; s’il est absent ou obsolète, le compteur de rafale est utilisé.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Délai maximal du saut de proxy pour les requêtes de passerelle /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Configure l’exécuteur de récupération web Firecrawl pour utiliser une instance auto-hébergée (clé API facultative hors cloud).
FIRECRAWL_TIMEOUT_MS 30000 Délai maximal par requête pour l’exécuteur de récupération web Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Délai maximal global des requêtes serveur pour la passerelle.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Délai maximal d’envoi des en-têtes de réponse via la passerelle.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Délai d’inactivité keep-alive de la passerelle.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Délai maximal du socket brut (0 = désactivé).
SHUTDOWN_TIMEOUT_MS 30000 Délai de grâce après SIGTERM/SIGINT avant l’arrêt forcé.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Valeur de repli utilisée par src/shared/utils/fetchTimeout.ts lorsque FETCH_TIMEOUT_MS n’est pas défini.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Délai maximal (ms) pour les préréglages validationRead et modelsProbe dans src/shared/network/safeOutboundFetch.ts. Augmentez-le pour les points de terminaison lents (Cerebras, Cloudflare AI, Groq) afin d’éviter les basculements répétés entre les états actif/erreur dans le tableau de bord. Revient à 8000 ms pour les valeurs non valides (<1000) ou non numériques.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Délai d’expiration de récupération propre au relais dans open-sse/utils/proxyFetch.ts (#9158). Un relais bloqué doit échouer avant le délai d’expiration du client/de l’agent (~30 s), afin que les appelants voient une erreur propre au relais plutôt qu’un délai d’expiration générique en amont. Plafonné à 29000 pour qu’il se déclenche toujours en premier.
OMNIROUTE_RETRY_BACKOFF_MS 10 Délai d’attente partagé avant nouvelle tentative pour les chemins direct/relais/proxy qui réessaient une fois dans open-sse/utils/proxyFetch.ts (#9158). 0 = nouvelle tentative immédiate.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Délai d’expiration natif des requêtes wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Délai d’expiration natif des requêtes wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif.
OMNIROUTE_PPLX_SEARCH_HINT 0 (désactivé) Ajoute « Vous disposez d’une recherche Web intégrée. Répondez directement aux questions à l’aide des résultats de recherche. » au message système de l’appelant (perplexity-web/protocol.ts). Désactivé par défaut — Perplexity effectue quand même des recherches et cette phrase transparaît dans les réponses sous forme de métacommentaire pour les clients de programmation. Définissez sur 1/true/yes/on pour la rétablir.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Délai d’expiration natif des requêtes wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Délai d’expiration natif des requêtes wreq-js (notionTlsClient.ts) ; notion-web le porte à 180000 pour chaque requête lors des générations longues.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif.
OMNIROUTE_BROWSER_POOL on Pool de navigateurs Playwright partagé pour les conversations utilisant des cookies Web et reposant sur un navigateur (browserPool.ts) ; définissez sur off pour le désactiver.
OBSCURA_BIN auto-detect Chemin vers le binaire obscura utilisé comme moteur principal par le pool de navigateurs et l’exécuteur Cloudflare Playground (open-sse/services/obscura.ts) ; détecté automatiquement dans le PATH système lorsqu’il n’est pas défini.
OBSCURA_CDP_ENDPOINT (non défini) Pointe vers une instance Obscura déjà en cours d’exécution (http://host:port) au lieu d’en lancer une ; le module n’est pas propriétaire de ce processus (open-sse/services/obscura.ts).
OBSCURA_PORT port libre aléatoire Port explicite pour le processus obscura serve lancé ; un port libre est choisi automatiquement lorsqu’il n’est pas défini (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Fait passer une requête de conversation utilisant des cookies Web par le chemin reposant sur un navigateur (browserBackedChat.ts) ; 1 pour l’activer.
KIMI_WEB_BASE_URL https://www.kimi.ai URL de base de l’exécuteur Kimi Web (Connect-RPC international de kimi.ai) (kimi-web.ts) ; à remplacer uniquement pour les points de terminaison de miroir/proxy.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Point de terminaison complet de conversation pour l’exécuteur Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (détecté automatiquement) Chemin vers un exécutable Chrome/Edge du système pour la connexion interactive à Adobe Firefly dans le navigateur (adobeFireflyBrowserLogin.ts) ; remplace la détection automatique propre à chaque système d’exploitation.
OMNIROUTE_STANDALONE_DIR sortie autonome .build/ Remplacement, lors de la compilation, du répertoire de sortie autonome utilisé par l’étape de colocalisation post-compilation (scripts/build/colocate-standalone.mjs) ; concerne les outils de compilation, pas l’exécution.

Les tentatives de cible d’un combo héritent du délai d’expiration résolu de la requête en amont (FETCH_TIMEOUT_MS, ou REQUEST_TIMEOUT_MS lorsqu’il fournit la valeur par défaut de récupération). Définissez targetTimeoutMs dans un combo, dans les valeurs par défaut des combos ou dans une substitution du fournisseur uniquement pour accélérer le repli du combo ; les valeurs supérieures au délai d’expiration en amont actuel sont plafonnées à ce dernier.

comboTimeoutMs constitue un budget temporel global distinct pour l’ensemble du combo, couvrant toutes les cibles de basculement. Laissez-le non défini ou défini sur 0 pour conserver une itération illimitée (un mécanisme d’arrêt codé en dur après 10 minutes de blocage dans comboPredicates.ts s’applique toujours). Une valeur positive remplace ce filet de sécurité pour le combo. Veillez à ce que comboTimeoutMs soit supérieur à targetTimeoutMs afin que le basculement dispose encore de temps après une première cible lente.

Réglage du disjoncteur au niveau du fournisseur. Les valeurs par défaut correspondent aux valeurs mises à l’échelle utilisées depuis la v3.6 pour plus de 500 connexions.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Seuil d’échecs consécutifs pour les fournisseurs OAuth avant le déclenchement du coupe-circuit.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs OAuth.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Seuil d’échecs consécutifs pour les fournisseurs utilisant une clé API.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs utilisant une clé API.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Seuil d’échecs consécutifs pour les fournisseurs locaux (Ollama, LM Studio, …).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs locaux.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : nombre d’échecs dans la fenêtre avant que l’ensemble du fournisseur OAuth n’entre en période de récupération.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur OAuth atteint.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts Le fournisseur OAuth passe à l’état DEGRADED à partir de ce nombre d’échecs.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Multiplicateur maximal d’augmentation de resetTimeout pour le fournisseur OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts Le fournisseur OAuth augmente le délai après ce nombre de cycles ouverts.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : nombre d’échecs dans la fenêtre avant que l’ensemble du fournisseur utilisant une clé API n’entre en période de récupération.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs utilisant une clé API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur utilisant une clé API atteint.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts Le fournisseur utilisant une clé API passe à l’état DEGRADED à partir de ce nombre d’échecs.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Multiplicateur maximal d’augmentation de resetTimeout pour le fournisseur utilisant une clé API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts Le fournisseur utilisant une clé API augmente le délai après ce nombre de cycles ouverts.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : nombre d’échecs avant que l’ensemble du fournisseur local n’entre en période de récupération.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs locaux.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur local atteint.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Profondeur du délai exponentiel à laquelle le fournisseur associé à un verrou du cache de contexte est considéré comme durablement indisponible et le verrou est supprimé afin de permettre le basculement.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Fenêtre anti-oscillation (ms) tolérant de brèves périodes de récupération transitoires avant la suppression d’un verrou du cache de contexte.
Scénario Configuration
Génération de code longue durée REQUEST_TIMEOUT_MS=900000 (15 min)
Limitation de la durée totale du flux STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min)
Échec rapide pour l’API de production API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modèles à raisonnement prolongé STREAM_IDLE_TIMEOUT_MS=300000 (5 min entre les blocs)

Le système de journalisation écrit à la fois dans stdout et dans des fichiers journaux avec rotation. Toute la configuration est lue par src/lib/logEnv.ts.

Variable Valeur par défaut Description
APP_LOG_LEVEL info Niveau de journalisation minimal : debug, info, warn, error.
APP_LOG_FORMAT text Format de sortie : text (lisible par un humain) ou json (structuré).
APP_LOG_TO_FILE true Écrit les journaux dans un fichier en plus de stdout.
APP_LOG_FILE_PATH logs/application/app.log Chemin du fichier journal (relatif à la racine du projet ou à DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Taille maximale du fichier avant rotation. Valeurs acceptées : 50M, 1G, 512K ou un nombre d’octets brut.
APP_LOG_RETENTION_DAYS 7 Nombre de jours de conservation des fichiers journaux d’application après rotation.
APP_LOG_MAX_FILES 20 Nombre maximal de sauvegardes de fichiers journaux après rotation.
CALL_LOG_RETENTION_DAYS 7 Nombre de jours de conservation des entrées du journal des requêtes/appels dans la base de données.
CALL_LOG_MAX_ENTRIES 10000 Nombre maximal d’entrées du journal des appels dans le tampon en mémoire.
CALL_LOGS_TABLE_MAX_ROWS 100000 Nombre maximal de lignes dans la table SQLite call_logs avant élagage.
ENABLE_REQUEST_LOGS (non défini) Force l’activation ou la désactivation de la journalisation détaillée des requêtes, en remplaçant le paramètre du tableau de bord.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 heure) Âge maximal des entrées orphelines du journal des requêtes actives avant leur nettoyage en mémoire.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Stocke les fragments de flux dans les artefacts du pipeline lorsque call_log_pipeline_enabled=true. Activation explicite (true) — désactivé par défaut pour économiser de l’espace disque.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Taille maximale en Ko des artefacts du journal des appels du pipeline lorsque call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Nombre maximal de lignes dans la table SQLite proxy_logs avant élagage.
PROXY_LOG_INCLUDE_IPS false Inclut les adresses IP du client et de sortie ainsi que les préfixes de compte dans les journaux de console [ProxyEgress]. Les enregistrements des journaux du proxy dans le tableau de bord et la base de données conservent tous les détails.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 min) Fréquence à laquelle src/lib/logRotation.ts vérifie de nouveau la taille du fichier journal actif.
CHAT_LOG_TEXT_LIMIT 65536 Longueur maximale des chaînes conservées dans les artefacts des journaux de discussion (64 Ko par défaut).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Nombre d’éléments de tableau conservés à partir de la fin lors de la troncature des charges utiles des journaux de discussion.
CHAT_LOG_MAX_DEPTH 6 Profondeur maximale d’imbrication avant la troncature des charges utiles des journaux de discussion.
CHAT_LOG_MAX_OBJECT_KEYS 80 Nombre maximal de clés d’objet conservées dans les charges utiles des journaux de discussion (0 = illimité).
CHAT_LOG_MAX_BODY_KB 1024 Taille totale du corps de la requête/réponse (Ko) au-delà de laquelle celui-ci est remplacé par un résumé minimal plutôt que par la copie complète. Augmentez cette valeur si les longues conversations agentiques affichent un espace réservé au lieu des messages réels dans le tableau de bord.
CHAT_DEBUG_FILE false Lorsque cette valeur est définie sur true, serializeArtifactForStorage ignore la troncature fondée sur la taille. Réservé au débogage.

Variable Valeur par défaut Description
OMNIROUTE_MEMORY_MB auto (machine physique) ; 1024 dans l’image Docker Limite recommandée du tas V8 (Mo) pour Docker ou une exécution autonome. Lorsqu’elle n’est pas définie, elle est étalonnée dynamiquement (~35 % de la RAM système, limitée à [512, 4096]) ; 512 n’est que la valeur minimale lorsque la mémoire totale ne peut pas être déterminée. Avec run-standalone.mjs (CMD Docker), une valeur explicite est ajoutée sous la forme --max-old-space-size et l’emporte sur une option de tas NODE_OPTIONS conflictuelle (dernière option V8). omniroute serve donne toujours la priorité à une option de tas NODE_OPTIONS existante (#5238). Ne définissez pas les deux avec des valeurs différentes : le processus journalise un avertissement indiquant les deux valeurs et celle qui l’emporte. L’image Docker officielle définit toujours 1024, l’étalonnage n’y est donc jamais exécuté. Le point de terminaison /v1/responses de l’agent de codage nécessite 8192 à 12288, plus une marge pour le cgroup — consultez le Guide Docker — RAM d’exécution.
PROMPT_CACHE_MAX_SIZE 50 Nombre maximal d’entrées d’invite système mises en cache.
PROMPT_CACHE_MAX_BYTES 2097152 (2 Mo) Taille totale maximale du cache d’invites.
PROMPT_CACHE_TTL_MS 300000 (5 min) Durée de vie des entrées du cache d’invites.
SEMANTIC_CACHE_MAX_SIZE 100 Nombre maximal de réponses avec temperature=0 mises en cache.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 Mo) Taille totale maximale du cache sémantique.
SEMANTIC_CACHE_TTL_MS 1800000 (30 min) Durée de vie des entrées du cache sémantique.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Nombre de racines de corpus locaux pouvant conserver simultanément un index actif en mémoire (src/lib/localCorpus/configured.ts). LRU : lorsque la limite est atteinte, l’index de la racine la moins récemment utilisée est évincé, puis reconstruit lors de la requête suivante. La valeur minimale est 1 ; une valeur non numérique entraîne l’utilisation de la valeur par défaut.
STREAM_HISTORY_MAX 50 Nombre maximal d’événements de flux récents dans la mémoire tampon de la vue en direct du tableau de bord.
CONTEXT_LENGTH_DEFAULT 128000 Longueur maximale globale de contexte utilisée par défaut pour les modèles sans configuration explicite.
USAGE_TOKEN_BUFFER 100 Marge supplémentaire de jetons réservée lors du suivi des quotas d’utilisation.
Variable Valeur par défaut Description
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS non défini Faire confiance au fichier .rtk/filters.json du projet sans hachage .rtk/trust.json. À utiliser uniquement dans un environnement de développement local contrôlé.

Coût sur la boucle d’événements de la mémoire, des compétences et de l’actualisation des jetons (#10349)

Section intitulée « Coût sur la boucle d’événements de la mémoire, des compétences et de l’actualisation des jetons (#10349) »

OmniRoute est un processus Node unique. L’extraction et la récupération de mémoire, l’injection de compétences et l’actualisation des jetons des fournisseurs s’exécutent sur la même boucle d’événements que GET /healthz et le tableau de bord. Elles ne s’exécutent pas dans un thread de travail.

Tâche Code Valeur par défaut Contrôle par l’opérateur
Extraction / récupération de la mémoire src/lib/memory/ memoryEnabled dans le tableau de bord (activé par défaut) Désactivez Paramètres → Mémoire. Il n’existe aucun interrupteur d’arrêt distinct via une variable d’environnement, hormis la désactivation de la fonctionnalité dans les paramètres.
Injection des compétences src/lib/skills/injection.ts skillsEnabled dans le tableau de bord (activé par défaut) Désactivez Paramètres → Mémoire/Compétences (skillsEnabled). Les paramètres de bac à sable ci-dessous ne font que limiter l’exécution une fois l’injection déjà activée.
Actualisation des jetons src/sse/services/tokenRefresh.ts Activée pour les fournisseurs OAuth/web connectés Déconnectez le fournisseur ou laissez les jetons rester valides ; il n’existe actuellement aucune variable d’environnement TOKEN_REFRESH=0.

Si /healthz est lent sur une machine peu sollicitée, désactivez d’abord la mémoire et les compétences, puis vérifiez la charge liée au catalogue et à la compression (#10303, #9685). Ces fonctionnalités cèdent l’exécution aux points await, mais se disputent toujours l’unique thread.

Paramètres de la couche d’embedding, du magasin vectoriel et du reclassement pour le sous-système de mémoire persistante (src/lib/memory/).

Variable Valeur par défaut Description
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 min) Durée de vie du cache d’embeddings en mémoire (par signature source/modèle/dimension).
MEMORY_EMBEDDING_CACHE_MAX 1000 Nombre maximal d’entrées LRU conservées dans le cache d’embeddings.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 Identifiant du dépôt HF pour le pipeline MiniLM local @huggingface/transformers, à activer explicitement (~23 Mo en int8, ~400 Mo de RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M Identifiant du dépôt HF pour le modèle d’embedding statique potion/Model2Vec basé sur une table de correspondance. Téléchargé à la demande dans le répertoire de cache.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Répertoire utilisé pour mettre en cache les fichiers du modèle potion statique. Par défaut, il se trouve sous DATA_DIR lorsque la variable n’est pas définie.
HF_HUB_ENDPOINT https://huggingface.co Remplace l’URL de base de Hugging Face Hub utilisée par staticPotion.ts (par ex. un point de terminaison miroir pour les environnements isolés du réseau).
MEMORY_VEC_TOP_K 20 Valeur top-K par défaut utilisée par la recherche vectorielle exhaustive sqlite-vec dans src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Constante k de fusion réciproque des rangs pour la récupération hybride FTS5 + vectorielle (recette sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Point d’injection pour les tests/diagnostics dans getVectorStore() (src/lib/memory/vectorStore.ts) : lorsque la valeur est true, force le magasin vectoriel à null (simule un environnement cloud/WASM sans sqlite-vec), ce qui réduit la récupération en mémoire à une recherche par mots-clés FTS5. Laissez cette variable non définie en production.
NOTION_API_KEY (non définie) Clé d’API pour le backend Notion (utilisée par la configuration prédéfinie de backend connu dans genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 URL de base de l’API Notion (peut être remplacée pour les alternatives auto-hébergées à Notion).
OBSIDIAN_API_KEY (non définie) Clé d’API pour le backend Obsidian Vault (utilisée par la configuration prédéfinie de backend connu dans genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 URL de base de l’API Obsidian Vault (peut être remplacée pour un coffre distant).
MEMORY_TYPED_DECAY_ENABLED false Interrupteur principal de la dégradation typée de la mémoire TV6. Activation explicite requise (désactivé par défaut) — le balayage supprime les souvenirs dégradés. Lorsque cette option est désactivée, access_count/last_accessed_at constituent uniquement des données de télémétrie et rien n’est jamais supprimé.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 Durée de vie (en jours) après laquelle un souvenir episodic inutilisé se dégrade. 0 rend également les souvenirs épisodiques immunisés. Les types durables (factual/procedural/semantic) sont toujours immunisés. L’horloge de dégradation est recalée sur last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Un souvenir injecté au moins ce nombre de fois devient immunisé contre la dégradation, quel que soit son type. 0 désactive l’immunité liée aux accès.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (désactivé) Intervalle (en secondes) du balayage périodique facultatif de dégradation dans src/lib/memory/typedDecay.ts. 0/non défini = aucun balayage périodique. Double activation explicite : nécessite également MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (non définie) Identifiants de fournisseurs séparés par des virgules (insensibles à la casse) qui n’acceptent un message system qu’à l’index 0 (src/lib/memory/injection.ts). Pour ceux-ci, l’insertion de la mémoire au milieu du tableau, conçue pour préserver le cache, n’est pas sûre dans les conversations à plusieurs tours ; la mémoire est donc fusionnée/ajoutée en préfixe au message système initial. Par défaut, uniquement xiaomi-mimo/mimo ; étendez cette liste aux points de terminaison compatibles avec OpenAI et auto-hébergés (par ex. Qwen3.5+/3.6) dont le modèle de chat impose la même contrainte d’un unique message système initial.

128 est réservé au tableau de bord. Avec cette taille de tas, les agents de codage rencontrent une FATAL ERROR pendant les longues requêtes /v1/responses. N’utilisez pas cet exemple comme passerelle Claude/Codex/Grok.

Fenêtre de terminal
OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288 # 512 Ko
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 Mo
STREAM_HISTORY_MAX=10

Synchronisation automatique des données tarifaires des modèles depuis des sources externes.

Variable Valeur par défaut Fichier source Description
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Synchronisation périodique des tarifs sur option.
PRICING_SYNC_INTERVAL 86400 (24 h) src/lib/pricingSync.ts Intervalle de synchronisation en secondes.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Sources de données séparées par des virgules.

Variable Valeur par défaut Fichier source Description
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Synchronisation périodique du classement ELO d’Arena AI, configurable depuis les indicateurs de fonctionnalité du tableau de bord ou avec false pour la désactiver.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Forme du préfixe utilisée pour les identifiants de modèles dans GET /v1/models. dual publie à la fois le préfixe court d’alias et le préfixe canonique du fournisseur pour chaque modèle (rétrocompatibilité — double approximativement la taille du catalogue) ; alias émet un identifiant par modèle ; canonical émet uniquement le préfixe complet de l’identifiant du fournisseur (les fournisseurs dont l’alias correspond déjà à l’identifiant canonique conservent leur entrée unique). Les clients peuvent remplacer ce comportement pour chaque requête avec ?prefix=alias. Consultez API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24 h) src/lib/arenaEloSync.ts Intervalle de synchronisation en secondes.

Fournisseur du playground PromptQL (non officiel/expérimental)

Section intitulée « Fournisseur du playground PromptQL (non officiel/expérimental) »

Passerelle de session GraphQL rétroconçue pour prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Tous les paramètres sont facultatifs — les valeurs par défaut pointent vers les endpoints publics du playground ; ne les remplacez que pour un déploiement PromptQL auto-hébergé ou alternatif.

Variable Valeur par défaut Fichier source Description
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Endpoint GraphQL utilisé pour les opérations de chat et de session.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Endpoint GraphQL utilisé pour interroger le solde et l’utilisation des crédits.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Endpoint utilisé pour tenter d’actualiser le jeton.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Durée maximale (ms) d’interrogation de thread_events avant expiration du délai.

Fournisseur Web HyperAgent (non officiel/expérimental)

Section intitulée « Fournisseur Web HyperAgent (non officiel/expérimental) »

Passerelle de session issue de l’ingénierie inverse pour hyperagent.com (src/shared/constants/providers/web-cookie.ts). Facultatif — la valeur par défaut pointe vers le point de terminaison public de facturation/d’utilisation ; ne la remplacez que pour un déploiement HyperAgent auto-hébergé/alternatif.

Variable Valeur par défaut Fichier source Description
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Point de terminaison utilisé pour récupérer les blocs de crédits de facturation/d’utilisation.

Consultation du solde personnel en USD et de l’utilisation de Kilo Pass pour le fournisseur Kilo Code. Facultatif — la valeur par défaut pointe vers l’API Kilo publique ; ne la remplacez que pour un relais/environnement de test. L’authentification utilise le jeton d’accès OAuth existant de la connexion.

Variable Valeur par défaut Fichier source Description
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts URL de base utilisée pour récupérer le solde personnel Kilo Code et l’utilisation de Kilo Pass.

Fournisseur Web Adobe Firefly (non officiel/expérimental)

Section intitulée « Fournisseur Web Adobe Firefly (non officiel/expérimental) »

Actualisation de session pilotée par navigateur pour le fournisseur Web Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Facultatif — toutes les valeurs par défaut sont optimisées pour une installation de bureau standard.

Supprimé dans #9255. L’ancien environnement d’exécution Chrome connecté via CDP (adobeFireflyChromeRuntime.ts) a été remplacé par un service de connexion par navigateur Playwright, et ses paramètres n’existent plus. Les variables ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, ainsi que ADOBE_FIREFLY_LOGIN_WAIT_MS et ADOBE_FIREFLY_FORTER_WAIT_MS, ne sont lues nulle part dans la base de code — les définir n’a aucun effet.

Variable Valeur par défaut Fichier source Description
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Définissez sur 1 pour utiliser Chrome en mode véritablement sans interface graphique (problème connu pour la génération ; débogage uniquement).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Activation/désactivation facultative du préchauffage proactif du navigateur. 0 désactive le préchauffage proactif (la récupération après une erreur 408 en milieu de lot s’applique toujours).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Définissez sur 0 pour désactiver la persistance de la session Adobe Firefly sur le disque.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (non défini) open-sse/services/adobeFireflySession.ts Intervalle minimal (ms) imposé entre deux soumissions successives, remplaçant la valeur par défaut intégrée.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (non défini) open-sse/services/adobeFireflySession.ts Intervalle supplémentaire (ms) ajouté après la réussite d’un lot, remplaçant la valeur par défaut intégrée.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (non défini) open-sse/services/adobeFireflyClient.ts Délai de base (ms) avant la soumission d’une requête de génération, remplaçant la valeur par défaut intégrée.

Variable Valeur par défaut Fichier source Description
MODELS_DEV_SYNC_ENABLED (non définie) src/lib/modelsDevSync.ts Remplacement forcé pour la synchronisation des tarifs de models.dev. Non définie = respecte Paramètres > IA (modelsDevSyncEnabled). 0/false/off/no prévaut sur la base de données et ignore à la fois la synchronisation périodique et les analyses SQL/JSON de getModelsDevPricing() (récupération lorsque le tableau de bord est bloqué sur la même boucle d’événements). 1/true/on/yes force l’activation de la synchronisation. L’enregistrement/l’effacement des tarifs appelle toujours backupDbFile("pre-write"), qui ne fait rien pendant la temporisation de 60 minutes ou si DISABLE_SQLITE_AUTO_BACKUP est défini.
MODELS_DEV_SYNC_INTERVAL 86400 (24 h) src/lib/modelsDevSync.ts Intervalle de synchronisation du catalogue de modèles en environnement de développement, en secondes.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 h) src/lib/contextWindowResolver.ts Intervalle (en secondes) du mécanisme d’auto-correction des fenêtres de contexte (5004) : épingle les fenêtres déclarées par le fournisseur et découvertes via /models en tant que remplacements auto:discovery lorsqu’elles divergent du catalogue. Définissez cette valeur sur 0 pour le désactiver. Réutilise les données déjà synchronisées (aucune nouvelle récupération) ; ne remplace jamais les remplacements manual.

Variable Valeur par défaut Fichier source Description
OPENROUTER_CATALOG_TTL_MS 86400000 (24 h) src/lib/catalog/openrouterCatalog.ts Durée de vie du cache du catalogue de modèles OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Inclut des champs name adaptés à l’affichage dans les réponses de /v1/models. Désactivez cette option pour les clients qui attendent uniquement des identifiants.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 s) src/app/api/v1/models/catalogCache.ts Délai d’attente maximal à froid pour une reconstruction mutualisée du catalogue par GET /v1/models (#12627). En cas d’expiration du délai, la dernière réponse 200 valide est renvoyée lorsqu’elle existe.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 jours) src/lib/db/models/activeSyncedCatalog.ts Ancienneté au-delà de laquelle la liste synchronisée des modèles d’une connexion cesse de faire autorité pour le routage, qui se rabat alors sur le registre (#12849). Les lignes n’ayant jamais été horodatées sont considérées comme obsolètes.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Durée d’attente maximale pour les tâches de génération d’images NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Fréquence d’interrogation des tâches NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Délai de base pour le backoff exponentiel des nouvelles tentatives d’envoi de mise à l’échelle Adobe Firefly.
AWS_REGION (non définie) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Région utilisée pour construire les points de terminaison AWS Bedrock (Kiro, audio).
AWS_DEFAULT_REGION (non définie) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Valeur de repli lorsque AWS_REGION n’est pas définie.
CLOUDFLARE_ACCOUNT_ID (non définie) open-sse/executors/cloudflare-ai.ts Identifiant de compte pour Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (non définie) open-sse/executors/cloudflare-playground.ts Chemin complet vers le binaire de bureau Chrome pour l’exécuteur Cloudflare AI Playground, utilisé lorsque la vérification d’empreinte en mode sans interface graphique bloque la version de Chromium fournie avec Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Remplace la base de l’API REST Cloudflare utilisée par l’outil de déploiement du relais Workers du pool de proxys (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Nom par défaut du projet worker suggéré dans la fenêtre modale « Deploy Relay » du pool de proxys.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Définissez cette variable sur false pour masquer l’option de relais Cloudflare Workers dans l’onglet Proxy Pool.
CLOUDFLARED_BIN détection automatique src/lib/cloudflaredTunnel.ts Chemin personnalisé vers le binaire cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Protocole de transport du tunnel : http2 (par défaut), quic ou auto.
CLOUDFLARED_CONFIG (non définie) src/lib/cloudflaredTunnel.ts Chemin vers un fichier config.yml cloudflared géré localement (avec tunnel:, credentials-file:, ingress:). Lorsqu’il est défini, OmniRoute exécute tunnel --config &lt;path&gt; run (tunnel nommé) au lieu d’un tunnel rapide éphémère.
CLOUDFLARED_HOSTNAME (depuis l’ingress de la configuration) src/lib/cloudflaredTunnel.ts Remplacement du nom d’hôte public du tunnel nommé (par exemple ai.example.com), indiqué sous la forme publicUrl/apiUrl. Lorsqu’il n’est pas défini, il est lu depuis le premier nom d’hôte ingress de la configuration.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Remplace la base de l’API REST Deno Deploy utilisée par le déployeur de relais du pool de proxys (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Nom d’application Deno Deploy par défaut suggéré dans la fenêtre modale « Deploy Relay » du pool de proxys.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Définissez cette variable sur false pour masquer l’option de relais Deno Deploy dans l’onglet Proxy Pool.
SEARCH_CACHE_TTL_MS 300000 (5 min) open-sse/services/searchCache.ts Durée de vie du cache des réponses des API de recherche (Perplexity, Brave, etc.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Affiche l’interface expérimentale des fournisseurs compatibles avec CC pour les relais réservés à Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Remplace l’hôte sur lequel l’instance 9router intégrée écoute.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Remplace le port sur lequel l’instance 9router intégrée écoute.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Hôte de liaison du proxy WebSocket du service intégré (boucle locale uniquement par défaut).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Port du serveur proxy WebSocket du service intégré.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Hôte de la passerelle CLIProxyAPI (intégration héritée).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Port de la passerelle CLIProxyAPI.
CLIPROXYAPI_API_KEY (vide) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Clé de secours du plan de données lorsque le paramètre cliproxyapi_api_key est absent.
CLIPROXYAPI_MANAGEMENT_KEY (vide) src/lib/services/cliproxyAccountHealth.ts Clé de gestion permettant de consulter l’état des comptes depuis une instance CLIProxyAPI gérée en externe.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Répertoire de configuration de CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Interface hôte sur laquelle docker-compose publie le conteneur annexe cliproxyapi (#12578). Son volume de données contient les identifiants OAuth/API des fournisseurs et l’image épinglée ne permet pas de remplacer les api-keys du plan de données au moyen de variables d’environnement (uniquement via un fichier config.yaml monté) ; utiliser 0.0.0.0 expose donc à l’ensemble du réseau local un service contenant des identifiants.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Remplace le port sur lequel le démon intégré d’orchestration d’agents Mux (coder/mux) écoute (toujours sur 127.0.0.1).
OPENWA_SERVICE_PORT 8323 src/lib/services/bootstrap.ts Remplace le port sur lequel le démon intégré open-wa (automatisation de WhatsApp Web) écoute (toujours sur 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Hôte de liaison/connexion du service intégré Dario (boucle locale uniquement par défaut).
DARIO_PORT 3456 open-sse/executors/dario.ts Port du service intégré Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Hôte de liaison/connexion du service intégré Dario (boucle locale uniquement par défaut).
DARIO_PORT 3456 open-sse/executors/dario.ts Port du service intégré Dario.
LOCAL_HOSTNAMES (vide) open-sse/config/providerRegistry.ts Noms d’hôte supplémentaires séparés par des virgules et traités comme « locaux » (noms de services Docker, etc.).

ENABLE_CC_COMPATIBLE_PROVIDER est réservé aux relais tiers qui acceptent exclusivement les clients Claude Code. OmniRoute réécrit les requêtes afin que ces relais les acceptent. Si vous souhaitez uniquement utiliser la CLI Claude Code, ou si vous ne savez pas exactement ce que sont ces relais, laissez cette option désactivée et ajoutez plutôt un fournisseur standard compatible avec Anthropic.


Variable Valeur par défaut Fichier source Description
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Délai d’expiration de la vérification d’état en échec rapide.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Fenêtre temporelle (en heures) utilisée pour calculer la latence moyenne des proxys candidats dans la stratégie de pool optimisée pour la latence.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts Durée de vie (TTL) du cache des résultats de vérification d’état.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts Durée de vie (TTL) du cache pour les sondes d’état de proxy ayant échoué. Conservez une durée inférieure à PROXY_HEALTH_CACHE_TTL_MS afin que les délais d’expiration temporaires des proxys en cas de forte concurrence soient rapidement retentés, sans désactiver l’échec rapide pour les proxys réellement hors service.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Définissez cette variable sur false pour désactiver le planificateur d’état des proxys en arrière-plan, qui sonde périodiquement les proxys enregistrés.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervalle, en ms, entre les balayages du planificateur d’état en arrière-plan (minimum : 60000).
PROXY_HEALTH_RECOVERY_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervalle en ms de la passe de récupération en arrière-plan : fréquence à laquelle les proxys précédemment défaillants sont testés à nouveau afin qu’un proxy rétabli soit réintégré à la rotation sans redémarrage. Les valeurs inférieures à 60000 sont remplacées par la valeur par défaut.
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Cible du test d’accessibilité utilisée par le planificateur et le point de terminaison /api/settings/proxies/auto-test. Définissez-la sur une URL interne/auto-hébergée pour éviter la cible publique par défaut.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Nombre de tests lancés simultanément par lot, commun au planificateur et au point de terminaison /api/settings/proxies/auto-test. Arrondi à l’entier inférieur, avec un minimum de 1 et un maximum de 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Délai en ms entre deux départs de test au sein d’un lot. Sans ce délai, le lot entier est envoyé au même moment et une adresse IP de sortie partagée peut déclencher la limitation de débit de la cible. Définissez cette valeur sur 0 pour désactiver l’espacement ; elle est plafonnée à 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Définissez sur « false » pour ne plus tester l’hôte réel du fournisseur attribué à un proxy (GET /models, sans clé API) et toujours utiliser PROXY_HEALTH_TEST_URL à la place.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Lorsque la valeur est false (par défaut), les tests automatisés d’accessibilité (le planificateur + le bouton « Test All » de /api/settings/proxies/auto-test) sont en lecture seule et ne modifient jamais le statut d’un proxy — seul l’opérateur définit l’état actif/inactif, afin qu’un test instable ne puisse pas bloquer un proxy attribué (#6246). Définissez la valeur sur true pour restaurer l’ancien comportement de test et de mise à jour du statut.
FLUSH_EMPTY_RETRY_ENABLED false src/shared/utils/featureFlags.ts Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une valeur définie dans la base de données depuis le tableau de bord est prioritaire). true (ou 1, yes) relance les tours de streaming traduits vides via le chemin normal des identifiants (jusqu’à STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX nouvelles tentatives), au lieu d’exposer une réponse 200 vide ou une réponse 502 au contenu vide.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une valeur définie dans la base de données depuis le tableau de bord est prioritaire). true (ou 1, yes) affiche, sous un pool de proxys dans le tableau de bord, l’observation en lecture seule des sorties du pool (adresses IP de sortie distinctes, connexions et nombre maximal observé derrière une même adresse IP au cours des dernières 24 h, d’après le journal des proxys). Jamais utilisé pour le routage.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Définissez sur true pour permettre au planificateur de supprimer automatiquement les proxys après plusieurs échecs consécutifs.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Nombre d’échecs consécutifs avant que le planificateur ne supprime automatiquement un proxy (lorsque PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Définissez sur true pour permettre au planificateur de désactiver de manière réversible (statut dead, sans suppression) un proxy après plusieurs échecs consécutifs, au lieu de le supprimer. Alternative non destructive à PROXY_AUTO_REMOVE : le proxy est immédiatement exclu de la résolution des pools et de la rotation (le filtre de statut actif utilisé par la résolution des pools de portée l’exclut déjà) et est automatiquement réactivé dès qu’il réussit de nouveau les sondes. Utilise le même seuil PROXY_AUTO_REMOVE_AFTER. Si les deux indicateurs sont définis sur true, PROXY_AUTO_REMOVE est prioritaire.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Permettre aux flux de validation OAuth et des fournisseurs de contourner un proxy épinglé et de se connecter directement lorsque les vérifications préalables d’accessibilité du proxy échouent. L’ordre de priorité effectif est le suivant : remplacement par la base de données des indicateurs de fonctionnalité > variable d’environnement > valeur par défaut.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) src/lib/resilience/settings.ts Budget d’attente dans la file par défaut : durée pendant laquelle une requête peut attendre un créneau auprès d’un fournisseur et rester dans la file avant d’être rejetée, sans jamais atteindre le service en amont. Le minuteur est arrêté dès que l’exécution de la tâche commence — l’exécution est limitée séparément par RATE_LIMIT_EXECUTION_MAX_WAIT_MS. La variable d’environnement définit uniquement la valeur par défaut : une valeur persistée resilienceSettings.requestQueue.maxWaitMs, puis une valeur rateLimitOverrides.maxWaitMs propre à chaque connexion, sont chacune prioritaires sur celle-ci.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 min) open-sse/services/rateLimitManager.ts Durée maximale pendant laquelle une requête admise peut rester en cours d’exécution avant l’expiration de sa réservation de limite de débit — découplée du budget d’attente dans la file afin qu’un démarrage lent de la récupération sur les passerelles non incrémentales n’entraîne pas d’expiration du délai (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (désactivé) open-sse/services/rateLimitManager.ts Limite d’admission dans la file : rejette avec une erreur 429 queue_full lorsque ce nombre de requêtes est déjà en attente. 0 = sans limite (valeur par défaut).
RATE_LIMIT_AUTO_ENABLE (non défini) open-sse/services/rateLimitManager.ts Force l’activation ou la désactivation du mécanisme de sécurité d’activation automatique de la limite de débit, indépendamment du paramètre persistant du tableau de bord. Accepte true/1/on pour forcer l’activation, et false/0/off pour forcer la désactivation.
PROVIDER_COOLDOWN_ENABLED (non défini → désactivé) open-sse/services/providerCooldownTracker.ts Suivi global et facultatif, entre les requêtes, du délai de récupération des fournisseurs/connexions. DÉSACTIVÉ par défaut (fait double emploi avec le délai de récupération des connexions / le disjoncteur des fournisseurs). Accepte true/1/on pour l’activer.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Délai de récupération minimal (ms) avant de réessayer un fournisseur/une connexion ayant échoué. Augmente exponentiellement en fonction des échecs consécutifs. Utilisé uniquement lorsque PROVIDER_COOLDOWN_ENABLED est activé.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 min) open-sse/services/providerCooldownTracker.ts Limite maximale du délai de récupération (ms) avant de réessayer malgré tout un fournisseur/une connexion ayant échoué. Utilisé uniquement lorsque PROVIDER_COOLDOWN_ENABLED est activé.
STREAM_RECOVERY_ENABLED (non défini → désactivé) src/lib/resilience/settings.ts (initialisation) → open-sse/services/streamRecovery.ts (logique) Fonction : récupération transparente des flux en amont tronqués (portage de free-claude-code). Retient la fenêtre SSE d’ouverture pendant un maximum de STREAM_RECOVERY.HOLDBACK_MS (750 ms), afin qu’une interruption avant validation — qui survient avant qu’un seul octet n’atteigne le client — entraîne la réouverture du flux et une nouvelle tentative de manière invisible. Quand l’activer : pour les flux en amont instables/fréquemment tronqués sans aucun octet au démarrage ; laissez cette option DÉSACTIVÉE si vous ne pouvez pas accepter jusqu’à 750 ms supplémentaires avant le premier jeton sur chaque flux. Accepte true/1/on. Initialise le paramètre persistant de résilience ; une fois défini, le paramètre du tableau de bord prévaut.
STREAM_RECOVERY_MIDSTREAM_ENABLED (non défini → désactivé) src/lib/resilience/settings.ts (initialisation) → open-sse/services/streamRecovery.ts (logique) Fonction : continuation en milieu de flux (phase 4.4) — après une troncation postérieure à la validation (des octets ont déjà atteint le client), effectue une nouvelle requête en utilisant le texte partiel comme préremplissage de l’assistant, puis raccorde le suffixe manquant. Uniquement pour les flux OpenAI compatibles en texte brut ; ne se déclenche jamais lorsqu’un appel d’outil est en cours. Quand l’activer : pour les longues générations interrompues en cours de réponse, si vous acceptez que la fin récupérée arrive en une seule salve plutôt que jeton par jeton. Indépendant de STREAM_RECOVERY_ENABLED (profil de risque différent). Accepte true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (non défini → désactivé) src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts Chien de garde facultatif de la sortie utile des flux actifs. Détecte les flux qui continuent d’envoyer des fragments tout en restant sous le débit configuré de sortie de l’assistant ; les pulsations, les événements d’utilisation, les deltas vides et les phases d’utilisation d’outils/de raisonnement ne sont pas considérés à tort comme une progression. Distinct des délais d’expiration d’inactivité et des échéances strictes.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Période de grâce avant l’évaluation du débit, limitée à 0–600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Fenêtre glissante de sortie utile, limitée à 1000–600000 ms ; une fenêtre complète est requise avant l’interruption.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Débit minimal, en octets UTF-8, de la sortie de l’assistant (approximation prudente du débit de jetons), limité à 1–1000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Taille minimale non nulle d’un échantillon de sortie utile considéré comme mesurable, limitée à 1–1000000 octets.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Intervalle de décalage (ms) entre les contrôles d’état des jetons des fournisseurs au démarrage.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Gigue aléatoire minimale (ms) ajoutée à HEALTHCHECK_STAGGER_MS entre les contrôles d’état des jetons des fournisseurs, afin d’éviter les rafales (problème nº 1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Gigue aléatoire maximale (ms) ajoutée à HEALTHCHECK_STAGGER_MS entre les contrôles d’état des jetons des fournisseurs, afin d’éviter les rafales (problème nº 1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Taille des lots de contrôles simultanés pour le balayage des contrôles d’état des jetons au démarrage ; les valeurs élevées vérifient davantage de connexions en parallèle, tandis que les valeurs faibles réduisent la charge en rafale (problème nº 7875, régression du nº 7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Nombre de nouvelles tentatives automatiques lors de réponses de temporisation propres au modèle avant de renvoyer une erreur au client.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Intervalle maximal d’attente exponentielle (en secondes) entre les nouvelles tentatives après temporisation. Limité à cette valeur, quelle que soit la valeur amont de Retry-After.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL du proxy économiseur de jetons Headroom. Par défaut, le cycle de vie du tableau de bord (api/headroom/*) lance une CLI headroom-ai locale sur l’interface de bouclage ; ne remplacez cette valeur que pour pointer vers un proxy side-car Docker externe.

Constantes de réglage de la récupération des flux

Section intitulée « Constantes de réglage de la récupération des flux »

Le comportement de temporisation de la récupération est réglé à l’aide de constantes codées en dur dans open-sse/config/constants.ts (STREAM_RECOVERY), présentées ici à titre de référence — leur modification nécessite une modification du code, et non une variable d’environnement :

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — durée pendant laquelle la fenêtre SSE initiale est retenue afin qu’une troncature précoce puisse faire l’objet d’une nouvelle tentative avant qu’un quelconque octet ne soit transmis au client.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — limite stricte de la fenêtre retenue ; la valider (vidage + transmission directe) dès que ce nombre d’octets est accumulé, indépendamment du minuteur.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — nombre maximal de réouvertures transparentes du flux amont tant que la temporisation n’a pas encore été validée.

Limite de débit par fenêtre glissante et par fournisseur (aucune variable d’environnement) : le mécanisme de repli de limitation du débit par fenêtre glissante et par fournisseur, porté depuis FCC, existe dans le code (open-sse/services/providerDefaultRateLimit.ts, connecté via open-sse/services/rateLimitManager.ts), mais est fourni avec une table de valeurs par défaut vide et ne dispose actuellement d’aucune variable d’environnement pour l’opérateur — il est activé uniquement au moyen d’un point d’injection pour les tests / d’une modification du code. Il n’est volontairement pas répertorié dans le tableau ci-dessus. Le limiteur de relais par (token, IP) qui dispose d’un paramètre est RELAY_IP_PER_MINUTE (§3 Réseau et ports).


[!CAUTION] Ces variables produisent une sortie détaillée et peuvent divulguer des données sensibles. Ne les activez jamais en production.

Variable Valeur par défaut Fichier source Description
CURSOR_DEBUG (non définie) open-sse/executors/cursor.ts Définissez cette variable sur 1 pour activer les journaux détaillés de l’exécuteur Cursor (fragments SSE décodés, etc.).
CURSOR_STREAM_DEBUG (non définie) open-sse/executors/cursor.ts Alias rétrocompatible de CURSOR_DEBUG.
CURSOR_DUMP_FILE (non définie) open-sse/executors/cursor.ts Chemin de fichier facultatif recevant les fragments Cursor bruts décodés lorsque CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Délai d’expiration d’inactivité du flux (ms) pour l’exécuteur Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Fenêtre de grâce (ms) après un terminateur souple composer kv_after_text lorsque des octets restent en mémoire tampon — laisse à un appel d’outil exec_mcp final le temps de terminer sa trame.
CURSOR_TOOL_DIRECTIVE activée (!== "0") open-sse/executors/cursor.ts Directive de validation d’outil qui permet à composer-2.5 d’émettre des appels d’outils de manière fiable. Définissez-la sur 0 pour la désactiver.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (non définie) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Texte d’invite système défini par l’opérateur et ajouté au message système APRÈS la traduction (injection post-traduction), atteignant les chemins codex/Responses et /v1/messages. Également utilisé comme préfixe de directive supprimé des blocs de préambule système renvoyés en écho. Laissez cette variable non définie pour désactiver cette fonctionnalité.
OMNIROUTE_STRIP_SYSTEM_PREAMBLE 0 (désactivée) open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts Définissez cette variable sur 1 pour supprimer les blocs de préambule d’invite système renvoyés en écho au début d’un flux openai→claude. Désactivée par défaut — les heuristiques sont conçues pour de la prose anglaise et modifient la charge utile de la réponse ; une réponse commençant légitimement par une telle section la perdrait donc.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Délai d’expiration de récupération par image (ms) pour une entrée de vision image_url distante.
CURSOR_STATE_DB_PATH (détectée) open-sse/utils/cursorVersionDetector.ts Remplace la recherche de la base de données d’état de l’IDE Cursor utilisée pour détecter la version de l’IDE.
CURSOR_AGENT_CLI_VERSION (détecter / fixer) open-sse/utils/cursorAgentCliVersion.ts Identifiant de build de l’interface CLI de l’agent (YYYY.MM.DD-&lt;hash&gt;) pour x-cursor-client-version: cli-… sur Agent Run.
CURSOR_AGENT_BIN (non définie) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Chemin vers le binaire Cursor Agent utilisé pour la génération d’images. Lorsqu’elle n’est pas définie, le gestionnaire utilise providerSpecificData.agentBin, puis PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Temps écoulé maximal par image (ms) pour les tâches d’image de Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limite de concurrence du poste partagé pour les tâches d’image Cursor.
CURSOR_IMG_MODEL requête / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Remplace l’option --model de la CLI Cursor pour les tâches d’image.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Fréquence d’interrogation des résultats de génération d’images UC (uncensored.com) (ms).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Durée maximale d’interrogation des résultats de génération d’images UC (ms).
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Fréquence d’interrogation des résultats de génération de vidéos UC (uncensored.com) (ms).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Durée maximale d’interrogation des résultats de génération de vidéos UC (ms).
CURSOR_DATA_DIR (détecté) open-sse/utils/cursorAgentCliVersion.ts Remplace le répertoire de données de la CLI Cursor Agent (…/versions/&lt;id&gt;) ; il s’agit de la même variable que celle utilisée par l’agent officiel.
CURSOR_TOKEN (non définie) scripts/ad-hoc/cursor-tap.cjs Jeton de porteur Cursor direct utilisé par les outils de développement.
OMNIROUTE_LOG_REQUEST_SHAPE désactivée (activation explicite via "1") src/app/api/v1/chat/completions/route.ts Consigne les indicateurs de type et de longueur du contenu pour les charges utiles de discussion volumineuses lorsque cette variable est définie sur "1". Désactivée par défaut pour réduire le bruit dans les journaux.
DEBUG_RESPONSES_SSE_TO_JSON (non définie) open-sse/handlers/responseTranslator.ts Définissez cette variable sur true pour journaliser les détails de la traduction SSE→JSON de l’API Responses.
DEBUG_CLAUDE_NONSTREAM (non définie) open-sse/handlers/responseTranslator.ts Définissez cette variable sur true pour faire apparaître les fragments textContent vides dans le chemin de traduction des réponses Claude (débogage uniquement).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (non définie) Banc de test E2E Définissez cette variable sur true pour activer le mode de test E2E (authentification assouplie, points d’accroche de test).

Permet aux utilisateurs de signaler des problèmes directement depuis le tableau de bord.

Variable Valeur par défaut Fichier source Description
GITHUB_ISSUES_REPO (non définie) src/app/api/v1/issues/report/route.ts Dépôt au format owner/repo.
GITHUB_ISSUES_TOKEN (non définie) src/app/api/v1/issues/report/route.ts Jeton d’accès personnel GitHub avec la portée issues:write.
GITHUB_TOKEN (non définie) triage des problèmes / assistants d’agent cloud Jeton d’accès GitHub générique utilisé comme solution de repli pour GITHUB_ISSUES_TOKEN et exploité par les assistants d’agent cloud dans src/lib/cloudAgent/*.

Pour obtenir des recommandations SRE sur le backend de relais (comportement ts/bifrost/auto, positionnement de 9router par rapport à CLIProxyAPI et stratégie de repli à haut débit), consultez Stratégie du backend de relais.

Fenêtre de terminal
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
Fenêtre de terminal
JWT_SECRET=<généré>
API_KEY_SECRET=<généré>
INITIAL_PASSWORD=<généré>
STORAGE_ENCRYPTION_KEY=<généré>
DATA_DIR=/data
PORT=20128
API_PORT=20129
NODE_ENV=production
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://localhost:20128
OMNIROUTE_MEMORY_MB=8192
CORS_ORIGIN=https://your-frontend.example.com
Fenêtre de terminal
JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false
Fenêtre de terminal
JWT_SECRET=<généré>
API_KEY_SECRET=<généré>
STORAGE_ENCRYPTION_KEY=<généré>
PORT=20128
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://127.0.0.1:20128
CORS_ORIGIN=https://omniroute.example.com
ENABLE_TLS_FINGERPRINT=true
CLI_COMPAT_ALL=1

Limites et paramètres de sécurité appliqués lorsque le framework de compétences (src/lib/skills/) exécute des automatisations définies par l’utilisateur dans un environnement en bac à sable.

Variable Valeur par défaut Fichier source Description
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Délai d’expiration en temps réel par exécution pour le code de compétence en bac à sable. Limite stricte ; toute exécution plus longue est interrompue.
SKILLS_EXECUTION_TIMEOUT_MS (utilise SKILLS_SANDBOX_TIMEOUT_MS par défaut) src/lib/skills/ Délai d’expiration de l’orchestration de haut niveau des compétences. Définissez une valeur supérieure à SKILLS_SANDBOX_TIMEOUT_MS pour permettre les workflows à plusieurs étapes.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Nombre maximal d’octets qu’une compétence peut lire dans un fichier unique du bac à sable.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Nombre maximal d’octets capturés à partir d’une réponse HTTP unique au sein d’une compétence.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Limite stricte du nombre de caractères stdout/stderr renvoyés par une invocation du bac à sable.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Définissez sur 1/true pour autoriser les connexions réseau sortantes depuis le bac à sable. La valeur par défaut est isolé pour des raisons de sécurité.
SKILLS_ALLOWED_SANDBOX_IMAGES (vide) src/lib/skills/builtins.ts Liste séparée par des virgules des images de conteneur autorisées pour l’exécution en bac à sable. Une liste vide signifie que seule l’image intégrée par défaut est autorisée.
SKILLS_SANDBOX_DOCKER_IMAGE (valeur intégrée par défaut) src/lib/skills/ Image de conteneur utilisée lors du lancement d’un bac à sable basé sur Docker. Remplacez-la pour épingler une image de base personnalisée et renforcée.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Environnement d’exécution de conteneurs pour l’isolation des compétences : auto | docker | apple | wsl | orbstack | podman. auto sélectionne le meilleur environnement installé selon le système d’exploitation hôte (Apple Container/OrbStack sur macOS, WSL Container sous Windows, Podman sous Linux), avec Docker comme solution de repli.

[!CAUTION] L’activation de SKILLS_SANDBOX_NETWORK_ENABLED=true ouvre un chemin de sortie pour du code de compétence arbitraire. Associez-la à OUTBOUND_SSRF_GUARD_ENABLED=true ainsi qu’à une politique stricte de CORS_ORIGIN/proxy dans les déploiements partagés.


25. Quotas des fournisseurs, tunnels, sauvegardes et divers éléments d’exécution

Section intitulée « 25. Quotas des fournisseurs, tunnels, sauvegardes et divers éléments d’exécution »

Points de terminaison des quotas des fournisseurs, tunnels réseau (Tailscale, Ngrok, proxy de débogage MITM), pool de sortie 1Proxy, sauvegardes de bases de données et petits remplacements propres à certaines fonctionnalités, référencés par la couche d’exécution ou les scripts.

Variable Valeur par défaut Fichier source Description
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts Chaîne de connexion Redis pour le backend du limiteur de débit.
ALIBABA_CODING_PLAN_HOST (hôte de production) open-sse/services/bailianQuotaFetcher.ts Remplace l’hôte utilisé pour récupérer les quotas du plan de codage Alibaba Bailian.
ALIBABA_CODING_PLAN_QUOTA_URL dérivée de l’hôte open-sse/services/bailianQuotaFetcher.ts Remplacement de l’URL complète des quotas pour Alibaba Bailian.
QWEN_CLOUD_COOKIE (non défini) open-sse/services/qwenTokenPlanQuotaFetcher.ts Cookie de session de la console pour la passerelle de quotas du Token Plan personnel de Qwen Cloud / Model Studio (la clé d’API d’inférence ne permet pas de le consulter). Copiez l’intégralité de l’en-tête de requête Cookie — il contient login_qwencloud_ticket — depuis n’importe quel appel à api.json vers cs-data.qwencloud.com sur home.qwencloud.com › Facturation › Abonnement (F12 › Réseau). Donnée sensible et limitée à la session ; privilégiez le champ qwenCloudCookie propre à chaque connexion dans le tableau de bord.
QWEN_CLOUD_SEC_TOKEN (non défini) open-sse/services/qwenTokenPlanQuotaFetcher.ts Remplacement manuel de sec_token pour la passerelle de console du Token Plan. Donnée sensible ; lorsque cette variable n’est pas définie, le récupérateur la détermine à partir du HTML du tableau de bord à l’aide du cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Remplacement de l’hôte de la passerelle pour le récupérateur de quotas du Token Plan personnel (par ex. bailian-singapore-cs.alibabacloud.com pour la console Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts URL du tableau de bord utilisée pour déterminer sec_token à partir du HTML de la session connectée.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Remplacement du chemin du front-end de la console pour récupérer le quota gratuit de vision et de médias d’Alibaba Model Studio.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Remplacement du chemin frontal de la console pour récupérer le quota multimodal de l’offre gratuite d’Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Remplacement du chemin frontal de la console pour récupérer le quota audio de l’offre gratuite d’Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (non défini) open-sse/services/alibabaFreeTierAllowlist.ts Chemin facultatif vers un fichier JSON local remplaçant la liste d’autorisation intégrée des modèles de texte de l’offre gratuite d’Alibaba. Utilise à défaut $DATA_DIR/alibaba-free-tier-allowlist.json, puis config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Jetons réservés à la sortie de complétion lors du calcul des budgets d’invite.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Nombre d’images intégrées les plus récentes à conserver lors de l’élagage des plus anciennes afin de respecter la fenêtre de contexte (#8560).
MODEL_ALIAS_COMPAT_ENABLED activé open-sse/services/model.ts Active ou désactive la couche de compatibilité historique des alias de modèles utilisée par les anciens clients.
OMNIROUTE_EMERGENCY_FALLBACK activé open-sse/services/emergencyFallback.ts Définissez sur false (ou 0) pour désactiver le mécanisme de secours d’urgence en cas d’épuisement du budget, qui redirige les requêtes ayant échoué vers le modèle gratuit nvidia/openai/gpt-oss-120b. L’ordre de priorité effectif est le suivant : remplacement dans la base de données des indicateurs de fonctionnalité > variable d’environnement > valeur par défaut ; en cas d’indisponibilité, le service utilise directement la valeur brute de la variable d’environnement.
COMMAND_CODE_CALLBACK_PORT (non défini) src/app/api/providers/command-code/auth/shared.ts Port local utilisé pour les rappels de type OAuth provenant de l’utilitaire CLI Command Code.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Valeur envoyée en tant qu’en-tête x-command-code-version au service en amont Command Code. Remplacez-la pour mettre à niveau la version de la CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts URL de base du service en amont d’utilisation/de quota de Command Code, utilisée par la télémétrie du récupérateur de quota pour smartphone. À remplacer pour utiliser une API Command Code auto-hébergée ou alternative.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Port de liaison local du proxy de débogage MITM.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Définissez sur 1 pour désactiver la vérification TLS en amont (développement uniquement).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Délai d’expiration d’inactivité des sockets (ms) pour les connexions relayées ; les sockets inactifs au-delà de ce délai sont fermés afin d’éviter les fuites de tunnels semi-ouverts.
BRIDGE_PORT 20129 bin/antigravity-bridge.mjs Port sur lequel écoute le pont MITM Antigravity.
ROUTER_URL http://127.0.0.1:20128/v1/antigravity bin/antigravity-bridge.mjs Point de terminaison du routeur vers lequel le pont transfère le trafic Antigravity.
CERT_DIR ~/.omniroute/mitm bin/antigravity-bridge.mjs Répertoire contenant server.key/server.crt pour l’écouteur TLS du pont ; le pont s’arrête si l’un des deux fichiers est absent.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Niveau de verbosité des journaux de décision de routage : 0 les désactive, tandis que des valeurs supérieures consignent davantage de décisions de contournement/routage.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Définissez sur true pour activer volontairement le modèle d’autorité de certification racine + certificat feuille par hôte (#6684). Les nouvelles installations l’utilisent automatiquement ; les installations disposant déjà d’un certificat feuille hérité approuvé conservent le certificat à SAN fixes hérité, sauf activation volontaire.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Défini PAR le gestionnaire MITM pour le processus de proxy lancé (root-ca | legacy) — reflète la décision de migration des certificats ; n’est pas destiné à être défini manuellement.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Définissez sur 1 (valeur vraie) pour retirer le sudo initial des commandes MITM d’approbation des certificats — pour les déploiements sans privilèges root / utilisant un espace de noms utilisateur, où l’opérateur approuve manuellement l’autorité de certification (par ex. via le mécanisme de certificats d’autorité supplémentaires de Node).
SKIP_ANTIGRAVITY_DNS (non défini) src/mitm/dns/provision.ts Définissez sur true pour ignorer entièrement le provisionnement des entrées DNS dans /etc/hosts pour les noms d’hôte du proxy Antigravity — pour les conteneurs ne disposant ni de sudo ni d’un accès root.
OMNIROUTE_SKIP_DNS_WRITE (non défini) src/mitm/dns/dnsConfig.ts Définissez sur 1 pour ne pas écrire dans le fichier hosts lors de l’ajout ou de la suppression d’entrées DNS — pour les environnements de test en bac à sable ou en lecture seule.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Protection réservée aux tests/à la CI : définissez-la sur 1 pour que l’installation/la désinstallation de la confiance du certificat ne fasse rien, afin que la suite ne modifie jamais le magasin de certificats de confiance du système d’exploitation. Définie automatiquement par la configuration des tests et les workflows de CI.
CHANGELOG_BASE_REF (auto) scripts/check/check-changelog-integrity.mjs Référence de base explicite pour le contrôle empêchant la suppression du CHANGELOG (par défaut, la branche de base de la PR dans la CI, ou la branche release/v* la plus élevée).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Définissez-la sur true pour activer le planificateur de synchronisation automatique en arrière-plan du pool de proxys gratuits. Activation explicite, désactivée par défaut.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Intervalle de synchronisation automatique en millisecondes (30 min par défaut).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Active la source de proxys gratuits 1proxy. Définissez-la sur false pour la désactiver.
FREE_PROXY_1PROXY_API_URL (voir oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Remplacement de l’URL de l’API 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Nombre maximal de proxys récupérés depuis 1proxy à chaque synchronisation.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Seuil minimal du score de qualité pour les importations depuis 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Active la source de proxys gratuits Proxifly. Définissez-la sur false pour la désactiver.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Nombre de proxys à récupérer à chaque synchronisation Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filtre de niveau d’anonymat pour Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Active la source de proxys gratuits IPLocate. Activation explicite uniquement.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Remplacement de l’URL de base de la liste de proxys IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Active la source du pool de proxys Webshare. Définissez cette valeur sur false pour la désactiver ; nécessite également que FREE_PROXY_WEBSHARE_API_KEY soit définie.
FREE_PROXY_WEBSHARE_API_KEY (aucune) src/lib/freeProxyProviders/webshare.ts Jeton d’API du compte Webshare (Authorization: Token &lt;key&gt;). Obligatoire — le fournisseur reste désactivé sans celui-ci.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Remplacement de l’URL de l’API de la liste de proxys Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Nombre maximal de proxys importés par synchronisation Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Affiche ou masque le bouton de déploiement de Vercel Relay dans l’onglet du pool de proxys.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Remplacement de l’URL de base de l’API Vercel (à des fins de test).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Nom de projet par défaut prérempli dans la fenêtre modale de déploiement de Vercel Relay.
TAILSCALE_BIN (détection automatique) src/lib/tailscaleTunnel.ts Chemin explicite vers le binaire tailscale.
TAILSCALED_BIN (détection automatique) src/lib/tailscaleTunnel.ts Chemin explicite vers le binaire du démon tailscaled.
TAILSCALE_AUTHKEY (non défini) src/lib/tailscaleTunnel.ts Clé d’authentification Tailscale prépartagée pour une exécution non interactive / sans interface de tailscale up (transmise via --auth-key=). Lorsqu’elle n’est pas définie, la connexion utilise par défaut l’URL d’authentification interactive dans le navigateur.
NGROK_AUTHTOKEN (non défini) src/lib/ngrokTunnel.ts Authentifie les tunnels ngrok sortants.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Nombre maximal de fichiers de sauvegarde SQLite conservés lors du nettoyage manuel ou planifié des sauvegardes. Les instantanés de migration sont adressés par leur contenu et réutilisés lorsque l’état de la base de données est identique ; ils ne sont pas supprimés pendant la fenêtre de migration simultanée. Remplace la valeur enregistrée dans Paramètres → Conservation des sauvegardes de la base de données.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Âge maximal (en jours) des sauvegardes conservées lors du nettoyage manuel ou planifié. 0 désactive la suppression basée sur l’âge. Les instantanés de migration ne sont pas supprimés pendant la fenêtre de migration simultanée. Remplace la valeur enregistrée dans Paramètres → Conservation des sauvegardes de la base de données.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Intervalle d’exécution (ms) de la tâche côté serveur qui exécute backup-schedule.json. Il doit rester nettement inférieur à la granularité d’une minute de cron ; les valeurs inférieures à 5000 ou impossibles à analyser sont remplacées par 30000.
CONTAINER_HOST docker scripts/check-permissions.sh Indication sur l’environnement d’exécution des conteneurs pour la vérification des autorisations par le point d’entrée. Définissez cette variable sur podman pour toute topologie Podman. Comme le conteneur ne peut pas déterminer si le moteur est local ou accessible via Podman Machine, l’avertissement reste neutre quant à la topologie et renvoie vers contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Backend de stockage de la consommation des quotas partagés : sqlite (par défaut) ou redis.
QUOTA_STORE_REDIS_URL (non défini) src/lib/quota/storeFactory.ts Chaîne de connexion Redis utilisée lorsque QUOTA_STORE_DRIVER=redis (par ex. redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Ratio de saturation du pool (0..1) ; à partir de ce seuil, le pool passe en mode strict (aucun emprunt).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Multiplicateur de score (0..1) appliqué à une cible lorsque la politique de quota souple la rend moins prioritaire.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Multiplicateur de score (0..1) appliqué à un fournisseur épuisé (credits_exhausted/rate_limited) lors de l’évaluation auto-combo lorsque le seuil de quota préalable est DÉSACTIVÉ (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Fenêtre de rétention (en jours) des compartiments quota_consumption avant le GC (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Option facultative (DÉSACTIVÉE par défaut) : active le seuil strict de quota du routage automatique, qui élimine les candidats à faible quota avant l’évaluation.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Option facultative (DÉSACTIVÉE par défaut) : lorsqu’un filtre auto/&lt;category&gt;:&lt;tier&gt; ne correspond à aucun candidat connecté, rétablit l’ancien comportement consistant à revenir au pool complet (non filtré) au lieu de renvoyer un pool vide. DÉSACTIVÉE par défaut signifie que :free désigne « uniquement l’offre gratuite ».
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Limite de taille du panel (bornée entre 1 et 10) pour la variante de diffusion auto/*:chaos — une requête est distribuée à ce nombre maximal de modèles issus de fournisseurs différents.
OMNIROUTE_CHAOS_MIN_PANEL (valeur par défaut du moteur) open-sse/services/autoCombo/virtualFactory.ts Réglage de la taille minimale du panel transmis au gestionnaire de diffusion chaos ; si cette valeur n’est pas définie, la valeur par défaut du moteur est conservée.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (valeur par défaut du moteur) open-sse/services/autoCombo/virtualFactory.ts Délai d’expiration strict (ms) pour l’ensemble de la distribution au panel chaos ; si cette valeur n’est pas définie, la valeur par défaut du moteur est conservée.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Chemin vers le fichier auth.json de la CLI Grok utilisé pour récupérer le quota hebdomadaire de grok-web ; à remplacer pour les tests ou une installation non standard de la CLI.
AGENTBRIDGE_UPSTREAM_CA_CERT (non défini) src/mitm/manager.ts Certificat d’autorité de certification supplémentaire (PEM) approuvé pour les connexions TLS en amont d’AgentBridge.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Nombre maximal de requêtes capturées conservées dans le tampon circulaire de l’inspecteur de trafic.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Taille maximale du corps des requêtes/réponses capturées (Ko) avant troncature.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Port local du proxy HTTP de l’inspecteur de trafic.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Démarrer automatiquement le proxy HTTP de l’inspecteur au démarrage.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Activer l’interception TLS (MITM) pour le trafic HTTPS capturé.
INSPECTOR_LLM_HOSTS_EXTRA (non défini) src/lib/inspector/captureState.ts Noms d’hôte supplémentaires (séparés par des virgules) traités comme des points de terminaison LLM pour la capture.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Masquer les secrets (en-têtes d’authentification / clés d’API) dans le trafic capturé.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Nombre de minutes avant que le mécanisme de protection du proxy système ne rétablisse automatiquement les paramètres de proxy du système d’exploitation.
INSPECTOR_INTERNAL_INGEST_TOKEN (automatique) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Jeton authentifiant l’ingestion interne des captures dans l’inspecteur.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Nombre maximal de colonnes côte à côte dans le mode de comparaison du Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (non défini) src/app/(dashboard)/dashboard/playground/ Modèle par défaut pour l’action « améliorer le prompt » du Playground (utilise le modèle actif lorsque cette variable n’est pas définie).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Interrupteur principal permettant de désactiver le proxy side-car Bifrost. Lorsqu’il est défini sur 0, la route renvoie une erreur 503 avec l’en-tête X-Bifrost-Killswitch et l’opérateur est redirigé vers le chemin TS. Utilisez-le pour désactiver le side-car sans redéploiement (incident du routeur de niveau 1, rotation des clés).
BIFROST_BASE_URL (non défini) src/app/api/v1/relay/chat/completions/bifrost/route.ts Lorsque cette variable est définie, la route du proxy side-car Bifrost transfère le trafic /v1/chat/completions vers cette passerelle Go au lieu du gestionnaire de relais TS. Non définie → erreur 503 avec repli. La barre oblique finale est supprimée.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Port auquel le service intégré Bifrost supervisé se lie (127.0.0.1:&lt;port&gt;) lorsqu’OmniRoute gère le cycle de vie du side-car Bifrost. Valeur par défaut : 8080.
BIFROST_API_KEY (non défini) src/app/api/v1/relay/chat/completions/bifrost/route.ts Clé d’API de la passerelle Bifrost (envoyée sous la forme Authorization: Bearer ...). Si elle n’est pas définie, la route s’attend à ce que la requête contienne une clé d’API OmniRoute valide ; cette clé sert uniquement à l’authentification côté passerelle.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Lorsque cette variable est définie sur true, la route du side-car Bifrost retransmet les réponses en continu via SSE par l’intermédiaire de la passerelle plutôt que via l’exécuteur de streaming TS. Définissez-la sur 0 pour forcer les réponses JSON sans streaming par l’intermédiaire de la passerelle.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Délai d’expiration par requête lors du transfert vers la passerelle Bifrost (ms). En cas d’expiration du délai, la route renvoie le chemin du relais TS via l’en-tête X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (non défini) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias de BIFROST_API_KEY (utilisé par les scripts qui lisent l’environnement via OMNIROUTE_*). BIFROST_API_KEY est prioritaire lorsque les deux variables sont définies.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Backend de relais pour /api/v1/relay/chat/completions : ts | bifrost | auto. ts = relais TypeScript (valeur par défaut lorsque Bifrost n’est pas configuré) ; auto sélectionne Bifrost lorsque BIFROST_BASE_URL est définie et que BIFROST_ENABLED ≠ 0, avec repli automatique vers TS si le side-car est inaccessible ; bifrost force l’utilisation de Bifrost (mode strict, sans repli). L’authentification, la limitation du débit, la protection contre les injections et la liste d’autorisation sont toujours exécutées en premier dans la route Next. Les réponses contiennent X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (non défini) src/app/api/v1/relay/chat/completions/routingBackend.ts Alias accepté pour OMNIROUTE_RELAY_BACKEND (mêmes valeurs ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND est prioritaire lorsque les deux sont définis.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Délai de récupération (ms) après l’échec d’un passage par le processus auxiliaire Bifrost en mode auto, avant que le relais ne tente à nouveau de l’utiliser ; pendant ce délai, il achemine directement les requêtes vers le chemin TS, puis effectue une nouvelle tentative. 0 désactive cette fonctionnalité. S’applique uniquement lorsque OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (non défini) bin/cli/commands/serve.mjs Chemin vers un certificat TLS au format PEM pour exécuter omniroute serve via HTTPS (équivalent à --tls-cert). Doit être utilisé avec OMNIROUTE_TLS_KEY ; le serveur autonome termine alors la connexion TLS sur le même port d’écoute (wss:// fonctionne sans modification). Non défini → HTTP simple. Si un seul du certificat ou de la clé est fourni, ou si un chemin est illisible, un avertissement est consigné et le serveur reste en HTTP.
OMNIROUTE_TLS_KEY (non défini) bin/cli/commands/serve.mjs Chemin vers la clé privée TLS au format PEM pour exécuter omniroute serve via HTTPS (équivalent à --tls-key). Doit être utilisé avec OMNIROUTE_TLS_CERT. Voir OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Interrupteur principal des routes /api/local/*. Lorsque cette variable est non définie ou vaut 0, toutes les routes /api/local/* renvoient le code 503 en production. Elle doit valoir 1 dans les déploiements hors boucle locale pour activer le lanceur Redis et les outils similaires de démarrage en un clic de services locaux. Protection redondante avec la classification du garde de routes isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES dans src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (non défini) src/lib/security/localEndpoints.ts Jeton Bearer destiné aux appelants de /api/local/* qui ne se trouvent pas sur la boucle locale (par exemple, l’application de bureau). Lorsqu’il est défini, les requêtes provenant d’adresses IP hors boucle locale doivent comporter Authorization: Bearer &lt;token&gt;. Requis lorsque OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 dans les déploiements hors boucle locale.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Nom du conteneur pour le lanceur Redis en un clic (omniroute redis up). Utilisé à la fois par la CLI et par l’interface graphique RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Port de l’hôte pour le lanceur Redis en un clic. Modifiez-le si le port 6379 est déjà utilisé sur l’hôte. Le port interne du conteneur reste 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Interface de l’hôte sur laquelle le lanceur Redis en un clic publie le service. Le lanceur démarre Redis SANS mot de passe ; une liaison à 0.0.0.0 donne donc à chaque hôte de votre réseau local un accès non authentifié à Redis — n’élargissez cette portée que si vous définissez vous-même un mot de passe sur l’instance.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Interface de l’hôte sur laquelle docker-compose publie le processus auxiliaire Redis (#9286). L’instance Redis de compose s’exécute sans requirepass ; les conteneurs de l’application y accèdent via le réseau compose (redis:6379) — le port publié sert uniquement aux outils exécutés sur l’hôte. 0.0.0.0 expose une instance Redis non authentifiée à l’ensemble du réseau local.
REDIS_PORT 6379 docker-compose.yml Port hôte pour le service auxiliaire Redis de Compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Interface hôte sur laquelle docker-compose publie les ports du tableau de bord, de l’API et du WebSocket en direct de l’application (#12568). Comme REQUIRE_API_KEY=false est la valeur par défaut fournie dans .env.example, 0.0.0.0 expose le proxy LLM anonyme /v1 à l’ensemble du LAN/WAN — n’élargissez l’accès qu’une fois REQUIRE_API_KEY=true ou si un proxy inverse en amont impose sa propre authentification.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Interface hôte sur laquelle docker-compose publie le service auxiliaire de mémoire Qdrant (#12578). Même raisonnement concernant l’exposition au LAN que pour REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Interface hôte sur laquelle docker-compose publie le service auxiliaire de routage Bifrost (#12578). Même raisonnement concernant l’exposition au LAN que pour REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Préfixe d’espace de noms appliqué à chaque clé Redis d’OmniRoute (limiteur de débit, cache d’authentification, stockage des quotas, disjoncteur de préchauffage). Évite les collisions de clés lorsque l’instance Redis est partagée avec d’autres applications (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (non défini — mécanisme désactivé) src/lib/api/internalServiceAuth.ts Secret partagé pour les échanges REST internes préservant l’identité (#9260) : les composants OmniRoute appelant d’autres routes OmniRoute locales l’envoient sous la forme x-omniroute-internal-service-token afin de préserver l’identité de l’appelant d’origine. Comparé à l’aide de timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (non défini) src/lib/api/internalServiceAuth.ts Variante du jeton de service interne basée sur un fichier secret : chemin vers un fichier dont le contenu, après suppression des espaces superflus, constitue le jeton. Consultée uniquement lorsque la variable en ligne n’est pas définie.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Enrichit la liste des fournisseurs du tableau de bord avec les statistiques de classement hebdomadaire d’OpenRouter (#9324). Activé par défaut ; définissez cette valeur sur false pour ignorer entièrement la récupération en arrière-plan (non bloquante et jamais fatale).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24 h) src/lib/catalog/openrouterProviderStats.ts Durée de vie du cache de l’instantané des statistiques des fournisseurs OpenRouter, en millisecondes.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Image Redis utilisée par le lanceur Redis en un clic. Remplacez-la par redis:8-alpine ou par un miroir de registre privé selon les besoins.
QDRANT_HOST qdrant (profil de cluster optionnel) Nom d’hôte du sidecar Qdrant lorsque --profile memory est actif. La valeur par défaut pointe vers le nom du service qdrant sur le réseau interne ; remplacez-la pour un déploiement externe. Utilisé uniquement lorsque qdrantEnabled vaut true dans le code (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (profil de cluster optionnel) Port REST du sidecar Qdrant.
QDRANT_GRPC_PORT 6334 (profil de cluster optionnel) Port gRPC du sidecar Qdrant. Utilisé par les bibliothèques clientes qui préfèrent gRPC à REST pour les opérations de streaming.
QDRANT_API_KEY (non défini) (profil de cluster optionnel) Clé API facultative pour Qdrant Cloud ou une instance sur site authentifiée. Valeur vide → aucun en-tête api-key envoyé.
QDRANT_COLLECTION omniroute-memory (profil de cluster optionnel) Nom de la collection pour les embeddings de mémoire conversationnelle d’OmniRoute. Créée lors de la première exécution avec les dimensions définies par QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (profil de cluster optionnel) Nom du modèle d’embedding par défaut enregistré dans les métadonnées de la collection Qdrant. Les embeddings réels sont générés par le fournisseur vers lequel pointe le champ embeddingModel dans les paramètres d’OmniRoute.
QDRANT_VECTOR_SIZE 1536 (profil de cluster optionnel) Dimension du vecteur d’embedding. Elle doit correspondre au modèle utilisé pour générer les embeddings (text-embedding-3-small → 1536 ; ada-002 → 1536 ; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (profil de cluster optionnel) Précision de l’index HNSW lors de sa construction. Une valeur plus élevée = construction plus lente, recherche plus rapide.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Interrupteur principal pour la rotation des comptes configurable par l’opérateur. Lorsque la valeur est false, aucune des classes OMNIROUTE_ROTATE_* ci-dessous ne déclenche de basculement de compte (la désactivation principale bloque également les classes 429/500/502 activées par défaut). Permet à une interface de supervision (par ex. l’application de bureau VibeProxy) de répliquer ses propres règles de rotation dans le moteur de basculement de comptes du backend.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Délai de récupération (en secondes) appliqué à un compte soumis à une limitation de débit lorsque le service en amont ne fournit aucune indication explicite de réinitialisation. 0 = utiliser le délai de récupération par défaut du moteur plutôt qu’une valeur de remplacement fixe.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Reflète la préférence de l’interface utilisateur « ne pas marquer comme soumis à une limitation de débit en l’absence d’une heure de réinitialisation ».
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Active le basculement pour les erreurs 429. Lorsque cette option vaut false (et que OMNIROUTE_ROTATION_ENABLED=true), une erreur 429 ne déclenche plus la rotation du compte et est renvoyée au client à la place.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Nombre d’erreurs 429 survenant pendant OMNIROUTE_ROTATE_429_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate, préservant ainsi le comportement historique.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Fenêtre glissante (en secondes) pendant laquelle les erreurs 429 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Active le basculement pour les erreurs serveur 5xx (à l’exclusion de 502, qui possède sa propre catégorie). Lorsque cette option vaut false, ces erreurs ne déclenchent plus la rotation du compte.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Nombre d’erreurs 5xx survenant pendant OMNIROUTE_ROTATE_500_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Fenêtre glissante (en secondes) pendant laquelle les erreurs 5xx sont comptabilisées pour atteindre OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Active le basculement pour les erreurs 502 (passerelle incorrecte). Lorsque cette option vaut false, les erreurs 502 ne déclenchent plus la rotation du compte.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Nombre d’erreurs 502 survenant pendant OMNIROUTE_ROTATE_502_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Fenêtre glissante (en secondes) pendant laquelle les erreurs 502 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Option facultative (désactivée par défaut) : lorsque définie sur true, une simple erreur 400 (requête incorrecte) déclenche également une rotation de compte. Ce comportement est uniquement additif — il ne bloque jamais le comportement existant du moteur, selon lequel une erreur 400 contenant un texte relatif à une limite de débit ou à un quota provoque toujours un basculement, indépendamment de cet indicateur.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Nombre d’erreurs 400 requises dans la période définie par OMNIROUTE_ROTATE_400_WINDOW_SECONDS avant la rotation du compte (pris en compte uniquement lorsque OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Fenêtre glissante (en secondes) pendant laquelle les erreurs 400 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_400_THRESHOLD.

Préchauffage piloté par cron pour les connexions OAuth Anthropic ayant explicitement activé cette fonctionnalité, afin que la fenêtre de limitation de débit de 5 heures soit ouverte par une requête planifiée triviale plutôt que par la première requête réelle (#8848). Le planificateur reste désactivé sauf si OMNIROUTE_WARMUP_ENABLED est évaluée comme vraie et si la connexion est indiquée dans settings.claudeWarmup.connections ; une liste de connexions vide signifie qu’aucune connexion n’est préchauffée, même si la variable d’environnement est activée.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_WARMUP_ENABLED (non définie → désactivé) src/lib/warmupScheduler.ts Interrupteur principal du planificateur de préchauffage. Accepte 1/true/yes/on (insensible à la casse, espaces supprimés). Toute autre valeur, ou l’absence de valeur, laisse le planificateur désactivé.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Expression cron à cinq champs pour le déclenchement du préchauffage, évaluée dans le fuseau horaire America/Los_Angeles (fuseau de réinitialisation d’Anthropic), indépendamment de l’horloge de l’hôte.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Nombre de connexions préchauffées en parallèle à chaque déclenchement. Limité à une valeur comprise entre 1 et 10 ; une valeur non numérique revient à 3.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Modèle utilisé pour la requête de préchauffage. Ne remplacez cette valeur que si le modèle par défaut n’est pas disponible avec votre offre ; choisissez le modèle le moins cher qui ouvre tout de même la fenêtre.

Sessions VNC de connexion par navigateur et alias du répertoire de données

Section intitulée « Sessions VNC de connexion par navigateur et alias du répertoire de données »

Chromium+VNC conteneurisé utilisé pour la capture interactive des identifiants de connexion par navigateur (/api/vnc-session), ainsi qu’un alias DATA_DIR hérité. Tout est facultatif — les valeurs VNC par défaut ciblent l’image omniroute-vnc-chromium:local incluse et ne doivent être remplacées que pour utiliser une image de conteneur ou des ports personnalisés, ou pour ajuster le cycle de vie.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Étiquette de l’image Docker pour le conteneur de connexion Chromium+VNC. Compilez docker/vnc-browser/chromium ou indiquez ici une image personnalisée.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Binaire d’exécution de conteneurs utilisé pour lancer le conteneur VNC (par exemple, définissez-le sur podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Port VNC/noVNC exposé à l’intérieur du conteneur.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port du protocole Chrome DevTools à l’intérieur du conteneur.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Chemin du répertoire de profil Chromium à l’intérieur du conteneur.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Répertoire de l’hôte contenant les profils persistants de connexion au navigateur.
OMNIROUTE_VNC_IDLE_MS 600000 (10 min) src/lib/vncSession/manifest.ts Délai d’inactivité (ms) avant qu’une session VNC inactive ne soit supprimée.
OMNIROUTE_VNC_MAX_MS 1800000 (30 min) src/lib/vncSession/manifest.ts Limite absolue (ms) de la durée de vie d’une session VNC.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Nombre maximal de sessions VNC simultanées.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Délai d’attente (ms) avant que le navigateur conteneurisé ne soit prêt pour CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Délai d’attente (ms) pour récupérer la session et les cookies capturés une fois la connexion terminée.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Options supplémentaires de ligne de commande transmises à Chromium dans le conteneur.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Réseau Docker dédié auquel se connecte le conteneur de connexion VNC (#12571), à la place du réseau bridge par défaut, afin que les conteneurs voisins ne puissent pas accéder à son port de pont CDP.
VIBEPROXY_DATA_DIR (non défini) open-sse/services/notionThreadSessions.ts Alias hérité de DATA_DIR, vérifié uniquement lorsque DATA_DIR et OMNIROUTE_DATA_DIR ne sont pas définis. Permet de localiser le cache des sessions de fils de discussion web Notion (&lt;dir&gt;/notion-web-thread-sessions.json).

Utilisée par scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs et scripts/build/uninstall.mjs. Laissez toutes les valeurs ci-dessous non définies dans les déploiements de production.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Mode d’initialisation E2E (auth, fresh, reuse) pour l’exécuteur Playwright.
OMNIROUTE_E2E_PASSWORD utilise INITIAL_PASSWORD par défaut scripts/dev/run-next-playwright.mjs Mot de passe administrateur injecté dans l’environnement Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Désactive l’interrogation locale de vérification d’état pendant les exécutions Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Désactive la boucle de vérification d’état des jetons OAuth pendant les tests.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (non définie) src/lib/tokenHealthCheck.ts Fournisseurs séparés par des virgules exclus du balayage proactif de renouvellement des jetons (par ex. codex,openai). Alternative ciblée à la désactivation complète de la vérification d’état : les fournisseurs à courte durée de vie continuent d’être actualisés, tandis que les fournisseurs en cascade restent uniquement réactifs.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Masque les messages de vérification d’état dans la sortie standard de Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Ignore la compilation de production Next.js avant le démarrage de Playwright (optimisation de la CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Ignore le hook de désinstallation d’OmniRoute (utilisé par la CI pour conserver node_modules intact).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Délai d’attente (ms) avant que le serveur ne soit opérationnel, préalablement à l’exécution des tests d’écosystème/de protocole.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL que le banc de test rapide Electron attend de l’application empaquetée.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Délai d’expiration total (ms) avant l’abandon du banc de test rapide.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Délai de stabilisation (ms) après le chargement de la page.
ELECTRON_SMOKE_APP_EXECUTABLE (auto) scripts/dev/smoke-electron-packaged.mjs Chemin explicite vers l’exécutable Electron empaqueté.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Répertoire de données pour l’exécution du test rapide Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Définissez cette variable sur 1 pour conserver le répertoire de données du test rapide après l’exécution.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Définissez cette variable sur 1 pour diffuser les journaux Electron vers la sortie standard pendant l’exécution.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592 : relance avec le même répertoire de données et vérifie que le deuxième lancement sélectionne le pilote SQLite natif.
CLI_DEVIN_BIN (recherche dans PATH) open-sse/executors/devin-cli.ts Remplace le chemin du binaire de la CLI Devin.

Utilisé par scripts/i18n/run-translation.mjs (la commande npm run i18n:run). Les cinq variables sont désactivées par défaut — définissez-les dans .env uniquement sur les machines qui doivent être autorisées à exécuter le traducteur de documentation.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_TRANSLATION_API_URL (non définie) scripts/i18n/run-translation.mjs URL de base compatible avec OpenAI pour le backend de traduction.
OMNIROUTE_TRANSLATION_API_KEY (non définie) scripts/i18n/run-translation.mjs Jeton Bearer pour le backend de traduction (jamais consigné dans les journaux).
OMNIROUTE_TRANSLATION_MODEL (non définie) scripts/i18n/run-translation.mjs Identifiant du modèle, par ex. gpt-4o-mini ou cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Délai d’expiration par requête, en millisecondes.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Requêtes de traduction parallèles lors du traitement de plusieurs fichiers/langues.

Module complémentaire facultatif contrôlé par l’indicateur de fonctionnalité RADAR_ENABLED (désactivé par défaut — un indicateur de fonctionnalité activé ou désactivé via les paramètres/la base de données, et non une variable d’environnement ; voir docs/frameworks/RADAR.md). Les quatre premières variables ci-dessous sont des valeurs de remplacement facultatives pour un flux auto-hébergé ou dérivé, ainsi que pour les parcours liés aux clés de soutien. La cinquième, RADAR_ADMIN_URL, est un lien distinct sans valeur par défaut vers le panneau privé d’exploitation du propriétaire. Consultez docs/frameworks/RADAR.md pour obtenir la documentation complète du module et sa séquence d’activation de bout en bout et de configuration guidée.

Le lecteur générique d’annonces de la page d’accueil et du journal des modifications n’est pas configuré par une variable d’environnement et ne dépend pas de l’indicateur de fonctionnalité RADAR_ENABLED. Il lit uniquement via GET l’URL publique news.json du dépôt, déclarée dans src/shared/utils/releaseNotes.ts ; les identifiants des annonces ignorées restent stockés dans le stockage local du navigateur.

Variable Valeur par défaut Fichier source Description
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts URL de base commune aux flux signés séparément du catalogue, des parrainages, des offres destinées aux soutiens et d’Intel. Remplacez-la pour pointer vers un service auto-hébergé ou dérivé.
RADAR_FEED_PUBKEY (clé épinglée par défaut) src/lib/radar/pinnedKeys.ts Clé publique Ed25519 (SPKI DER encodée en base64 ou PEM) utilisée pour vérifier les signatures d’un flux personnalisé.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL ouverte par le bouton « Je contribue » du tableau de bord (parcours de demande d’une clé de soutien via GitHub OAuth).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL ouverte par le bouton « Soutenir le projet » du tableau de bord (page de paiement/d’abonnements).
RADAR_ADMIN_URL (non définie) src/lib/radar/links.ts Lien vers le panneau privé d’exploitation, réservé au propriétaire. HTTPS est obligatoire, sauf pour une redirection SSH vers une adresse de bouclage HTTP ; les valeurs non définies ou non valides ne créent aucun élément de navigation.

Les variables suivantes figuraient dans les versions précédentes de .env.example, mais ne comportent aucune référence à l’exécution dans la base de code actuelle. Elles ont été supprimées :

Variable Raison
STORAGE_DRIVER=sqlite N’est jamais lue par aucun fichier source. SQLite est le seul pilote pris en charge — aucune sélection n’est nécessaire.
INSTANCE_NAME=omniroute Présente dans les anciennes documentations et les anciens modèles d’environnement, mais inutilisée à l’exécution. Pourrait réapparaître dans une future fonctionnalité multi-instance.
SQLITE_MAX_SIZE_MB=2048 Non référencée dans le code source. La taille de la base de données n’est pas limitée artificiellement.
SQLITE_CLEAN_LEGACY_FILES=true Non référencée dans le code source. Le nettoyage des anciens fichiers a probablement été supprimé.
CLI_ROO_BIN Non enregistrée dans src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Non enregistrée dans src/shared/services/cliRuntime.ts (Kimi Coding utilise OAuth, et non un binaire CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Non référencées dans le code source.
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY Supprimées dans la v3.8.0. Le runtime ne lit plus ces variables d’environnement — les identifiants proviennent du Dashboard, de data/provider-credentials.json ou de la base de données chiffrée.
CURSOR_PROTOBUF_DEBUG Supprimée dans la v3.8.0. L’exécuteur Cursor utilise CURSOR_DEBUG / CURSOR_STREAM_DEBUG (voir §22).
CLI_COMPAT_KIRO Supprimée dans la v3.8.0. Kiro figure dans CLI_COMPAT_OMITTED_PROVIDER_IDS — son paramètre d’activation n’a aucun effet.
QIANFAN_API_KEY Supprimée avec les autres ébauches inutilisées de clés API de fournisseurs dans la v3.8.0.
Variable Ancienne valeur dans .env.example Valeur par défaut réelle du code Correction
APP_LOG_RETENTION_DAYS 90 7 ✅ Valeur trompeuse supprimée ; 7 documenté comme valeur par défaut
CALL_LOG_RETENTION_DAYS 90 7 ✅ Valeur trompeuse supprimée ; 7 documenté comme valeur par défaut

Régénération de la configuration OpenCode (outillage ponctuel)

Section intitulée « Régénération de la configuration OpenCode (outillage ponctuel) »

Utilisées par scripts/ad-hoc/regen-opencode-config.ts pour régénérer un fichier opencode.json avec des valeurs limit.context et limit.output exactes, récupérées depuis l’instance OmniRoute en cours d’exécution. Aucune d’entre elles n’est requise pour le fonctionnement normal — ce script est uniquement un outil destiné aux développeurs.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts URL de base de l’instance OmniRoute à interroger pour /v1/models.
OMNIROUTE_KEY (non définie) scripts/ad-hoc/regen-opencode-config.ts Clé API permettant de s’authentifier auprès du point de terminaison OmniRoute /v1/models. Utilise OPENCODE_API_KEY par défaut si non définie.
OPENCODE_API_KEY (non définie) scripts/ad-hoc/regen-opencode-config.ts Clé API de style OpenCode (sk-...) écrite dans le fichier opencode.json régénéré. Utilise OMNIROUTE_KEY par défaut si non définie.

Outil ad hoc d’évaluation hors ligne de la compression

Section intitulée « Outil ad hoc d’évaluation hors ligne de la compression »

Utilisée par scripts/compression-eval/index.ts, l’interface en ligne de commande d’évaluation hors ligne de la compression. Non requise pour le fonctionnement normal — réservée aux outils de développement.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_EVAL_CREDENTIALS {} (vide) scripts/compression-eval/index.ts Identifiants JSON fournis par l’opérateur pour le fournisseur testé par l’interface en ligne de commande d’évaluation hors ligne de la compression (analysés avec JSON.parse). Laisser non définie pour une exécution à blanc.

Utilisées par src/lib/vncSession/manifest.ts pour configurer des sessions Chromium sans interface graphique basées sur Docker pour les fournisseurs d’automatisation de navigateur. Toutes sont facultatives — les valeurs par défaut sont indiquées ci-dessous.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Chemin vers le binaire Docker utilisé pour lancer les conteneurs VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Image Docker du conteneur Chromium VNC.
OMNIROUTE_VNC_CHROMIUM_ARGS (options intégrées) src/lib/vncSession/manifest.ts Arguments CLI Chromium supplémentaires transmis au navigateur dans le conteneur.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Port VNC à l’intérieur du conteneur.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port du protocole Chrome DevTools à l’intérieur du conteneur.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Répertoire de profil à l’intérieur du conteneur.
OMNIROUTE_VNC_PROFILE_DIR (non définie) src/lib/vncSession/manifest.ts Répertoire côté hôte pour les profils de navigateur persistants.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Délai d’inactivité (ms) avant la récupération d’une session VNC.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Durée maximale d’une session (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Nombre maximal de sessions VNC simultanées.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Délai d’attente avant que le navigateur soit prêt (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Délai d’attente pour la récupération/le nettoyage (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Réseau Docker dédié auquel le conteneur se connecte (#12571), distinct du pont par défaut.
VIBEPROXY_DATA_DIR (non définie) open-sse/services/notionThreadSessions.ts Répertoire destiné à la persistance des sessions de fils de discussion Notion.
Variable Valeur par défaut Description
OMNIROUTE_INTERNAL_SERVICE_TOKEN – Jeton en ligne pour l’authentification interservices du plan de gestion.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE – Chemin vers un fichier contenant le jeton de service interne (méthode privilégiée dans les conteneurs ; remplace la variable en ligne).
Variable Valeur par défaut Description
OPENROUTER_PROVIDER_STATS_ENABLED true Définir sur false pour ignorer la récupération des statistiques OpenRouter par fournisseur destinées à enrichir le catalogue.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 Durée de vie du cache (ms) pour les statistiques récupérées des fournisseurs OpenRouter.
Variable Valeur par défaut Description
REDIS_BIND_HOST 127.0.0.1 Adresse d’écoute du service Redis intégré.
REDIS_PORT 6379 Port du service Redis intégré.
OMNIROUTE_REDIS_BIND_HOST – Remplacement propre à OmniRoute de l’adresse d’écoute du service Redis intégré.

Ces paramètres ont été introduits après l’instantané précédent du contrat d’environnement.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Durée d’attente maximale pour obtenir un créneau d’admission de chat lourd avant de renvoyer une erreur 503 autorisant une nouvelle tentative ; une attente courte et bornée sérialise les rafales d’agents au lieu de renvoyer immédiatement une erreur 503. 0 rétablit le rejet immédiat.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 Mo) src/shared/middleware/chatBodyAdmission.ts Budget en octets mis en file d’attente pour l’attente d’admission : limite le nombre total d’octets de corps mis en mémoire tampon et immobilisés à l’échelle du processus, afin que l’attente ne puisse pas amplifier l’utilisation du tas (#4380). Les attentes dépassant le budget reçoivent immédiatement une erreur 503 autorisant une nouvelle tentative.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Option obsolète sans effet depuis #10110 : les voies d’admission par session ont été supprimées au profit d’un budget unique à l’échelle du processus. Acceptée pour assurer la compatibilité de configuration ; ignorée.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Option obsolète sans effet depuis #10110 : les voies d’admission par session ont été supprimées au profit d’un budget unique à l’échelle du processus. Acceptée pour assurer la compatibilité de configuration ; ignorée.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (désactivé) open-sse/services/admission/runtime.ts Voies virtuelles adaptatives d’admission à l’exécution (#9654) : interrupteur principal de la barrière adaptative par locataire (système 2). À distinguer des variables obsolètes de voies par connexion ci-dessus (TTL_MS / MAX_SESSIONS, sans effet depuis #10110). Indicateur de fonctionnalité du tableau de bord portant le même nom ; la variable d’environnement prévaut sur le remplacement défini dans le tableau de bord ; nécessite un redémarrage.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Limite la durée pendant laquelle un appel d’exécution immédiate attend la fin d’une tâche en cours avant de démarrer l’exécution mise en file d’attente.
ADOBE_FIREFLY_BROWSER_REFRESH activé open-sse/services/adobeFireflySession.ts Maintient à jour l’état IMS et l’état de risque du navigateur au moyen de sessions Chrome CDP limitées au compte ; définissez la valeur sur 0 pour désactiver cette fonctionnalité.
ADOBE_FIREFLY_SESSION_DISK activé open-sse/services/adobeFireflySession.ts Conserve les sessions Adobe réparées sous DATA_DIR ; définissez la valeur sur 0 pour stocker l’état uniquement en mémoire.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervalle minimal entre les soumissions de génération Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Période de repos supplémentaire après chaque troisième soumission Adobe réussie.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Mode véritablement sans interface graphique réservé au débogage ; Adobe colligo rejette normalement la session de risque qui en résulte.
CHROME_PATH détection automatique open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Exécutable Chrome absolu facultatif utilisé par les exécuteurs pilotés par navigateur lorsque la détection automatique de la plateforme est insuffisante.
TELEGRAM_BOT_TOKEN (non défini) src/lib/telegram/config.ts Jeton BotFather qui active le webhook entrant et signe l’initData de la Mini App.
TELEGRAM_WEBHOOK_SECRET (non défini) src/lib/telegram/config.ts Secret partagé enregistré via setWebhook et vérifié par rapport à l’en-tête X-Telegram-Bot-Api-Secret-Token lors de chaque livraison de webhook. Requis pour le chemin du webhook ; s’il n’est pas défini, les livraisons de webhook sont refusées avec une erreur 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Modèle utilisé pour les réponses de chat Telegram.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Remplacement de l’URL de base de l’API Bot pour les proxys ou les serveurs de l’API Bot auto-hébergés.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Délai d’expiration en millisecondes pour les appels sortants à l’API Bot.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (activé) scripts/build/optionalPackStaging.mjs Définissez la valeur sur 0 pour ne pas générer d’archives .tar.gz lors de la préparation des packs facultatifs de ML/navigateur pour l’arborescence Electron autonome (les répertoires de packs et optional-packs.index.json sont toujours produits). Utilisé par le workflow de publication de l’application de bureau afin de réduire la taille des artefacts téléversés.

Valeurs globales par défaut pour le navigateur sans interface graphique et le tunnel sortant des outils. Les valeurs de connexion définies dans le tableau de bord sont prioritaires.

Variable Valeur par défaut Fichier source Description
CHATGPT_WEB_CODEX_CHROME_PATH (détection automatique) open-sse/executors/chatgpt-web-codex.ts Chemin explicite vers Chrome/Chromium pour une exécution avec npm, systemd et PM2.
CHROME_PATH (détection automatique) open-sse/executors/chatgpt-web-codex.ts Solution de repli commune pour un chemin explicite vers Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (non défini) open-sse/executors/chatgpt-web-codex.ts Point de terminaison CDP interne ; Docker utilise le side-car sur le port 9223.
CDP_PROXY_TOKEN (non défini) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Si cette variable est définie, chaque requête adressée au side-car proxy CDP doit inclure cette valeur dans l’en-tête X-Omni-Cdp-Token (#13679). Sans valeur, le proxy transmet les requêtes sans authentification — seule l’isolation réseau du réseau Compose chatgpt-web-codex-net assure alors la protection. À générer avec openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (non défini) open-sse/executors/chatgpt-web-codex.ts ID global du tunnel OpenAI pour les cycles locaux des outils Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (non défini) open-sse/executors/chatgpt-web-codex.ts Clé d’exécution globale du tunnel ; ne jamais l’écrire dans les journaux.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Nom exact du connecteur personnalisé ChatGPT nouvellement créé pour la passerelle MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Répertoire dédié à l’état du navigateur, du broker et du tunnel.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Lorsque la valeur est 1, des captures de diagnostic du navigateur sont réalisées à chaque point de contrôle.
CODEX_CHATGPT_WEB_LAUNCHER (non défini) open-sse/vendor/codex-chatgpt-web/config.ts Chemin absolu facultatif vers un binaire de lanceur persistant.
CODEX_CHATGPT_WEB_BUN (détection automatique) open-sse/vendor/codex-chatgpt-web/config.ts Chemin absolu facultatif vers le binaire d’exécution Bun.
CODEX_WEB_GPT_BUN (non défini) open-sse/vendor/codex-chatgpt-web/config.ts Solution de repli héritée pour CODEX_CHATGPT_WEB_BUN ; les nouvelles configurations utilisent le nom canonique.

Consommateur SSE persistant qui réplique les tâches du hub OmniConductor dans le TaskManager A2A local (src/lib/conductor/). Fonctionnalité optionnelle — le pont ne démarre que lorsque CONDUCTOR_HUB_URL est définie. Côté serveur uniquement : le jeton du hub ne doit jamais parvenir au navigateur.

Variable Valeur par défaut Fichier source Description
CONDUCTOR_HUB_URL (vide) src/lib/conductor/boot.ts URL de base du hub OmniConductor (par ex. http://127.0.0.1:7910). Non définie = pont désactivé.
CONDUCTOR_HUB_TOKEN (vide) src/lib/conductor/boot.ts Identifiant d’accès au hub pour le flux SSE — émettez un pair de type spokesperson sur le hub (POST /v1/peers, administrateur).
CONDUCTOR_ORCHESTRATOR_TOKEN (vide) src/lib/conductor/hubProxy.ts Identifiant d’accès pour la délégation entrante de tâches A2A→hub (POST /v1/tasks) ; utilise CONDUCTOR_HUB_TOKEN comme solution de repli lorsqu’elle n’est pas définie.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts URL de base du service spokesperson (Faro) derrière le proxy de chat du tableau de bord (/api/conductor/ask).

Utilisée par open-sse/services/combo.ts et src/lib/quota/quotaScheduler.ts pour les vérifications du budget de jetons avant les requêtes. Fonctionnalité optionnelle — le comportement de routage par défaut reste inchangé lorsqu’elle n’est pas définie.

Variable Valeur par défaut Fichier source Description
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Lorsque définie sur 1, ignore les connexions dont le budget de jetons par fenêtre (rateLimitOverrides.tpm, table provider_quota_state) ne peut pas couvrir le coût estimé de la requête avant son envoi. Autorise la requête en l’absence de budget configuré.

Code source d’OmniRoute (a58000c7685f)

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.

Interface principale de HagiCode en thème clair
  • 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.
Visiter HagiCode