Skip to content

slipp integrates with Ansible Vault for secure secret management. Generate secrets, store them encrypted, and use them in deployments and local development.

  1. Generate a secret

    Terminal window
    slipp secret
    # Output: 64 hex chars (256-bit)
  2. Add to vault

    Terminal window
    slipp secrets add vault_db_password myproject
  3. Use in templates

    group_vars/all.yml
    database_password: "{{ vault_db_password }}"
  4. Encrypt vault

    Terminal window
    ansible-vault encrypt inventory/host_vars/myhost/vault.yml
Terminal window
slipp secret

Output: 64 hex characters (256-bit entropy)

Terminal window
# 16 bytes (128-bit)
slipp secret --bytes 16
# 64 bytes (512-bit)
slipp secret --bytes 64
Terminal window
slipp secrets list

Shows all registered projects with vault files:

Available vaults:
project vault secrets
myproject inventory/.../vault.yml 5
auth-service inventory/.../vault.yml 3
Terminal window
slipp secrets list myproject
Secrets in inventory/host_vars/myhost/vault.yml:
- vault_db_password
- vault_api_key
- vault_jwt_secret
Terminal window
slipp secrets list myproject vault_db_password
# Output: {{ vault_db_password }}
Terminal window
slipp secrets add vault_db_password myproject

Generates a random secret and adds it to the vault.

Terminal window
slipp secrets add vault_signing_key myproject --jwk

Generates an RSA keypair for JWT signing.

Terminal window
slipp secrets add vault_session_key myproject --bytes 64

Auto-generate secrets for all {{ vault_* }} references:

Terminal window
slipp secrets sync inventory/host_vars/myhost/vars.yml
  1. Scans the YAML file for {{ vault_* }} patterns
  2. Lists found references
  3. Generates random secrets for each
  4. Creates vault.yml in the same directory

Reference vault secrets in your vars files:

group_vars/all.yml
database:
password: "{{ vault_db_password }}"
api:
secret_key: "{{ vault_api_key }}"

Load vault secrets as environment variables:

Terminal window
slipp run dev --vault myproject --cmd "npm run dev"

Secrets are transformed and injected:

  • vault_db_password becomes DB_PASSWORD
  • vault_api_key becomes API_KEY

Combine secrets from multiple projects:

Terminal window
slipp run dev --vault myproject --vault shared-secrets
  1. Create vars file with references

    inventory/host_vars/myhost/vars.yml
    matrix_sliding_sync_shared_secret: "{{ vault_sliding_sync_secret }}"
    matrix_postgres_connection_password: "{{ vault_postgres_password }}"
  2. Generate secrets

    Terminal window
    slipp secrets sync inventory/host_vars/myhost/vars.yml
  3. Encrypt vault

    Terminal window
    ansible-vault encrypt inventory/host_vars/myhost/vault.yml
  4. Deploy

    Terminal window
    slipp deploy
    # Prompts for vault password
  1. Add to vault

    Terminal window
    slipp secrets add vault_new_secret myproject
  2. Reference in vars

    new_service_key: "{{ vault_new_secret }}"
  3. Redeploy

    Terminal window
    slipp deploy

Pull credentials from external services via browser-based approval.

  1. Start pull

    Terminal window
    slipp secrets pull nor-auth myproject
  2. Browser opens for authentication and resource selection

  3. Approve the credential export in your browser

  4. Credentials stored encrypted in your vault

Pull bot credentials and API keys from nor-auth console:

Terminal window
slipp secrets pull nor-auth

This exports:

  • Bot credentialsvault_nor_bot_<name>_* variables
  • API keysvault_nor_api_key_<name> variables
OptionDefaultDescription
--timeout300sTime to wait for browser approval