Aller au contenu principal

Référence de configuration du Control Plane

Cette page liste chaque réglage du Control Plane (API python -m eai.main, worker python -m eai.worker, worker média python -m eai.media_worker et migrations python -m eai.migrate) : la variable d'environnement qui le fixe, son type, sa valeur par défaut, les valeurs admises et son effet.

Cette page est générée par tools/docs/gen_platform_config.py à partir de services/control-plane/src/eai/config.py : ne la modifiez pas à la main.

215 réglages répartis en 25 groupes.

Lecture des réglages​

Les réglages sont lus une fois par processus dans l'environnement, avec le préfixe EAI_ et sans tenir compte de la casse : le champ database_url est la variable EAI_DATABASE_URL. Un fichier .env du répertoire de travail est aussi lu ; une variable de l'environnement l'emporte sur le fichier. Les variables EAI_ inconnues sont ignorées par cette classe (des adaptateurs d'intégration en lisent certaines directement, voir la dernière section). Les listes acceptent un texte séparé par des virgules (a,b) ou un tableau JSON (["a","b"]). Les booléens acceptent true ou false, 1 ou 0, yes ou no, on ou off. Un processus lit ses réglages au démarrage : redémarrez-le après une modification.

Où les fixer​

Paquets OS : /etc/navin-platform/platform.env (mode 0640, root:navin-platform), lu par chaque unité navin-platform-* ; vérifiez-le avec navin-platform check. Kubernetes : controlPlane.config du chart Helm pour les valeurs non secrètes (ConfigMap) et controlPlane.secrets.keys pour celles tirées d'OpenBao (référence des valeurs Helm). Docker Compose : deploy/compose/.env. Développement local avec make start : services/control-plane/local.env, créé par make docker-env.

Règles de production​

Avec EAI_ENVIRONMENT=prod, l'API refuse de démarrer tant qu'une règle de eai.security.startup n'est pas respectée et affiche chaque règle en défaut ; avec staging, elle démarre et les journalise comme avertissements. Les règles figurent dans la description de chaque réglage ci-dessous (« Production : »). navin-platform check applique les mêmes règles sur un hôte installé par paquet, sans rien démarrer.

Groupes​

GroupeRéglages
Serveur HTTP et durcissement16
Base de données5
Authentification et annuaire10
Connexion locale9
Secrets et clés9
Autorisation et politiques8
Passerelle de modèles et embeddings9
Limites de débit et Redis8
Garde des appels sortants4
Observabilité et SLO9
Worker de fond15
Workers média5
Temps réel8
Export analytique4
Envoi au SIEM et export d'audit WORM8
Stockage objet4
Audit Gateway et preuves16
FinOps1
SOC et AI-SDR4
Licences4
Context Authority et délégations14
Sécurité des fichiers12
Téléphonie2
Moteurs de mémoire6
Runtime MCP et serveurs MCP25

Serveur HTTP et durcissement​

VariableTypeDéfautValeurs admisesDescription
EAI_ENVIRONMENTchaînedevdev, test, staging, prodEnvironnement logique. prod refuse les réglages dangereux au démarrage (voir Règles de production), staging les journalise, dev et test autorisent les aides de développement.
EAI_HOSTchaîne127.0.0.1Adresse d'écoute de python -m eai.main. Les images de conteneur et les paquets OS fixent 0.0.0.0.
EAI_PORTentier8080Port d'écoute de l'API. La variable PORT, si elle est définie, l'emporte (convention PaaS).
EAI_ALLOWED_HOSTSliste de chaînes*Liste autorisée de l'en-tête Host. Production : doit lister les noms d'hôte publics, pas *.
EAI_TRUSTED_PROXIESliste de chaînes127.0.0.1/32,::1/128Pairs (CIDR) autorisés à fixer X-Forwarded-For et X-SPIFFE-ID : la passerelle et le contrôleur d'ingress. Production : aucune plage universelle comme 0.0.0.0/0.
EAI_CORS_ORIGINSliste de chaînesvideOrigines autorisées à appeler l'API depuis un navigateur (URL du portail). Production : ne doit pas contenir *.
EAI_DOCS_ENABLEDbooléentrueSert /docs, /redoc et /openapi.json. Production : doit être désactivé.
EAI_SECURITY_HEADERS_ENABLEDbooléentrueAjoute les en-têtes de sécurité de l'API à chaque réponse.
EAI_HSTS_ENABLEDbooléenfalseEnvoie Strict-Transport-Security. Production : doit être activé.
EAI_HSTS_MAX_AGE_SECONDSentier31536000max-age de l'en-tête HSTS (un an par défaut).
EAI_MAX_BODY_BYTESentier10485760Taille maximale d'un corps de requête, en octets (10 Mio par défaut).
EAI_MAX_UPLOAD_BYTESentier104857600Taille maximale d'un téléversement (médias, documents, imports de rapprochement), en octets (100 Mio par défaut).
EAI_MAX_JSON_DEPTHentier64Profondeur d'imbrication maximale d'un corps JSON ; un corps plus profond est refusé.
EAI_DEFAULT_LOCALEchaîneenen, frLangue des messages d'erreur quand l'en-tête Accept-Language ne nomme aucune des langues disponibles.
EAI_REPO_ROOTcheminracine du dépôtDossier qui contient contracts, catalog et sql/postgres. Les paquets OS fixent /usr/share/navin-platform.
EAI_PROMPT_INJECTION_DEFAULT_MODEchaînedetectoff, detect, blockGarde contre l'injection de prompt d'un tenant qui n'a pas son propre réglage ; le réglage du tenant l'emporte.

Base de données​

VariableTypeDéfautValeurs admisesDescription
EAI_DATABASE_URLchaînepostgresql://eai:eai@localhost:5432/eaiURL PostgreSQL du compte administrateur, utilisée par les migrations et par le worker. Production : doit utiliser sslmode=require, verify-ca ou verify-full.
EAI_RUNTIME_DATABASE_URLchaînevideURL PostgreSQL du compte d'exécution de l'API (membre de eai_runtime, sans droit DDL). Vide : EAI_DATABASE_URL. Production : TLS obligatoire comme ci-dessus.
EAI_DB_POOL_MINentier1Connexions gardées ouvertes par le pool de chaque processus.
EAI_DB_POOL_MAXentier10Nombre maximal de connexions du pool de chaque processus.
EAI_AUTO_MIGRATEbooléenfalseApplique les migrations en attente au démarrage de l'API. Le hook Helm et l'unité systemd lancent plutôt python -m eai.migrate.

Authentification et annuaire​

VariableTypeDéfautValeurs admisesDescription
EAI_AUTH_DEVbooléenfalseAccepte les en-têtes de développement X-Dev-Tenant, X-Dev-User et X-Dev-Roles à la place d'un jeton. Production : doit être désactivé (ces en-têtes authentifient n'importe qui).
EAI_AUTH_SPIFFEbooléenfalseAccepte l'identité de charge de l'en-tête X-SPIFFE-ID posé par un proxy de confiance (EAI_TRUSTED_PROXIES).
EAI_OIDC_ISSUERchaîne (facultatif)non définiÉmetteur OpenID Connect dont l'API accepte les jetons (URL du realm Keycloak).
EAI_OIDC_AUDIENCEchaîne (facultatif)non définiAudience exigée dans les jetons.
EAI_OIDC_JWKS_URLchaîne (facultatif)non définiURL des clés de signature (JWKS) de l'émetteur.
EAI_OIDC_GROUP_SYNCbooléentrueApplique les correspondances de groupes de l'annuaire (claims groups et entra_groups) à chaque authentification OIDC.
EAI_OIDC_PLATFORM_ADMIN_GROUPSliste de chaînesnavin-platform-adminsGroupes de l'annuaire qui donnent platform_admin, comparés sans tenir compte de la casse. Vide : règle désactivée.
EAI_OIDC_TENANT_ADMIN_GROUP_PREFIXchaînenavin-admins-Un groupe <préfixe><slug du tenant> donne tenant_admin sur ce tenant, qui est aussi le tenant d'un jeton sans claim de tenant quand l'utilisateur n'en administre qu'un. Vide : règle désactivée.
EAI_JWT_ALGORITHMSliste de chaînesRS256,RS384,RS512,PS256,PS384,ES256,ES384Algorithmes de signature acceptés dans les jetons. HS* et none sont toujours refusés.
EAI_JWT_LEEWAY_SECONDSentier30Décalage d'horloge toléré sur exp, nbf et iat.

Connexion locale​

VariableTypeDéfautValeurs admisesDescription
EAI_LOCAL_AUTH_ENABLEDbooléentrueConnexion au portail par identifiant et mot de passe (POST /v1/auth/login). Désactivez-la une fois OIDC opérationnel.
EAI_BOOTSTRAP_ADMIN_USERNAMEchaînevideIdentifiant du premier administrateur, créé au démarrage de l'API s'il n'existe pas (rôles platform_admin et tenant_admin). Un démarrage ultérieur ne le réinitialise jamais.
EAI_BOOTSTRAP_ADMIN_PASSWORDchaînevideMot de passe à usage unique du premier administrateur, à changer à la première connexion. Production : 12 caractères minimum, lettres et chiffres, ni l'identifiant ni un mot de passe connu ; retirez-le après usage.
EAI_BOOTSTRAP_TENANTchaînedefaultTenant du premier administrateur.
EAI_LOCAL_SESSION_TTL_SECONDSentier28800Durée de vie d'une session locale (8 heures par défaut).
EAI_LOCAL_AUTH_MAX_FAILURESentier5Mots de passe erronés consécutifs avant le verrouillage du compte.
EAI_LOCAL_AUTH_LOCKOUT_SECONDSentier900Durée du verrouillage.
EAI_LOCAL_PASSWORD_MIN_LENGTHentier12Longueur minimale d'un mot de passe.
EAI_LOCAL_SCRYPT_Nentier32768Paramètre de coût N de scrypt pour les empreintes de mot de passe.

Secrets et clés​

VariableTypeDéfautValeurs admisesDescription
EAI_MASTER_KEYchaîne (facultatif)non définiClé maîtresse de la plateforme (étirée par HKDF, jamais stockée en base). Production : EAI_MASTER_KEY ou EAI_OPENBAO_URL doit être défini.
EAI_OPENBAO_URLchaîne (facultatif)non définiAdresse d'OpenBao. Production : obligatoire avec EAI_OPENBAO_TOKEN (les exports d'audit WORM sont signés par Transit).
EAI_OPENBAO_TOKENchaîne (facultatif)non définiJeton OpenBao, ou le jeton d'un agent sidecar.
EAI_OPENBAO_KV_MOUNTchaînesecretPoint de montage du moteur KV v2 (secrets des tenants sous <montage>/data/tenants/<tenant>/).
EAI_OPENBAO_TRANSIT_MOUNTchaînetransitPoint de montage du moteur Transit.
EAI_KMS_PROVIDERchaînenonenone, openbao, pkcs11Gestionnaire de clés de eai.crypto.kms : OpenBao Transit ou un HSM client en PKCS#11.
EAI_KMS_PKCS11_MODULEchaîne (facultatif)non définiChemin de la bibliothèque PKCS#11 cliente (.so). Obligatoire avec pkcs11.
EAI_KMS_PKCS11_TOKEN_LABELchaîne (facultatif)non définiLibellé du jeton HSM. Obligatoire avec pkcs11.
EAI_KMS_PKCS11_PIN_FILEchaîne (facultatif)non définiFichier contenant le PIN utilisateur (secret monté), jamais le PIN lui-même. Obligatoire avec pkcs11.

Autorisation et politiques​

VariableTypeDéfautValeurs admisesDescription
EAI_OPENFGA_URLchaîne (facultatif)non définiAdresse d'OpenFGA (autorisation par relations).
EAI_OPENFGA_STORE_IDchaîne (facultatif)non définiStore OpenFGA, écrit dans OpenBao par l'amorçage d'OpenFGA.
EAI_OPENFGA_MODEL_IDchaîne (facultatif)non définiModèle d'autorisation OpenFGA, écrit dans OpenBao par l'amorçage d'OpenFGA.
EAI_OPA_URLchaîne (facultatif)non définiAdresse d'OPA.
EAI_OPA_DELIVERYchaînepushpush, bundlepush envoie les politiques opa à OPA à l'écriture ; bundle laisse OPA interroger les bundles signés de POST /v1/policies/bundles et n'envoie rien.
EAI_POLICY_BUNDLE_SIGNING_KEY_FILEchaîne (facultatif)non définiClé privée RSA PEM qui signe les bundles (RS256). Obligatoire avec bundle.
EAI_POLICY_BUNDLE_KEY_IDchaîneeai-policykeyid de .signatures.json, égal à l'entrée keys d'OPA.
EAI_POLICY_DEFAULTchaîneallowallow, denyDécision quand aucune politique active du tenant ne s'applique ; le réglage policy_default du tenant l'emporte. Toute valeur autre que deny autorise.

Passerelle de modèles et embeddings​

VariableTypeDéfautValeurs admisesDescription
EAI_LITELLM_URLchaîne (facultatif)non définiAdresse de LiteLLM utilisée par la passerelle de modèles.
EAI_LITELLM_MASTER_KEYchaîne (facultatif)non définiClé maîtresse de LiteLLM, utilisée quand EAI_LITELLM_MASTER_KEY_REF n'est pas défini. Jamais journalisée ni renvoyée.
EAI_LITELLM_ADMIN_URLchaîne (facultatif)non définiAPI d'administration de LiteLLM (équipes, clés virtuelles). Non défini : EAI_LITELLM_URL.
EAI_LITELLM_MASTER_KEY_REFchaîne (facultatif)non définiRéférence de la clé maîtresse : openbao:<chemin kv>#<champ> ou env://<VARIABLE>.
EAI_LITELLM_ADMIN_TIMEOUT_SECONDSnombre15.0Délai maximal d'un appel à l'API d'administration de LiteLLM.
EAI_RAG_EMBEDDING_MODELchaînelocal-hash-256Modèle du registre doté de la capacité embeddings, défaut d'une nouvelle base de connaissances. Production : pas local-hash-256 (embedder par hachage pour dev et test), par exemple bge-m3-vllm.
EAI_MEMORY_EMBEDDING_MODELchaînelocal-hash-256Modèle d'embedding de la mémoire des agents. Production : pas local-hash-256.
EAI_RAG_RERANK_MODELchaînevideModèle du registre doté de la capacité rerank, utilisé par "rerank": true. Vide : pas de reclassement.
EAI_EMBEDDINGS_BATCH_SIZEentier64Textes par appel à la passerelle lors de l'ingestion et de la réindexation.

Limites de débit et Redis​

VariableTypeDéfautValeurs admisesDescription
EAI_RATE_LIMIT_ENABLEDbooléentrueActive les limites de débit de l'API.
EAI_RATE_LIMIT_PER_MINUTEentier1200Requêtes par minute par principal, ou par IP cliente en anonyme.
EAI_RATE_LIMIT_GATEWAY_PER_MINUTEentier600Requêtes par minute par principal sur /v1/gateway/*.
EAI_RATE_LIMIT_AUTH_FAILURES_PER_MINUTEentier20Échecs d'authentification par minute et par IP cliente avant 429.
EAI_REDIS_URLchaîne (facultatif)non définiRedis qui partage les compteurs de limite de débit entre réplicas. Production : rediss:// (TLS).
EAI_REDIS_USERNAMEchaîne (facultatif)non définiUtilisateur ACL de Redis.
EAI_REDIS_PASSWORD_FILEchaîne (facultatif)non définiFichier contenant le mot de passe ACL, jamais le mot de passe lui-même. Production : obligatoire quand EAI_REDIS_URL ne porte pas d'identifiants.
EAI_REDIS_TLS_CA_FILEchaîne (facultatif)non définiBundle d'autorités pour rediss://.

Garde des appels sortants​

VariableTypeDéfautValeurs admisesDescription
EAI_EGRESS_PRIVATE_ALLOWLISTliste de chaînesvideDestinations privées autorisées pour les appelants de la plateforme seulement : hôte ou hôte:port exact, *.suffixe ou CIDR. Gardez-la étroite.
EAI_EGRESS_ALLOWED_PORTSliste d'entiers80,443,8443Ports autorisés vers les destinations publiques.
EAI_EGRESS_ALLOW_HTTPbooléenfalseAutorise http en clair vers les destinations publiques. Production : doit être désactivé.
EAI_EGRESS_DNS_TIMEOUT_SECONDSnombre3.0Délai maximal de la résolution DNS qui vérifie une destination.

Observabilité et SLO​

VariableTypeDéfautValeurs admisesDescription
EAI_OTEL_ENABLEDbooléenfalseExporte les traces OpenTelemetry (point OTLP : EAI_OTEL_EXPORTER_OTLP_ENDPOINT ou OTEL_EXPORTER_OTLP_ENDPOINT).
EAI_METRICS_TOKENchaîne (facultatif)non définiJeton Bearer de GET /metrics, obligatoire hors dev et test. Production : 32 caractères minimum.
EAI_WORKER_METRICS_PORTentier9464Port des métriques de python -m eai.worker. 0 : désactivé.
EAI_MEDIA_WORKER_METRICS_PORTentier9465Port des métriques de python -m eai.media_worker. 0 : désactivé.
EAI_SLO_AVAILABILITY_TARGETSchaînecontrol_plane_api=0.995,model_gateway=0.995,tool_gateway=0.995,realtime=0.995Objectif de disponibilité par service (service=ratio, séparés par des virgules) pour GET /v1/telemetry/slo. Services : control_plane_api, model_gateway, tool_gateway, realtime. Production : une valeur invalide est refusée.
EAI_SLO_LATENCY_TARGETS_SECONDSchaînecontrol_plane_api=1,model_gateway=1,tool_gateway=1,realtime=1Objectif de latence par service, en secondes, même format.
EAI_SLO_LATENCY_OBJECTIVEnombre0.95Part des requêtes qui doit rester sous l'objectif de latence.
EAI_SLO_RETENTION_MINUTESentier1440Minutes de mesures gardées en mémoire par chaque réplica de l'API.
EAI_TELEMETRY_SPAN_MAX_DAYSentier90Plafond de conservation des résumés de spans (eai.telemetry_spans), purgés par la tâche de rétention.

Worker de fond​

Tâches périodiques de python -m eai.worker. Un verrou consultatif PostgreSQL garde un seul réplica actif par plan. Intervalles en secondes.

VariableTypeDéfautValeurs admisesDescription
EAI_WORKER_TICK_SECONDSnombre5.0Pause entre deux boucles du worker.
EAI_WORKER_LOCK_KEYentier7310442001Clé de base du verrou consultatif PostgreSQL du leader.
EAI_WORKER_SCHEDULER_INTERVAL_SECONDSentier30Intervalle de la tâche du planificateur (exécutions planifiées).
EAI_WORKER_OUTBOX_INTERVAL_SECONDSentier10Intervalle de la vidange de la boîte d'envoi des événements.
EAI_WORKER_QUOTA_EXPIRY_INTERVAL_SECONDSentier60Intervalle de l'expiration des réservations de quota.
EAI_WORKER_HEARTBEAT_INTERVAL_SECONDSentier60Intervalle de la tâche heartbeats, qui signale les exécutions dont le battement de cœur est périmé.
EAI_WORKER_HEARTBEAT_TIMEOUT_SECONDSentier1800Âge du dernier battement de cœur au-delà duquel une exécution active passe en timed_out (jamais moins que le seuil de péremption EAI_HEARTBEAT_STALE_SECONDS).
EAI_WORKER_APPROVAL_EXPIRY_INTERVAL_SECONDSentier60Intervalle de l'expiration des demandes d'approbation.
EAI_WORKER_RETENTION_INTERVAL_SECONDSentier86400Intervalle de la tâche de rétention (un jour par défaut).
EAI_WORKER_BATCH_SIZEentier100Lignes traitées par tâche et par boucle.
EAI_WORKER_VERIFY_CHAIN_INTERVAL_SECONDSentier3600Intervalle de la vérification de la chaîne de hachage de l'audit (verify_chain).
EAI_WORKER_GAUGES_INTERVAL_SECONDSentier30Intervalle du rafraîchissement des jauges de métriques.
EAI_WORKER_EMBEDDINGS_REINDEX_INTERVAL_SECONDSentier60Intervalle des tâches de réindexation des bases de connaissances et des éléments de mémoire d'un autre modèle.
EAI_WORKER_INBOX_PURGE_SECONDSentier3600Intervalle de la tâche inbox_purge.
EAI_INBOX_RETENTION_DAYSnombre7.0Jours de conservation d'une ligne traitée de la boîte de réception des consommateurs (eai.inbox_events).

Workers média​

VariableTypeDéfautValeurs admisesDescription
EAI_WORKER_MEDIA_REQUEUE_SECONDSentier60Intervalle de la tâche media_requeue de python -m eai.worker.
EAI_MEDIA_JOB_LEASE_SECONDSentier900Une tâche en cours dont updated_at est plus ancien est remise en file.
EAI_MEDIA_JOB_MAX_ATTEMPTSentier3Prises d'une tâche avant que media_requeue la passe en échec.
EAI_MEDIA_WORKER_POLL_SECONDSnombre2.0Intervalle d'interrogation de la base par un worker média sans NATS.
EAI_MEDIA_WORKER_HEARTBEAT_SECONDSnombre60.0Rafraîchissement de updated_at pendant l'exécution d'une tâche.

Temps réel​

VariableTypeDéfautValeurs admisesDescription
EAI_REALTIME_WS_TOKEN_TTL_SECONDSentier300Durée de vie d'un ws_token (usage unique, lié au tenant et à la session) de /v1/realtime/ws/{id}.
EAI_REALTIME_WS_MAX_MESSAGE_BYTESentier1048576Taille maximale d'un message WebSocket ; au-delà : fermeture 1009.
EAI_REALTIME_WS_MAX_EVENTS_PER_SECONDnombre50.0Débit soutenu d'événements client, puis fermeture 4429.
EAI_REALTIME_WS_BURSTentier100Événements client admis en rafale au-dessus du débit soutenu.
EAI_REALTIME_WS_MAX_SESSION_SECONDSentier3600Durée maximale d'une connexion, puis fermeture 4408.
EAI_REALTIME_WS_IDLE_TIMEOUT_SECONDSentier120Aucun événement client pendant cette durée : fermeture 4408.
EAI_REALTIME_CONSENT_REQUIREDbooléen (facultatif)non définiTranscription vocale refusée sans consentement actif du participant. Non défini : exigé partout sauf en dev et test. Production : false est refusé. L'enregistrement exige toujours le consentement.
EAI_STREAM_DLP_HOLDBACK_CHARSentier128Caractères retenus en fin de flux pour qu'une valeur coupée entre deux morceaux soit tout de même détectée par la DLP de sortie.

Export analytique​

VariableTypeDéfautValeurs admisesDescription
EAI_WORKER_ANALYTICS_EXPORT_SECONDSentier60Intervalle de la tâche analytics_export vers ClickHouse (quand EAI_CLICKHOUSE_URL est défini).
EAI_ANALYTICS_EXPORT_BATCHentier5000Lignes par insertion ClickHouse.
EAI_ANALYTICS_EXPORT_MAX_BATCHESentier20Insertions par source et par passage.
EAI_ANALYTICS_EXPORT_LAG_SECONDSnombre5.0Les lignes plus récentes attendent le passage suivant (validations en cours).

Envoi au SIEM et export d'audit WORM​

VariableTypeDéfautValeurs admisesDescription
EAI_WORKER_SIEM_FORWARD_SECONDSentier30Intervalle de la tâche siem_forward (événements d'audit après un repère par tenant).
EAI_SIEM_FORWARD_BATCHentier500Événements d'audit lus par tenant et par passage.
EAI_SIEM_FORWARD_ACTIONSchaînesecurity.*,policy.*,incident.*,approval.*,secret.*,api_key.*,audit.*,dlp.*,authz.write,authz.delete,member.*,provider.disable,model.disable,agent.kill,agent.suspend,multimodal.dlpMotifs d'actions envoyés (préfixe.* ou nom exact, séparés par des virgules), * pour toute la piste d'audit. Les refus et les échecs sont toujours envoyés.
EAI_WORKER_AUDIT_WORM_SECONDSentier3600Intervalle de la tâche audit_worm : un NDJSON signé et son manifeste par tenant et par jour UTC.
EAI_AUDIT_WORM_RETENTION_DAYSentier365Conservation des exports WORM, en jours.
EAI_AUDIT_SIGNINGchaîneautoauto, transit, hmacSignature des exports : auto utilise Transit quand OpenBao est configuré, sinon HMAC ; hmac est réservé à dev et test. Production : pas hmac.
EAI_OPENBAO_AUDIT_SIGNING_KEYchaîneeai-audit-exportClé Transit qui signe les exports (type ed25519 ou ecdsa-p256).
EAI_AUDIT_WORM_STORAGE_PROFILEchaîne (facultatif)non définiProfil de stockage de la plateforme pour l'export quand le tenant n'a pas de profil de finalité audit_worm. Non défini : le stockage historique EAI_S3_*.

Stockage objet​

VariableTypeDéfautValeurs admisesDescription
EAI_STORAGE_CA_BUNDLEchaîne (facultatif)non définiFichier PEM de l'autorité de certification d'un point d'accès sur site. Production : doit être lisible s'il est défini.
EAI_STORAGE_REQUEST_TIMEOUT_SECONDSnombre30.0Délai maximal d'une requête de stockage.
EAI_STORAGE_PRESIGN_MAX_SECONDSentier3600Durée maximale d'une URL présignée émise. Production : entre 1 et 86400.
EAI_STORAGE_CAPABILITY_MAX_AGE_SECONDSentier86400Vérification de capacité plus ancienne : refusée jusqu'à une nouvelle vérification. Production : entre 60 et 604800.

Audit Gateway et preuves​

VariableTypeDéfautValeurs admisesDescription
EAI_WORKER_AUDIT_GATEWAY_SECONDSentier10Intervalle de la tâche audit_gateway qui vide la boîte d'envoi vers le webhook SIEM et NATS JetStream.
EAI_AUDIT_GATEWAY_BATCHentier500Lignes envoyées par passage.
EAI_AUDIT_GATEWAY_MAX_ATTEMPTSentier12Tentatives au-delà desquelles la ligne reste en attente et une alerte d'intégrité est ouverte.
EAI_AUDIT_GATEWAY_BACKOFF_SECONDSnombre2.0Base du délai exponentiel (base * 2^(tentatives-1), plafonné à 900 secondes).
EAI_AUDIT_GATEWAY_NATS_SUBJECTchaîneaudit.eventsSuffixe du sujet NATS : les événements vont vers eai.<tenant>.<sujet>.
EAI_AUDIT_GATEWAY_NATS_STREAMchaîneEAI_AUDITFlux JetStream, créé s'il manque (sujets eai.*.audit.>).
EAI_AUDIT_GATEWAY_HTTP_URLchaîne (facultatif)non définiCollecteur HTTP du SIEM : un POST par événement, Idempotency-Key égal à l'identifiant de l'événement.
EAI_WORKER_AUDIT_RETENTION_SECONDSentier86400Intervalle de la tâche de rétention de l'audit.
EAI_AUDIT_SEAL_SIGNING_KEYchaîne (facultatif)non définiClé PEM Ed25519 des sceaux, pour dev et test seulement.
EAI_AUDIT_SEAL_SIGNING_KEY_REFchaîne (facultatif)non définiRéférence OpenBao de la clé des sceaux, openbao:<chemin kv>#<champ>. Production : obligatoire.
EAI_WORKER_AUDIT_SEAL_SECONDSentier300Intervalle de la tâche de scellement.
EAI_AUDIT_SEAL_MAX_EVENTSentier10000Nombre maximal d'événements sous un même sceau.
EAI_WORKER_AUDIT_INTEGRITY_SECONDSentier900Intervalle du contrôle d'intégrité des sceaux.
EAI_AUDIT_CLOCK_SKEW_SECONDSentier300Avance maximale admise de event_time sur l'horloge de la base. Production : entre 0 et 3600.
EAI_AUDIT_PAYLOAD_KEKchaîne (facultatif)non définiClé d'enveloppe des contenus d'audit : openbao-transit ou une clé base64 de 32 octets (dev et test seulement). Production : openbao-transit.
EAI_AUDIT_PAYLOAD_RETENTION_DAYSentier365Les contenus chiffrés plus anciens sont purgés sauf gel.

FinOps​

VariableTypeDéfautValeurs admisesDescription
EAI_FINOPS_ALERT_THRESHOLDSchaîne50,80,100Seuils d'alerte des budgets et quotas, en pourcentage de la limite, séparés par des virgules, chacun dans ]0, 1000].

SOC et AI-SDR​

VariableTypeDéfautValeurs admisesDescription
EAI_SOC_WEBHOOK_SECRETchaînevideSecret HMAC des webhooks signés Falco, Tetragon et OpenSearch et des accusés de confinement. Vide : ces routes refusent toute livraison. Production : 32 caractères minimum s'il est défini.
EAI_SOC_CORRELATION_WINDOW_SECONDSentier900Fenêtre de corrélation du corrélateur d'événements. Production : entre 60 et 86400.
EAI_WORKER_SOC_VERIFY_SECONDSentier120Intervalle du vérificateur de confinement (soc_verify).
EAI_WORKER_SOC_SCAN_SECONDSentier30Intervalle de l'analyseur d'audit (soc_scan).

Licences​

VariableTypeDéfautValeurs admisesDescription
EAI_LICENSE_PUBLIC_KEYSchaînevideClés publiques Ed25519 de l'éditeur habilitées à signer les licences, <kid>:<clé base64url> séparés par des virgules (plusieurs pour une rotation). Production : les kid test-* sont refusés.
EAI_LICENSE_EXPIRING_SOON_DAYSentier30Jours avant valid_until où l'état devient expiring_soon. Production : entre 1 et 365.
EAI_LICENSE_WARNING_DAYSchaîne30,7,1Seuils d'avertissement de la tâche license_check, en jours, séparés par des virgules.
EAI_WORKER_LICENSE_CHECK_SECONDSentier3600Intervalle de la tâche license_check.

Context Authority et délégations​

VariableTypeDéfautValeurs admisesDescription
EAI_CONTEXT_SIGNING_KEYchaîne (facultatif)non définiClé PEM (Ed25519 ou ECDSA P-256) de la Context Authority, pour dev et test seulement. Jamais journalisée.
EAI_CONTEXT_SIGNING_KEY_REFchaîne (facultatif)non définiRéférence OpenBao de la clé, openbao:<chemin kv>#<champ>. Sans clé, l'autorité refuse de signer. Production : obligatoire.
EAI_CONTEXT_ISSUERchaîneurn:eai:context-authorityÉmetteur des contextes signés.
EAI_CONTEXT_AUDIENCESchaîneeai-control-planeAudiences acceptées par POST /v1/context/verify, séparées par des virgules.
EAI_CONTEXT_TTL_SECONDSentier900Durée de vie par défaut d'un ExecutionContext signé.
EAI_CONTEXT_MAX_TTL_SECONDSentier3600Borne supérieure de la durée de vie d'un contexte et de la fenêtre d'une clé retirée.
EAI_CONTEXT_LEEWAY_SECONDSentier30Décalage d'horloge toléré à la vérification d'un contexte.
EAI_CONTEXT_REQUIREDbooléenfalseChaque exécution exige un contexte signé. Production : doit être activé.
EAI_DELEGATION_DEFAULT_TTL_SECONDSentier28800Durée de vie de la délégation implicite d'une exécution.
EAI_DELEGATION_MAX_TTL_SECONDSentier86400Durée maximale d'une délégation.
EAI_MANDATE_MAX_TTL_DAYSentier365Durée maximale d'un mandat, en jours.
EAI_BREAK_GLASS_MAX_SECONDSentier3600Durée maximale d'un accès d'urgence (break glass).
EAI_WORKLOAD_SERVICE_IDchaîneeai-control-planeIdentité technique de cette charge dans les contextes d'exécution.
EAI_WORKLOAD_SPIFFE_IDchaîne (facultatif)non définiSPIFFE ID de cette charge quand SPIRE en délivre un.

Sécurité des fichiers​

Chaque fichier est mis en quarantaine, analysé par ClamAV (passerelle HTTPS devant clamd) et YARA-X (worker HTTPS), validé, puis seulement transmis à Docling, à l'OCR, au stockage média ou à la transcription.

VariableTypeDéfautValeurs admisesDescription
EAI_FILE_SCAN_MODEchaînedevdev, enforceenforce : les deux moteurs sont exigés, aucun joignable donne 503 (échec fermé). dev : un moteur non configuré est noté not_configured. Toute valeur autre que dev vaut enforce. Production : enforce.
EAI_CLAMAV_URLSchaînevideURL HTTPS de chaque passerelle ClamAV, séparées par des virgules (bascule entre toutes). Production : chaque URL en https.
EAI_CLAMAV_API_KEYchaînevideClé Bearer des passerelles ClamAV. Production : obligatoire.
EAI_YARAX_URLSchaînevideURL HTTPS de chaque worker YARA-X, séparées par des virgules. Production : chaque URL en https.
EAI_YARAX_API_KEYchaînevideClé Bearer des workers YARA-X. Production : obligatoire.
EAI_FILE_SCAN_CA_FILEchaîne (facultatif)non définiPEM de l'autorité qui a signé les certificats des moteurs. Production : fichier lisible obligatoire.
EAI_FILE_SCAN_TIMEOUT_SECONDSnombre60.0Délai maximal par analyse et par moteur.
EAI_FILE_SCAN_MAX_BYTESentier52428800Plafond de la plateforme pour un fichier analysé (50 Mio) ; une politique de tenant ne peut que l'abaisser.
EAI_FILE_SCAN_ARCHIVE_MAX_MEMBER_BYTESentier104857600Taille déclarée d'un membre d'un conteneur ZIP (clamd MaxFileSize, 100 Mio).
EAI_FILE_SCAN_ARCHIVE_MAX_TOTAL_BYTESentier419430400Total déclaré d'une arborescence d'archive (clamd MaxScanSize, 400 Mio).
EAI_FILE_SCAN_ENDPOINT_DOWN_SECONDSnombre30.0Un point d'accès en échec est essayé en dernier pendant cette durée.
EAI_WORKER_FILE_SCAN_PROBE_SECONDSentier60Intervalle de la tâche file_scan_probe (jauges des moteurs et âge des signatures).

Téléphonie​

Connexions du Control Plane aux moteurs de téléphonie des pools PBX (ADR-0173) : AMI et ARI d'Asterisk, JSONRPC de Kamailio et Twirp SIP de LiveKit.

VariableTypeDéfautValeurs admisesDescription
EAI_TELEPHONY_CA_FILEchaîne (facultatif)non définiFichier PEM de l'autorité qui a signé les certificats des moteurs (la CA du Navin Manager), approuvée en plus des autorités par défaut pour l'AMI en TLS, l'ARI, le JSONRPC de Kamailio et le Twirp de LiveKit en https. Non défini : les autorités par défaut seules. Un pool dont tls_verify est désactivé ne vérifie aucun certificat.
EAI_TELEPHONY_EPHEMERAL_ALGORITHMchaînesha256Empreinte du HMAC des identifiants éphémères des softphones WebRTC (sha1, sha256, sha384 ou sha512). Elle doit égaler le paramètre ephemeral_algorithm du service kamailio du Navin Manager (sha256 par défaut), sinon Kamailio refuse tous les softphones.

Moteurs de mémoire​

Instances Mem0 et Cognee installées et exploitées par le Navin Manager (ADR-0174), jointes par eai.domains.memory.engines. Leurs adresses viennent des bindings mem0 et cognee ; leurs clés d'API sont EAI_CRED_MEMORY_MEM0_API_KEY et EAI_CRED_MEMORY_COGNEE_API_KEY du fichier d'environnement sensible, jamais ces réglages.

VariableTypeDéfautValeurs admisesDescription
EAI_MEMORY_MEM0_URLchaînevideAdresse de l'instance Mem0 de la plateforme, rendue depuis le binding mem0. Vide : pas de moteur Mem0.
EAI_MEMORY_COGNEE_URLchaînevideAdresse de l'instance Cognee de la plateforme, rendue depuis le binding cognee. Vide : pas de moteur Cognee.
EAI_MEMORY_COGNEE_ACCESS_CONTROLbooléentrueENABLE_BACKEND_ACCESS_CONTROL de l'instance Cognee, tel que le Navin Manager le rend.
EAI_MEMORY_ENGINES_CA_FILEchaîne (facultatif)non définiFichier PEM de l'autorité des certificats des moteurs (la CA du Navin Manager). Non défini : les autorités par défaut seules.
EAI_MEMORY_ENGINES_ALLOW_HTTPbooléenfalseAutorise le HTTP en clair vers un moteur en recette et en production ; refusé par défaut.
EAI_MEMORY_ENGINE_TIMEOUT_SECONDSnombre10.0Délai maximal d'un appel à un moteur de mémoire, en secondes.

Runtime MCP et serveurs MCP​

Instances MCP isolées par tenant, projet et utilisateur (ToolHive Operator), créées à la demande et détruites après usage par le contrôleur de cycle de vie. Voir Runtime MCP.

VariableTypeDéfautValeurs admisesDescription
EAI_MCP_RUNTIME_ENABLEDbooléenfalseActive le Runtime MCP.
EAI_MCP_RUNTIME_KUBE_URLchaînevideAdresse de l'API Kubernetes. Vide : dans le cluster (KUBERNETES_SERVICE_HOST et le jeton du compte de service).
EAI_MCP_RUNTIME_KUBE_TOKEN_FILEchaîne/var/run/secrets/kubernetes.io/serviceaccount/tokenFichier du jeton du compte de service.
EAI_MCP_RUNTIME_KUBE_CA_FILEchaîne/var/run/secrets/kubernetes.io/serviceaccount/ca.crtFichier d'autorité de l'API Kubernetes.
EAI_MCP_RUNTIME_ISSUERchaînehttps://control-plane.eai-platform.svc.cluster.local/mcp-runtimeiss du JWT que la passerelle remet à un proxy ToolHive.
EAI_MCP_RUNTIME_JWKS_URLchaînevideJWKS lu par les proxys ToolHive (GET /v1/mcp/runtime/jwks de ce Control Plane).
EAI_MCP_RUNTIME_GATEWAY_NAMESPACEchaîneeai-platformNamespace des pods du Control Plane, autorisé en entrée par Cilium.
EAI_MCP_RUNTIME_SERVICE_SUFFIXchaîne.svc.cluster.localSeules les URL de proxy se terminant par ce suffixe (dans le cluster) sont appelées.
EAI_MCP_RUNTIME_TOKEN_TTL_SECONDSentier300Durée de vie du JWT remis à un proxy ToolHive.
EAI_MCP_RUNTIME_PROVISIONING_TIMEOUT_SECONDSentier600Durée maximale de création d'une instance.
EAI_MCP_RUNTIME_QUOTA_CPUchaîne8CPU de la ResourceQuota d'un namespace de projet.
EAI_MCP_RUNTIME_QUOTA_MEMORYchaîne16GiMémoire de la ResourceQuota d'un namespace de projet.
EAI_MCP_RUNTIME_REAPER_SECONDSentier60Intervalle de la boucle de cycle de vie dans les pods de l'API (fin de vie, mise en veille, états, sondes de santé, nettoyages, révocations).
EAI_MCP_INTERNAL_HOSTSliste de chaînesvideHôtes internes où l'entreprise héberge ses propres serveurs MCP (hôte exact, hôte:port, *.suffixe ou CIDR). Les serveurs MCP sont internes uniquement : tout autre hôte est refusé.
EAI_MCP_CATALOG_STORAGE_PROFILEchaînevideProfil de stockage de la plateforme du catalogue d'entreprise dans SeaweedFS. Vide : les modèles de catalog/mcp-runtime (dev et test seulement, refusé en production).
EAI_MCP_CATALOG_KEYchaînemcp-runtime/templates.yamlClé d'objet du fichier des modèles.
EAI_MCP_CATALOG_REFRESH_SECONDSentier300Période de rafraîchissement du catalogue.
EAI_MCP_RUNTIME_IMAGE_REGISTRIESliste de chaînesharbor.example.internalRegistres d'où peut venir l'image d'un modèle.
EAI_MCP_RUNTIME_WAKE_TIMEOUT_SECONDSentier90Durée d'attente d'un appel pour une instance en veille ou recréée.
EAI_MCP_RUNTIME_FAILURE_LIMITentier3Échecs dans la fenêtre avant que l'instance attende un démarrage explicite.
EAI_MCP_RUNTIME_FAILURE_WINDOW_SECONDSentier900Fenêtre du décompte des échecs.
EAI_MCP_RUNTIME_HEALTH_TIMEOUT_SECONDSnombre3.0Délai maximal de la sonde de santé d'un proxy ToolHive (GET /health).
EAI_MCP_RUNTIME_OTEL_ENDPOINTchaîneotel-collector.observability.svc.cluster.local:4318Point OTLP/HTTP (TLS, hôte:port sans schéma) de la télémétrie des proxys.
EAI_MCP_RUNTIME_OTEL_SAMPLING_RATEchaîne1.0Taux d'échantillonnage des traces entre 0 et 1.0 ; chaque requête MCP est tracée par défaut.
EAI_MCP_RUNTIME_OTEL_CA_FILEchaîne/etc/eai/ca/ca.crtFichier d'autorité interne copié dans chaque namespace de projet.

Variables lues hors de cette classe​

Des adaptateurs d'intégration lisent directement quelques autres variables EAI_ (par exemple EAI_QDRANT_URL, EAI_NATS_URL, EAI_TEMPORAL_URL, EAI_LIVEKIT_URL, EAI_CLICKHOUSE_URL, EAI_S3_ENDPOINT, EAI_OPIK_URL, EAI_OTEL_EXPORTER_OTLP_ENDPOINT). Elles sont décrites avec leur composant dans les pages configuration des composants et intégration de la plateforme ; celles que fixe le chart Helm figurent dans la référence des valeurs Helm.