Aller au contenu
English

Transmettre des variables d’environnement

Déclarez les variables transmises à la sandbox, à l’agent et aux commandes.

Déclarez chaque variable là où elle est utile : sur le fournisseur de sandbox, sur le harness d’un agent ou sur une commande. Outpost transmet les noms déclarés ; choisissez le périmètre qui couvre les processus ayant besoin de la valeur.

import { createAgent, createClaudeHarness } from "@elie-laloum/outpost";
import { createDockerSandboxProvider } from "@elie-laloum/outpost/providers/docker";

export const sandboxProvider = createDockerSandboxProvider({
  image: "outpost:dev",
  variables: { CI: "true", NODE_ENV: "test" },
});

export const coder = createAgent({
  harness: createClaudeHarness({
    authentication: "usage",
    variables: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY ?? "" },
  }),
});
OùAtteintPour
variables du fournisseur de sandboxToutes les commandes de la sandbox, agent comprisRéglages d’outils comme CI ou NODE_ENV
variables du harness (agents CLI)Les processus de l’agent uniquementClés d’API, réglages de l’agent, secrets MCP
variables d’une commandeCette seule commandeUne surcharge ponctuelle
.outpost/.env dans le dépôt cibleToutes les commandes de la sandbox, comme celles du fournisseurDes valeurs gardées hors du code, propres à un dépôt

Les valeurs sont des chaînes. Sélectionnez chaque nom dans process.env explicitement : recopier tout process.env enverrait chaque secret de l’hôte dans la sandbox. Les variables par commande sont présentées dans Sessions de sandbox.

Quand un nom apparaît à plusieurs endroits, la source la plus spécifique l’emporte :

.outpost/.env → fournisseur de sandbox → harness → commande

Outpost définit aussi GIT_AUTHOR_* et GIT_COMMITTER_* d’après la configuration Git du dépôt ; toute source déclarée les remplace.

Outpost lit .outpost/.env à la racine du dépôt cible quand il prépare une sandbox. Un fichier absent est ignoré.

NODE_ENV=test
LINEAR_API_KEY=

Une valeur non vide est utilisée telle quelle. Une déclaration vide comme LINEAR_API_KEY= prend la valeur dans l’environnement du processus qui exécute Outpost. Les lignes acceptent export, les guillemets et les commentaires # en fin de ligne.

Node.js peut charger un fichier d’environnement avant d’exécuter votre script :

node --env-file=.env run.ts

Votre code choisit ensuite les valeurs à transmettre avec variables. Charger le fichier dans Node.js ne transmet pas automatiquement son contenu à la sandbox. Le chemin .env est relatif au dossier depuis lequel vous lancez la commande.

Déclarez uniquement ce dont le code de la sandbox a besoin. Les clés d’allocation de sandbox et de stockage restent sur l’hôte avec leurs clients : voir Authentification.

  • Avec l’exécution sur l’hôte, les commandes héritent aussi de tout l’environnement du processus Outpost.
  • Un process.env.NAME ?? "" non défini transmet une chaîne vide, pas une variable absente.

API : Variables · Command · createDockerSandboxProvider · createClaudeHarness · createHarness.