ferrvault lit les secrets d'un environnement de vault et les affiche, ou lance une commande avec eux dans son environnement. Elle s'authentifie avec un token de compte de service, et voit donc exactement l'environnement auquel ce token est lié.

Installer

La CLI se compile depuis les sources avec Cargo :

cargo install --git https://github.com/FerrLabs/FerrVault ferrvault-cli

Aucun binaire précompilé n'est encore publié.

Se connecter

ferrvault login --url https://api.ferrvault.com

Le token est lu sur l'entrée standard, ou depuis --token ou FERRVAULT_TOKEN. Il est vérifié auprès de l'API avant d'être enregistré, puis conservé dans le magasin d'identifiants du système : Gestionnaire d'identification sous Windows, Trousseau sous macOS, libsecret sous Linux. Il n'y a pas de repli sur un fichier : sous Linux sans trousseau, login échoue.

En CI, sautez login et définissez FERRVAULT_URL et FERRVAULT_TOKEN dans l'environnement.

Commandes

Commande Ce qu'elle fait
ferrvault whoami Affiche le vault, le rôle, le libellé et l'expiration du token.
ferrvault list Liste les noms et versions des secrets, jamais les valeurs.
ferrvault get NAME Affiche une valeur.
ferrvault get --all Affiche toutes les valeurs, en --format env, dotenv ou json.
ferrvault get --names A,B Affiche une sélection.
ferrvault exec -- CMD Lance CMD avec chaque secret en variable d'environnement.
ferrvault set NAME VALUE Crée un secret, ou le fait tourner avec --update. Demande writer.
ferrvault delete NAME Supprime un secret en gardant ses versions. Demande writer.
ferrvault logout Oublie l'URL et le token enregistrés.

ferrvault exec n'écrit jamais les valeurs sur disque, c'est la façon la plus sûre de transmettre des secrets à un processus :

ferrvault exec -- ./run-migrations.sh
ferrvault exec --names DATABASE_URL,STRIPE_KEY -- npm run start

Déploiements privés

Option Effet
--ca-cert PATH Fait confiance à un certificat d'AC supplémentaire (PEM).
--client-cert, --client-key Présente un certificat client pour du TLS mutuel.
--pin-sha256 HASH Épingle le certificat serveur par le SHA-256 d'un certificat de sa chaîne.

Chaque option a sa variable d'environnement FERRVAULT_* ; ferrvault --help les liste.