Written by Mot
dotenv-vault holds your secrets in a secure and sophisticated way. Here's how it works.
npx dotenv-vault push
You run npx dotenv-vault push. The request is started.
The .env file is encrypted and sent securely over SSL to Dotenv's in-memory servers.
This encrypted payload is decrypted and briefly held in memory to complete the next steps. Afterward, the memory is flushed. Rest assured the decrypted version is never peristed to Dotenv systems.
The .env file is parsed line by line - in memory.
Note: There are some differences between dotenv parsers across various languages and frameworks. So far Dotenv Vault handles these 100%, and we continue to add test cases to cover all edge cases.
Each key/value pair (and any comments) are extracted - in memory.
The secret is divided into its separate key and value. This is by design. They will be stored in separate databases for added security. This way if an attacker somehow gained access to one database they would not be able to make sense of the data - having only half of the puzzle.
The KEY is encrypted. The VALUE is encrypted. They are encrypted with different master encryption keys. This way if an attacker somehow gained access to the VALUE decryption key they would find the data useless. They would not know if the secret belonged to Twilio or to AWS.
Encryption uses the AES-GCM algorithm. It is:
Additionally, all master encryption keys are rotated on an unpublished schedule, further adding to the level of security.
Dotenv Vault Store
The encrypted VALUE is sent to Dotenv Vault for safe storage. A token is returned as an identifier. The token is used in the next step for mapping the KEY to the VALUE for later secure-read operations.
Multiple security measures go into the Vault. They include but are not limited to:
Dotenv Application Database
Store Key Part with Token
Lastly, the encrypted KEY and token (representing the encrypted VALUE) are placed in an envelope and stored together in the application database.
A success message is returned to the user.
As you see, we go to great lengths to make sure your secrets are safe. Afterall, we keep our secrets here as well.
We hope you like dotenv-vault as much as we do.
Learn about the other pieces of dotenv-vault.
|New to dotenv-vault? Start here|
|Connecting infrastructure (docs coming soon)|
|Managing granular permissions (docs coming soon)|
|Rolling back versions (docs coming soon)|
|How dotenv-vault works|
|Use dotenv with Express|
|Use dotenv and dotenv-vault with Express|