#cli #dotenv

bin+lib vdot

Create your .env files using HashiCorp Vault

27 releases

0.4.14 Feb 12, 2023
0.4.12 Jul 20, 2022
0.4.10 Apr 9, 2021
0.4.8 May 7, 2020
0.3.7 Mar 30, 2019

#116 in Configuration

MIT license

17KB
245 lines

vdot

Create your .env files using HashiCorp Vault.

🔮 Want to start a process with Vault? Consider using HashiCorp's envconsul.

Installation

Homebrew and Linuxbrew

You can install brew from https://brew.sh.

brew tap sjparkinson/vdot https://github.com/sjparkinson/vdot
brew install vdot

Cargo

You can install cargo from https://www.rust-lang.org/tools/install.

cargo install vdot

Download

You can download executables for macOS, Linux, and Windows from https://github.com/sjparkinson/vdot/releases/latest.

Usage

vdot

USAGE:
    vdot [FLAGS] [OPTIONS] <PATH>...

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information
    -v, --verbose    Verbose mode

OPTIONS:
    -o, --output <path>              Write to the given file [default: .env]
        --kv <version>               Version of the key value secrets engine [default: 2]  [possible values: 1, 2]
        --vault-token <token>        Vault token used to authenticate requests [env: VAULT_TOKEN]
        --vault-address <address>    Vault server address [env: VAULT_ADDR=http://127.0.0.1:8200]

ARGS:
    <path>...    Path to the Vault secrets

The following assumes you are using version two of Vault's key-value secret engine. Check out vdot --help for more information.

$ vault kv put secret/foo-bar ENV=production LOG_LEVEL=info
$ vault kv put secret/fizz-buzz LOG_LEVEL=debug
$ vdot --vault-token "$(cat ~/.vault-token)" secret/foo-bar secret/fizz-buzz
info: saved 2 environment variables to .env
$ cat .env
ENV=production
LOG_LEVEL=info

Environment Variables

Instead of passing in the --vault-* options, you can define them as environmnent variables.

The Vault CLI defines that VAULT_TOKEN and VAULT_ADDR can be used. These two environment variables are also supported by vdot.

Dependencies

~6–20MB
~292K SLoC