Skip to main content

A tool to manage encrypted environment variables.

Project description

EnvVault

EnvVault is a Python package for encrypting and managing .env files, similar to Rails Credentials. It allows you to securely store sensitive information (such as API keys, database passwords, etc.) and decrypt and use this information at runtime.

Features

  • Encrypt .env files: Encrypt plaintext .env files into .env.enc files.
  • Decrypt .env.enc files: Decrypt .env.enc files at runtime and load environment variables.
  • Multi-environment support: Create separate encrypted files for different environments (e.g., development, production).
  • CLI tool: Provides a command-line interface for managing encrypted files.
  • Integration with pydantic_settings: Supports managing decrypted environment variables using pydantic_settings.

Installation

Install using Poetry:

poetry add envvault

# Or install using pip:
pip install envvault

Usage

1. Initialize

Initialize the master key and an empty .env.enc file:

envvault init --env development

This will generate the following files:

  • master.key: The master key used for encryption and decryption.
  • .env.development.enc: An empty encrypted file.

2. Edit Encrypted File

Edit the .env.enc file using your default editor:

envvault edit --env development

The editor will open a temporary file. After editing, the content will be re-encrypted and saved to .env.development.enc.


3. View Decrypted Environment Variables

Decrypt and view the contents of the .env.enc file:

envvault view --env development

4. Use in Code

Load decrypted environment variables in your code:

from envvault.settings import Settings

# Load configuration for the development environment
settings = Settings.from_credentials(env_name="development")
print("API Key:", settings.API_KEY)
print("Database URL:", settings.DATABASE_URL)

Examples

Initialize and Edit Encrypted File

  1. Initialize:

    envvault init --env development
    
  2. Edit:

    envvault edit --env development
    

    Enter the following content in the editor:

    API_KEY=your_api_key_here
    DATABASE_URL=your_database_url_here
    
  3. View:

    envvault view --env development
    

    Output:

    API_KEY=your_api_key_here
    DATABASE_URL=your_database_url_here
    

Use in Code

from envvault.settings import Settings

# Load configuration for the development environment
settings = Settings.from_credentials(env_name="development")

print("API Key:", settings.API_KEY)
print("Database URL:", settings.DATABASE_URL)

Configuration

Default Editor

You can set the default editor using the EDITOR environment variable. For example:

export EDITOR=code  # Use VS Code
export EDITOR=nano  # Use Nano
export EDITOR=vim   # Use Vim

Multi-Environment Support

EnvVault supports creating separate encrypted files for different environments. For example:

  • .env.development.enc: Development environment.
  • .env.production.enc: Production environment.

Specify the environment name using the --env parameter in CLI commands.


Contributing

Issues and Pull Requests are welcome!


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envvault-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envvault-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file envvault-0.1.0.tar.gz.

File metadata

  • Download URL: envvault-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.7 Darwin/24.0.0

File hashes

Hashes for envvault-0.1.0.tar.gz
Algorithm Hash digest
SHA256 90905e99ce7355d7b3179dee6023dbf8778de7e75621dfbf9d2c04be3ba1a224
MD5 5bc29f07093c0257c920cdb9535d7f6e
BLAKE2b-256 58e43b5a17a54c021305633139f70330967c0b69dc86f0b1d7b47a982d32cf84

See more details on using hashes here.

File details

Details for the file envvault-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: envvault-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.7 Darwin/24.0.0

File hashes

Hashes for envvault-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb6e837997e0528f6ed2bc5da3bf6ed8656fd18a1042ed1d9041ff69342e9a0d
MD5 549e909dd31004b675b7bbcb410b639e
BLAKE2b-256 9c6eb9f54d12697709f1c36596014e15fd2188a444043afdbfbd62042850a219

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page