Aller au contenu

Variables d'environnement de la passerelle

Toutes les variables que la passerelle lit : obligation, valeur par défaut, profil concerné et effet.

Interne, peut changer sans préavis. Ce que décrit cette page relève de l’exploitation d’un déploiement, pas du contrat que la passerelle offre à un programme tiers. L’éditeur ne s’y engage pas : ces noms peuvent changer d’une version à l’autre, sans étape de dépréciation. Un changement se manifeste alors au démarrage ou à la mise à jour, par un message qui nomme ce qui manque.

La partie sur laquelle l’éditeur s’engage est le relais.

Toutes les variables que la passerelle lit sont ici. Une variable absente de cette page n’est lue par aucun de ses modules.

Aucune valeur n’est publiée, y compris en exemple. La colonne « Secret » dit lesquelles portent un secret ; leur valeur vit dans le gestionnaire de secrets du déploiement, jamais dans une documentation ni dans un fichier du dépôt.

La colonne « Profil » distingue les deux façons dont le produit est livré : le déploiement que le client héberge lui-même, et celui que l’éditeur opère. Voir Profils de déploiement.

NomObligatoireDéfautSecretProfilEffet
DATABASE_URLouiaucunouiles deuxLa base PostgreSQL que la passerelle interroge. Sans elle, la passerelle refuse de démarrer plutôt que de supposer une base locale : une supposition masquerait une configuration absente. Le paramètre sslmode y est refusé : la validation du certificat est posée par le code, pas par l’URL.
DATABASE_CA_CERT_PATHnonaucunnonles deuxChemin de l’autorité de certification à présenter pour valider le certificat de la base. Sans elle, la validation reste active et s’appuie sur les autorités du système. Un chemin illisible arrête le démarrage. Ne se pose pas en même temps que DATABASE_CA_CERT.
DATABASE_CA_CERTnonaucunnonles deuxLe contenu PEM de cette même autorité, pour les plateformes qui ne savent passer que des variables d’environnement et n’offrent aucun disque où monter un fichier. Même effet que DATABASE_CA_CERT_PATH, dont c’est la seconde entrée et non un second mécanisme : une valeur qui ne porte pas de certificat arrête le démarrage, et les deux variables posées ensemble aussi, parce que rien ne dirait laquelle fait foi. Le certificat d’une autorité est public : ce n’est pas un secret.
DATABASE_TLS_SERVER_NAMEnonaucunnonopéré par l’éditeurLe nom contre lequel le certificat de la base est vérifié quand DATABASE_URL joint la base par son adresse IP, typiquement une adresse de réseau privé, alors que le certificat porte un nom DNS. La vérification reste entière : seul le nom comparé change. Une valeur qui est une adresse IP, qui n’a pas la forme d’un nom d’hôte, ou posée alors que DATABASE_URL nomme déjà la base par un nom arrête le démarrage. Offre hébergée seulement : un artefact on-premise refuse de démarrer si elle est posée.
PORTnon6001nonles deuxLe port d’écoute. Une valeur qui n’est pas un nombre ramène au défaut.
TLS_CERT_FILEnonaucunnonles deuxChemin du certificat de service. Posé avec la clé, la passerelle termine elle-même le chiffrement du transport ; sans les deux, elle sert en clair et l’annonce au démarrage. Un seul des deux arrête le démarrage : aucune configuration incomplète ne retombe sur le clair.
TLS_KEY_FILEnonaucunouiles deuxChemin de la clé privée du certificat de service. Va toujours avec TLS_CERT_FILE.
UPSTREAM_TLS_CLIENT_CERT_FILEnonaucunnonles deuxChemin du certificat client que la passerelle présente au moteur d’inférence quand celui-ci est joint en https. Sans lui, la sortie se fait sans certificat client.
UPSTREAM_TLS_CLIENT_KEY_FILEnonaucunouiles deuxChemin de la clé privée du certificat client sortant. Va toujours avec le certificat.
UPSTREAM_TLS_CA_FILEnonaucunnonles deuxChemin de l’autorité de certification qui valide le certificat du moteur d’inférence. Utile quand le moteur porte un certificat émis par une autorité interne.
HTTPS_PROXYnonaucunnonles deuxLe proxy d’entreprise par lequel la passerelle sort en https. Déclaré comme une URL complète ; un hôte et un port seuls sont refusés au démarrage. À défaut, HTTP_PROXY s’applique aussi aux cibles https, comme le veut la convention Unix.
HTTP_PROXYnonaucunnonles deuxLe proxy d’entreprise par lequel la passerelle sort en http, et le repli des cibles https quand HTTPS_PROXY n’est pas posé. Une URL dont le protocole n’est ni http ni https arrête le démarrage.
NO_PROXYnonaucunnonles deuxLes motifs d’hôtes joints sans passer par le proxy, séparés par des virgules. C’est par là qu’un moteur d’inférence hébergé sur le réseau interne échappe au proxy d’entreprise.
NODE_EXTRA_CA_CERTSnonaucunnonles deuxChemin du magasin d’autorités internes, celui qu’exige un proxy d’entreprise qui déchiffre le trafic. Lu au démarrage pour qu’un fichier illisible soit un refus de démarrage : Node, lui, se contente d’un avertissement et démarre quand même.
REQUEST_TIMEOUT_SECONDSnon1800nonles deuxLe nombre de secondes au bout desquelles le transport coupe une requête en cours. C’est un filet de sécurité placé bien au-delà de la durée maximale d’une commande d’agent : une valeur qui repasserait sous cette durée arrête le démarrage.
OIDC_ISSUERnonaucunnondéploiement clientL’émetteur de l’annuaire d’entreprise auquel la passerelle délègue l’authentification : une URL absolue en https, sans requête ni fragment. Sans elle et sans OIDC_CLIENT_ID, une passerelle en déploiement client n’authentifie personne et refuse toutes les requêtes.
OIDC_CLIENT_IDnonaucunnondéploiement clientL’identifiant de client OAuth 2 de la passerelle auprès de l’annuaire. Une configuration à moitié posée (l’un des deux sans l’autre) refuse tout et le dit au journal de l’exploitant.
OIDC_CLIENT_SECRETnonaucunouidéploiement clientLe secret client, à ne poser que si l’annuaire exige un client confidentiel. Là où PKCE suffit, ne pas en détenir est préférable.
OIDC_AUDIENCEnonla valeur d'OIDC_CLIENT_IDnondéploiement clientL’audience attendue dans le jeton présenté.
OIDC_REDIRECT_URInonaucunnondéploiement clientL’adresse de retour du flux d’autorisation, quand un flux de connexion est servi.
ADMIN_API_KEYouiaucunouiopéré par l’éditeurLa clé du compte d’administration amorcé au démarrage. Propre au profil opéré par l’éditeur : en déploiement client, les identités viennent de l’annuaire et cette variable n’existe pas dans l’artefact livré.
LEMNISCATE_LICENSEnonaucunouidéploiement clientLa licence du déploiement elle-même, en base64. Elle porte le nom du client, la date d’expiration, le nombre de sièges et les capacités licenciées, le tout signé : la passerelle en vérifie la signature au démarrage. Elle prend le pas sur LEMNISCATE_LICENSE_FILE quand les deux sont posées. Absente, la passerelle démarre et le dit au journal de l’exploitant : aucune requête n’est alors mesurée contre des sièges ni des capacités, le contrôle commercial propre à la passerelle étant un mécanisme distinct, encore à construire. Posée mais invalide, elle arrête le démarrage en nommant la cause : personne ne pose une licence par accident. Propre au déploiement client : le profil opéré par l’éditeur ne connaît pas de licence, ses limites commerciales passant par la facturation.
LEMNISCATE_LICENSE_FILEnonaucunnondéploiement clientLe chemin d’un fichier qui contient cette même licence, pour les exploitants qui montent un secret sur disque plutôt que de le poser dans l’environnement. Même effet que LEMNISCATE_LICENSE, dont c’est la seconde entrée et non un second mécanisme. Un chemin illisible arrête le démarrage en nommant le fichier, plutôt que de faire comme si aucune licence n’avait été fournie.
LEMNISCATE_AGENT_EXECUTION_LAUNCHERnonaucunnonles deuxLe lanceur de commandes d’agent que la passerelle offre. Cette version n’en offre aucun : rien d’écrit est le défaut et la seule valeur acceptée, et toute valeur (direct comprise, retirée le 2026-08-06) arrête le démarrage en disant pourquoi. Les commandes de l’agent s’exécutent dans le conteneur par session, jamais dans la passerelle : celle-ci porte les clés des fournisseurs d’inférence et l’accès à la base, et son profil de durcissement ne lui accorde d’écriture nulle part.
PATHnonaucunnonles deuxRecopiée telle quelle vers les processus que le lanceur d’agent démarre. La liste des variables transmises est blanche et fermée : ce qui n’y figure pas ne franchit pas la frontière.
LANGnonaucunnonles deuxRecopiée telle quelle vers les processus que le lanceur d’agent démarre.
LC_ALLnonaucunnonles deuxRecopiée telle quelle vers les processus que le lanceur d’agent démarre.
TZnonaucunnonles deuxRecopiée telle quelle vers les processus que le lanceur d’agent démarre.
LEMNISCATE_DOCS_DIRnonaucunnonles deuxLe répertoire où l’archive de documentation livrée avec le serveur a été dépliée. Rien d’écrit veut dire : aucune documentation servie, ce qui est le défaut. Posée, la passerelle lit lemniscate.json à la racine de ce répertoire et sert l’arborescence sous la base que ce fichier déclare : une archive n’est utilisable que sous le chemin pour lequel elle a été construite. Un répertoire absent, une archive incomplète ou une archive gelée pour un autre chemin arrêtent le démarrage plutôt que de devenir « aucune documentation ».
CONTROL_PLANE_ORGANIZATIONouiaucunnonles deuxL’organisation dont cette passerelle sert la politique aux postes. Sans elle, la passerelle refuse de démarrer plutôt que de supposer une organisation : une supposition la ferait répondre « rien n’est restreint » à tout un parc, sans que rien n’ait l’air cassé. Le nom attendu est celui inscrit en base, celui que le poste reçoit sous orgSlug.

La convention Unix veut qu’un même réglage se pose en majuscules ou en minuscules. La passerelle lit les deux, et retient la première déclarée dans cet ordre.

NomÉgalement lu sous
HTTPS_PROXYhttps_proxy
HTTP_PROXYhttp_proxy
NO_PROXYno_proxy

Une variable dont le nom n’est pas écrit dans le produit

Section intitulée « Une variable dont le nom n’est pas écrit dans le produit »

la clé du fournisseur : Le nom de cette variable n’est pas écrit dans le code : c’est l’exploitant qui le choisit, en déclarant son fournisseur dans la console d’administration. La passerelle lit la variable ainsi nommée pour injecter la clé du fournisseur dans la requête sortante. Absente, elle rend un refus 500 qui nomme la variable attendue.

Les variables que la passerelle recopie vers les processus d’agent qu’elle lance sont dans le tableau ci-dessus, avec leur effet. La liste est blanche et fermée : ce qui n’y figure pas ne franchit pas cette frontière.

Les variables de la console d’administration sont un autre jeu, décrit avec elle. Les deux composants lisent la même base, et n’ont pas pour autant la même configuration : par exemple, la passerelle refuse de démarrer sans DATABASE_URL là où la console retombe sur une base de développement locale.