jex run
Exécute une commande avec les secrets injectés dans l’environnement, sans les écrire sur disque.
Utilisation
jex run [flags] -- <command> [args...]
Comportement
- Lit
.envaultpour déterminer l’ID du projet et l’environnement par défaut - Récupère les secrets depuis l’API (
GET /projects/:id/secrets/export?format=json) - Construit une liste d’environnement :
os.Environ()+ les secrets récupérés - Exécute
<command>aveccmd.Env = envSlice - Transmet
stdin,stdoutetstderr - Quitte avec le code de sortie du processus enfant
Aucun fichier n’est écrit sur disque. Les secrets vivent uniquement dans l’environnement du processus.
Flags
| Flag | Description |
|---|---|
--env | Remplace l’environnement par défaut de .envault |
--allow-insecure | Autorise les connexions API HTTP non TLS |
Exemples
# Lancer votre serveur de développement avec les secrets dev
jex run -- npm run dev
# Lancer avec un environnement spécifique
jex run --env staging -- node server.js
# Lancer un script ponctuel
jex run -- python scripts/migrate.py
# Passer des arguments à la commande
jex run -- docker build --build-arg TAG=latest .
Remplacer l’environnement via une variable
Comme jex run désactive le parsing des flags pour la commande enfant, vous pouvez aussi remplacer l’environnement avec la variable JEX_ENV :
JEX_ENV=staging jex run -- node server.js
Codes de sortie
jex run quitte avec le même code de sortie que le processus enfant. Une erreur de connexion ou d’authentification quitte avec le code 1.
Invariants de sécurité
- Les secrets ne sont jamais écrits sur disque, même pas dans
/tmp - Les secrets ne sont pas journalisés sur stdout ou stderr par
jex run - La récupération se fait en HTTPS ; HTTP est refusé sauf si
--allow-insecureest défini
Voir aussi
jex secrets pull— écrire les secrets dans.envà la placejex init— configurer.envaultd’abord