Utilisation de la CLI

Guide complet des commandes EnvSafe CLI pour gérer vos variables d'environnement.

🚀 Démarrage rapide

# 1. Se connecter
envsafe login

# 2. Lier le répertoire à un workspace
envsafe link my-workspace

# 3. Sélectionner un projet
envsafe select my-project

# 4. Récupérer les variables
envsafe pull -d    # development
envsafe pull -p    # production

Lier un workspace (Link)

Liez votre répertoire local à un workspace EnvSafe. Cela crée un fichier .envsafe pour stocker la configuration.

# Mode interactif - sélectionner un workspace
envsafe link

# Spécifier directement le workspace
envsafe link my-workspace

💡 Astuce : N'oubliez pas d'ajouter .envsafe à votre .gitignore si vous ne souhaitez pas partager cette configuration.

Configuration interactive (Init)

Configurez votre workspace et projet en mode interactif.

envsafe init

Lister les projets

Affichez les projets du workspace lié.

# Lister les projets du workspace lié
envsafe list

# Alias
envsafe ls

# Lister TOUS les projets accessibles (global)
envsafe projects

Sélectionner un projet

Sélectionnez un projet du workspace pour éviter de le spécifier à chaque commande.

envsafe select my-project

Créer un projet

Créez un nouveau projet directement depuis la CLI.

# Mode interactif
envsafe create

# Avec un nom
envsafe create "My New Project"

# Alias
envsafe new "My Project"

Récupérer les variables (Pull)

Téléchargez les variables d'un environnement dans un fichier .env local.

# Avec le projet configuré (après 'envsafe select')
envsafe pull          # development (par défaut)
envsafe pull -d       # development
envsafe pull -s       # staging
envsafe pull -p       # production

# Spécifier un projet manuellement
envsafe pull my-project -p

# Fichier de sortie personnalisé
envsafe pull -d -o .env.local

# Syntaxe longue
envsafe pull --env production --output .env.prod

⚠️ Attention : Le fichier de sortie sera écrasé. Assurez-vous de sauvegarder vos modifications locales si nécessaire.

Envoyer des variables (Push)

Importez vos variables locales vers EnvSafe. Les valeurs seront automatiquement chiffrées.

# Avec le projet configuré
envsafe push          # development, fichier .env
envsafe push -d       # development
envsafe push -s       # staging
envsafe push -p       # production

# Fichier source personnalisé
envsafe push -p -f .env.production

# Spécifier un projet
envsafe push my-project -s -f .env.staging

💡 Astuce : Les variables existantes seront mises à jour, les nouvelles seront créées. Les variables absentes du fichier ne seront pas supprimées.

Exécuter avec injection (Run)

Injectez les variables directement dans un processus sans créer de fichier .env sur le disque. Plus sécurisé pour la CI/CD et le développement local.

# Avec le projet configuré
envsafe run npm start
envsafe run --project my-project -p node server.js

# Exemples d'usage
envsafe run npm run dev
envsafe run pnpm build
envsafe run python main.py
envsafe run docker-compose up

Comment ça marche ?

  1. La CLI récupère et déchiffre les variables depuis EnvSafe
  2. Les variables sont injectées dans process.env du processus enfant
  3. Votre commande s'exécute avec accès aux variables
  4. Aucun fichier .env n'est créé sur le disque

Surveillance en temps réel (Watch)

Puissant

Surveillez vos variables d'environnement en temps réel. Détecte automatiquement les changements distants et locaux, et synchronise votre fichier .env.

# Surveiller avec le projet configuré
envsafe watch             # development (par défaut)
envsafe watch -d          # development
envsafe watch -s          # staging
envsafe watch -p          # production

# Spécifier un projet
envsafe watch my-project -p

# Surveiller un fichier spécifique
envsafe watch -f .env.local
envsafe watch --file .env.production

Sync distante

Détecte les changements sur le serveur et met à jour votre fichier local automatiquement.

Watch local

Surveille aussi le fichier .env local pour détecter les modifications manuelles.

Hot Reload

Idéal pour le développement local : vos variables sont toujours à jour sans redémarrage.

💡 Astuce : Utilisez Ctrl+C pour arrêter la surveillance. Le fichier de sortie par défaut est .env, modifiable avec l'option --file.

Rotation des secrets (Rotate)

Sécurité

Gérez la rotation automatique de vos secrets. Régénère les valeurs sensibles selon un intervalle configurable pour renforcer la sécurité.

# Activer la rotation automatique
envsafe rotate enable --interval 30d
envsafe rotate enable --interval 7d --exclude DATABASE_URL,APP_NAME

# Désactiver la rotation
envsafe rotate disable

# Vérifier le statut
envsafe rotate status

# Forcer une rotation immédiate
envsafe rotate now
envsafe rotate now --vars API_KEY,JWT_SECRET

⚠️ Attention : La rotation régénère les valeurs des secrets. Assurez-vous que vos services sont configurés pour récupérer les nouvelles valeurs automatiquement (via watch ou pull).

Raccourcis d'environnement

Les commandes pull, push et run supportent ces raccourcis :

OptionEnvironnement
-d / --devdevelopment
-s / --stagingstaging
-p / --prodproduction
-e <env>personnalisé

Fichier .envsafe

Le fichier .envsafe stocke la configuration locale de votre projet :

{
  "workspace": "my-workspace",
  "project": "my-project"
}

Toutes les commandes

CommandeDescription
envsafe loginSe connecter avec un token API
envsafe logoutSe déconnecter
envsafe whoamiAfficher l'utilisateur connecté
envsafe link [workspace]Lier ce répertoire à un workspace
envsafe initConfigurer un projet (interactif)
envsafe list / lsLister les projets du workspace lié
envsafe select <project>Sélectionner un projet
envsafe create / new [name]Créer un nouveau projet
envsafe pull [project]Télécharger les variables
envsafe push [project]Envoyer les variables
envsafe run [--project <name>] <cmd>Exécuter avec injection
envsafe watch [project]Surveiller les variables en temps réel
envsafe rotate <action>Gérer la rotation automatique des secrets
envsafe config [--api-url <url>] [--show]Gérer la configuration CLI
envsafe lang / language [code]Changer la langue de la CLI
envsafe m2m / machineAuthentification Machine-to-Machine (CI/CD)
envsafe projectsLister tous les projets (global)