Envveil
Envveil is a Python library and CLI tool for scanning, encrypting, and managing sensitive secrets (like API keys, tokens, and passwords) in your project. It helps you keep secrets out of your codebase, supports both key file and passphrase-based encryption, and provides audit logging and .gitignore management for maximum security.
Author
- Satarupa Deb
Features
- Scan for sensitive keys in
.env,settings.py, JSON, and other files - Encrypt secrets using either a key file or a user-supplied passphrase (no key file needed)
- Decrypt secrets easily for local use
- Rotate encryption keys or passphrases and re-encrypt secrets
- Retrofit protection for already-pushed repositories
- Audit logging for all secret access and key rotation events
- Automatic .gitignore management and warnings for unsafe key handling
- Language-specific .gitignore template fetcher
Installation
From PyPI
pip install envveil
Usage Summary Table
| Step | Command Example | What Happens |
|---|---|---|
| Scan | scan --env .env |
Finds secrets in file |
| Encrypt | encrypt --env .env --passphrase "your_passphrase" |
Encrypts secrets with passphrase, stores salt+data |
| Decrypt | decrypt --passphrase "your_passphrase" |
Decrypts and prints secrets |
| Rotate Key | rotate-key --old-passphrase "old" --new-passphrase "new" |
Changes passphrase, re-encrypts secrets |
| Audit Log | (automatic) | Logs all decrypt/rotate events |
| .gitignore | (automatic) | Ensures secret files are ignored by git |
Security Notes
- Passphrase mode: No key file is stored. The passphrase is never saved; if you forget it, secrets are unrecoverable.
- Key file mode: Always ensure
.envveil.keyis in your.gitignore. envveil will warn you if not. - Audit log: All decryption and key rotation events are logged in
envveil_audit.log. - .env.encrypted and key files are always added to
.gitignoreautomatically.
License
MIT License
Disclaimer
envveil is a developer tool for secret management and does not guarantee absolute security. Always follow best practices for secret storage and access control in production environments.
Metadata
Release files for envveil 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| envveil-0.3.1.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| envveil-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.4 kB
Release files / envveil-0.3.1.tar.gz
| Download URL | envveil-0.3.1.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12ba8d726e6a60d2929f1212191a0d50380109f650344fa9c8037a7b7c5a40e3
|
|
BLAKE2b-256 checksum How to use checksums |
992b596a842b1f9a408abe1b2c319d506067e687b9e2afd699719911ce75eee5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Release files / envveil-0.3.1-py3-none-any.whl
| Download URL | envveil-0.3.1-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
16d411265225aeb8d812a2d8e5750d09500c37178305e9d05326622212047753
|
|
BLAKE2b-256 checksum How to use checksums |
5790b30a68f2145d4dc524f46bbd215b76a1fd1b23d08fe849e73a1c7f1a2cb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|