54 KiB
Executable File
Changelog
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
1.50.1 (2025-09-18)
Removed
- Remove listed command to
radar(nowops) (#678)
1.50.0 (2025-09-18)
Added
- Add optional
dotenvx opscommand (#677) - Ops is a coming rename of Radar. Radar will become a feature inside ops.
- With
dotenvx opsuse dotenvx across your team, infrastructure, agents, and more.
_______________________________________________________________________
| |
| Dotenvx Ops: Commercial Tooling for Dotenvx |
| |
| ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░ ░▒▓██████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
| ░▒▓██████▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ |
| |
| Use dotenvx across your team, infrastructure, agents, and more. |
| |
| Learn more at https://dotenvx.com/ops |
|_______________________________________________________________________|
1.49.1 (2025-09-15)
Changed
- 🐞 patch bug with variable expansion of single quoted values (#675)
1.49.0 (2025-08-18)
Added
- For precommit and prebuild, ignore
.env.xfile like we do with.env.vaultfile. (#666)
1.48.4 (2025-07-29)
Removed
- Remove unnecessary use of
evalin proKeypair helper (#654)
1.48.3
Changed
- Include
privateKeyNameandprivateKeyon internalprocessedEnvobject (#649)
1.48.2
Changed
- Check radar status before sending (#646)
1.48.1
Changed
- Send
beforEnvandafterEnvto Radar if user has installed (#645)
1.48.0
Added
- Include
beforeEnvandafterEnvfor user debugging (#644)
1.47.7
Changed
srcshould be in internalprocessEnvobject (#643)
1.47.6
Changed
- Make Radar call non-blocking (#642)
1.47.5
Changed
- Add resilient handling of any Radar failures (#639)
1.47.4
Changed
- Smarter require of non-installed libs like
dotenvx-radar(#638)
1.47.3
Added
Removed
- Remove
cliin package.json (#632)
1.47.2
Added
- Export
cliin package.json (#629)
1.47.1
Added
- Add convenience log that
radar active 📡when dotenvx-radar is installed (#625)
1.47.0
Added
- Add optional
dotenvx radarcommand (#624) - Radar is an early access commercial extension for dotenvx that will auto backup your .env files.
_______________________________________________________________________
| |
| Dotenvx Radar: Env Observability |
| |
| ░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓███████▓▒░░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| |
| Observe, version, and back up your environment variables at runtime. |
| |
| Purchase lifetime access at https://dotenvx.com/radar |
| |
| --------------------------------------------------------------------- |
| - thank you for using dotenvx! - @motdotla |
|_______________________________________________________________________|
1.46.0
Added
- Add error when hoisting issue experienced around commander.js (#623)
Removed
- Remove
git-dotenvxandgit dotenvxshorthand (#621)
1.45.2
Changed
- Minor README updates
1.45.1
Changed
- Include
setLogNameandsetLogVersioninconfig(#613)
1.45.0
Added
- Add
logger.setNameandlogger.setVersionfor customization of logger (#612)
1.44.2
Changed
- Clarify license is BSD-3.
1.44.1
Changed
- Patch
SetOutputtype (#597)
1.44.0
Added
- Add
armv7support (#593)
1.43.0
Removed
- Remove
errorv, errornocolor, blankfrom logger options (#584)
Changed
- Replace instances of
console.errorwithlogger.error(#584)
1.42.2
Changed
- Fix
--forceflag work with?force=true(2776715)
1.42.1
Added
- Add
--forceflag toinstall.sh(0b8d21c)
1.42.0
Added
- Add ability to override the
osandarchviainstall.shanddotenvx.sh(3ded752)
1.41.0
Added
- Add [directory] argument to precommit and prebuild (#572)
1.40.1
Changed
- Patch
ext scancommand (#570)
1.40.0
Added
- Smarter
ext precommitandext prebuild– catch duplicate KEYs in the same .env file where one is mistakenly left unencrypted (#567)
1.39.1
Added
- Add
versionto homebrew formula (#564)
1.39.0
Added
- Add
--convention flowoption todotenvx run(#551)
Changed
- Fix typos (#550)
1.38.5
Added
- 🐞 Add
config.d.tsfile to fix type error when loadingdotenvx/dotenvx/configwith dynamic import (#547)
1.38.4
Changed
- 🐞 Fix blank line disappearing after encrypting empty value (#542)
1.38.3
Changed
- 🐞 Fix self-referencing expansion when key exists already in
process.env(#536)
1.38.2
Added
- Add typescript types for
main.get.
1.38.1
Changed
- Support
encryptwhen mutliline contains windowsCRLF(\r\n) (#534)
Note: dotenvx will convert these \r\n newlines to \n. Our recommendation is to stop using CRLF - its origin is from typewriter days. Instead, set your editor or gitattributes to use LF.
1.38.0
Changed
- Command substitution failures no longer halt further processing of keys in a .env file (#533)
- A more helpful error is raised if a command substitution failure occurs (#533)
1.37.0
Added
- add
dotenvx rotatecommand 🎉 (#530)
also: our whitepaper is released as a draft.
1.36.0
Changed
--strictflag respects (doesn't throw) anything in--ignoreflag (#527)
1.35.0
Added
The addition of main.get facilitates what we term Decryption at Access, a concept explored in greater detail in our whitepaper.
1.34.0
Added
main.setmethod now writes to files (#517)
1.33.0
Added
- support ESM import convenience
import '@dotenvx/dotenvx/config'(#508)
1.32.1
Changed
- remove duplicated help messages (#504)
1.32.0
Added
- add encrypted check support for
ext prebuild(#501)
Changed
- modify
ext precommitto check git modified state as well as git staged state - useful for usingdotenvx ext precommitwithout the--installflag in automated scripts and ci. (#499)
Removed
- remove internal logger methods
errorvp, errorvpb, warnv, warnvp, warnvpb, successvp, successvpb, help2(#501)
1.31.3
Changed
- adjust wingetcreate to use powershell when parsing version
1.31.2
Changed
- use wingetcreate for releasing to WinGet (#498)
1.31.1
Changed
- 🐞 fix encryption of values containing explicit
\nnewlines (#495)
1.31.0
Added
1.30.1
Added
- support complex command substitution combining variable expansion (#490)
1.30.0
Added
- add
-fk(--env-keys-file) flag to customize the path to your.env.keysfile withrun, get, set, encrypt, decrypt, and keypair🎉 (#486)
This is great for monorepos. Maintain one .env.keys file across all your apps.
$ dotenvx encrypt -fk .env.keys -f apps/backend/.env
$ dotenvx encrypt -fk .env.keys -f apps/frontend/.env
$ tree -a .
├── .env.keys
└── apps
├── backend
│ └── .env
└── frontend
└── .env
$ dotenvx get -fk .env.keys -f apps/backend/.env
1.29.0
Added
- add
--ignoreflag to suppress specified errors. example:dotenvx run --ignore=MISSING_ENV_FILE(#485)
1.28.0
Changed
.env.keysfile is generated WITHOUT quotes going forward. This is to minimize friction around Docker gotchas to developers - old versions of Docker do not support--env-filecontaining quoted keys/values. (#480) (additional note)
1.27.0
Added
- add support for
\texpansion when double quoted. (e.g.TAB="hi\tfriend"becomeshi friend) (#479)
1.26.2
Changed
- build binaries with bytecode option (#477)
1.26.1
Added
- add typescript type definitions for
main.parsemethod (#475)
1.26.0
Added
- add
privateKeyoption tomain.parsemethod (#474)
1.25.2
Added
- for binaries add pre-build step using esbuild (#471)
Removed
- remove types for functions that were removed a while back (2aa660)
1.25.1
Changed
- improve helpful error messaging around decryption failures by specifying specific key and private key name (#463)
1.25.0
Added
- add
run --strictflag to exit with code1if any errors are encountered - like a missing.envfile or decryption failure (#460) - add
get --strictflag to exit with code1if any errors are encountered - like a missing.envfile or decryption failure (#461) - add
strictoption toconfig()to throw for any errors (#459)
Changed
- log
MISSING_ENV_FILEandDECRYPTION_FAILEDerrors to stderr (prior was stdout as a warning) (#459)
Removed
- remove
dotenvx.get()function fromlib/main.js. (parsealready historically exists for this purpose) (#461)
1.24.5
Changed
- 🐞 do not expand prior literal values (#458)
1.24.4
Changed
- do not expand command substitution (#456)
1.24.3
Changed
- 🐞 fix command substitution for more complex commands (#455)
1.24.2
Changed
- treat pre-existing expandable values as literal in
process.env(#450)
1.24.1
Changed
- bump
cross-spawnto prevent potential ReDoS CVE-2024-21538 (#449)
1.24.0
Added
- support progressive append/update (#445)
FOO=foo
FOO=${FOO}bar
# foobar
- support alternate value expansion (#445)
Changed
dotenvx.parsenow maps to dotenvx's internal parser. (prior it was mapping to dotenv's)
Removed
- removed
dotenvx.configDotenv(). usedotenvx.config()(#445)
1.23.0
Added
- deeper variable expansion support and protection against self-referencing variables 🛡️ (#439)
1.22.2
Changed
- more lenient handling of
--separator and better error messaging when flags are ambiguous (#438)
1.22.1
Changed
- 🐞 patch loading order issue with single quotes (#436)
1.22.0
Added
- add
--patternargument toext gitignore(dotenvx ext gitignore --pattern .env.keys) (#430)
Changed
- clarify next steps after first time encrypting (#430)
1.21.1
Changed
- for
--convention nextjsignore.env.localfor TEST environment (#425) - for
precommitredirect missingdotenvxcommand using POSIX compliant redirection (#424) - make parent
dotenvx helpcommand less noisy by removing[options]. rundotenvx COMMAND -hto list all available options like always (#429)
1.21.0
Changed
🎓 now if you choose to single quote, double quote, no quote, or backtick your value it will be respected - including for encrypted values. this more intuitively handles complex cases like escaped characters, literals, and json.
1.20.1
Changed
- update eciesjs (#421)
- remove default values for ts interface - no longer permitted by latest ts (#419)
1.20.0
Changed
- respect
process.env.DOTENV_PRIVATE_KEYand/orprocess.env.DOTENV_PUBLIC_KEYonset(#401) - respect
process.env.DOTENV_PRIVATE_KEYand/orprocess.env.DOTENV_PUBLIC_KEYonencrypt(#411) - respect
process.env.DOTENV_PRIVATE_KEYondecrypt(#412) - change
logger.helpto use brighter blue (#414)
Removed
- remove
main.decrypt,encrypt,set(#410)
1.19.3
Changed
- 🐞 fix decrypt re-encrypt of values containing backslashes (#406)
1.19.2
Changed
- forward additional signals like
SIGUSR2(#403)
1.19.1
Changed
- if
SIGTERMorSIGINTsent, don't bubble wrapped process error (#402)
1.19.0
Added
- support key glob filtering for
encryptanddecrypt. example:dotenvx encrypt -ek "NEXT_PUBLIC_*"(#397)
1.18.1
Added
- escape user inputted regex groupings like
$1or$2. (#396)
1.18.0
Added
setandencryptpreserve leading spaces (#395)
HELLO=world
Changed
- improve escape and quote handling for
set,encrypt, anddecrypt(#395) - 🐞 fix
encrypt, thendecrypt, thenencrypton a json value (#377)
Note: the underlying replace engine to support these changes now wraps your values in single quotes. the prior replace engine wrapped in double quotes.
So where your .env used to look like this with double quotes:
HELLO="encrypted:1234"
API_KEY="encrypted:5678"
It will now begin looking like this with single quotes:
HELLO='encrypted:1234'
API_KEY='encrypted:5678'
It's an aesthetic side effect only. Your values will continue to be decrypted and encrypted correctly.
1.17.0
Added
- add
--format=evaloption forget(#393)
1.16.1
Changed
- suppress stderr using
options.stdio(#391)
1.16.0
Changed
1.15.0
Added
- add
--format=shelloption forkeypair(#389)
1.14.2
Changed
- swap
process.stdout.writeforconsole.logto patch up npx edge case (#387)
1.14.1
Changed
- run precommit hook only on staged files (#380)
1.14.0
Added
- add
dotenvx keypaircommand for printing your public/private keypairs (#375)
1.13.3
Changed
- exit code 1 when
decryptfails in any way (#374)
1.13.2
Added
- expose
getColorandboldtolib/main.js(#369)
1.13.1
Added
- expose
loggerandsetLogLeveltolib/main.js-const = { logger, setLogLevel } = require('@dotenvx/dotenvx')(#368)
1.13.0
Changed
- move
lsto core commands (#367)
1.12.1
Changed
- return without quotations for
dotenvx get --format shell(#366)
1.12.0
Added
- add
dotenvx get --format shelloption (#363)
1.11.5
Changed
- revert
tinyexecforexeca- to support usage in bun
1.11.4
Changed
- bump
tinyexecand add postrelease-bunx check (#362)
1.11.3
Changed
- fallback to
process.env.TERMfor color depth where deno and bun do not support it (#360)
1.11.2
Added
- detect encoding when reading
.env*file onrun/get(#359)
1.11.1
Changed
- support encryption of
export KEYvariables and preserve#!shebangs(#357)
1.11.0
Added
- add
--exclude-env-file (-ef)toext ls(#356)
Changed
ext precommitignorestests/directory (and similar) (#356)
1.10.4
Changed
- fix
prodisplay in help command
1.10.3
Added
- ci: automate publishing to
winget(#354)
1.10.2
Changed
- default
configto empty[]array so thatDOTENV_KEY_${environment}looks up correctly (#352)
1.10.1
Changed
- check subfolders on
dotenvx ext precommithook (#350)
1.10.0
Removed
- remove
dotenvx ext vault, replace with dotenvx-ext-vault (install there to continue usingext vault) (#351)
1.9.1
Added
- warn if private key is missing or blank (#349)
1.9.0
Added
- add
--exclude-key(-ek) option todotenvx encryptanddotenvx decrypt(#344)
Changed
- preserve comments and spacing on first-time generation of .env.example file (#346)
Removed
- removed
winston- logger simplified to useconsole.loggoing forward (#347)
1.8.0
Added
Changed
- use
ansicolors overrgb- for wider terminal coverage (#340) - replace
chalkwithpicocolorsandcolor-name- cutting down on 5 dependencies (#335) - replace
execawithtinyexec- cutting down on 15 dependencies (#328) - optimize
Ls._filepaths(#317)
Removed
- remove
picocolorsandcolor-name- cutting down on 2 dependencies (#340) - remove
ext hubfrom extension list (you can still install it as an extension here) (#337)
1.7.0
Removed
1.6.5
Changed
- 🐞 patch
chompfor interpolation. strip ending newline (was stripping first found newline) (#322)
1.6.4
Changed
- fix
dotenvx help(command was missing)
1.6.3
Changed
- adjust
dotenvx proto be dynamic if dotenvx-pro is installed user's machine
1.6.2
Added
- add more detailed type definitions (#313)
1.6.1
Added
- add support for
.env1(.env*) file format. (private key expands toDOTENV_PRIVATE_KEY_DEVELOPMENT1) (#312)
1.6.0
Added
- add
dotenvx decryptcommand. works inversely todotenvx encrypt. same flags. (#294) - add
--stdoutoption todotenvx decrypt. example:dotenvx decrypt -f .env.production --stdout > somefile.txt(#298) - add
--stdoutoption todotenvx encrypt. example:dotenvx encrypt -f .env.production --stdout > somefile.txt(#298)
Changed
- smarter private key finder. if you rename your file to
secrets.txtit can still decrypt fromDOTENV_PRIVATE_KEYby seeking out the invert of theDOTENV_PUBLIC_KEYinsidesecrets.txt(#302)
Removed
- remove
dotenvx convert- still atdotenvx encrypt - remove
dotenvx vault- still atdotenvx ext vault
1.5.0
Added
- add help text for dashed values on
set. example:dotenvx set KEY -- "- + * ÷"(#293)
Changed
- replace
@inquirer/confirmandora(#285)
Removed
- remove
dotenvx ext hub, replace with dotenvx-ext-hub (install there to continue using hub) (#291)
1.4.0
Removed
- remove update notice. let users decide what version they want without nagging them to update (#288)
- remove
dotenvx hub. still available atdotenvx ext hub(#290)
1.3.2
Changed
- 🐞 remove risky
prepareandpostinstallscripts and replace withnpm run patchfor development and binary building (#286)
1.3.1
Changed
- 🐞 make
patch-packageonly run locally withprepare(#283)
1.3.0
Added
- encrypt specified keys with
--keyoption -dotenvx encrypt -k HELLO(#281)
1.2.0
Added
- handle nested
dotenvxinvocations -dotenvx run -- dotenvx run -- env(#279)
Changed
- replace
globwith faster approach (#278)
1.1.0
Added
- add TypeScript type definitions (#272)
1.0.1
Changed
- 🐞 fix expansion when preset on
process.envand/or with--overload(#271)
1.0.0
🎉 dotenvx has made it to 1.0.0. There are BREAKING CHANGES ⚠️ .
Added
- added
dotenvx set KEY value --plainto set plain text values - added
dotenvx ext🔌 as a location to place extensions likegititgnore,precommit,ls, and more. better than cluttering up core features likerun,get/set, andencrypt. - added
dotenvx pro🏆 command with coming soon and link to GitHub issue (if you wish to be notified of progress. will provide tooling/features for teams)
Changed
BREAKING ⚠️- turned on encryption by default for
dotenvx set(usedotenvx set KEY value --plainto set plain values) - renamed
dotenvx encrypttodotenvx ext vault encrypt(for managing.env.vaultfiles) - renamed
dotenvx converttodotenvx encrypt - moved
lstodotenvx ext ls - moved
genexampletodotenvx ext genexample - moved
gitignoretodotenvx ext gitignore - moved
prebuildtodotenvx ext prebuild - moved
precommittodotenvx ext precommit - moved
scantodotenvx ext scan - moved
hubtodotenvx ext hub - moved
vaulttodotenvx ext vault - moved
settingstodotenvx ext settings
- turned on encryption by default for
(for many of these moved commands, for example dotenvx genexample, still work in 1.0.0 but with a large deprecated notice - DEPRECATION NOTICE: [genexample] has moved to [dotenvx ext genexample]. Please change your muscle memory to dotenvx ext genexample, as these deprecated command paths will be removed in a later minor version. importantly dotenvx encrypt was not able to be preserved because as it is now in use for encrypted .env files rather than .env.vault files)
This is a BIG release that sets the tone for dotenvx's core offering and features while maintaining room for growth. Thank you everyone for your support and usage of dotenvx 🙏.
blog post: "From dotenv to dotenvx: Next Generation Config Management"
0.45.0
Changed
- Rename
dotenvx vault converttodotenvx vault migrate(#251) - Update
install.shregex version check to beshcompatible (not just bash)
0.44.6
Added
- Added
checksums.txtas part of each release
0.44.5
Changed
- Removed
.githubfolder from published binaries on npm (example: npm code) - Add help message to
install.sh
0.44.4
Changed
- Automated deployment of
install.shalong with sanity checks (#250)
0.44.3
Added
- Include
CHANGELOG.mdin npm release - Include
install.shin package release
0.44.2
Changed
- Fix license in
package.jsonto match project's license BSD-3.
0.44.1
Changed
- Respect decryption of zero length strings -
dotenvx set HELLO '' --encrypt(#236)
0.44.0
Added
- Added
options.debug,options.verbose,options.quiet, andoptions.logLevelto.config()(#233)
0.43.2
Changed
- Patch
replacewhen replacing double, single, or backticked quoted at anywhere in the.envfile. (#232)
0.43.1
Changed
- Improved
replacefunction regex - to handle more edge case scenarios with replacing KEY/values (#227)
0.43.0
Added
- Support
require('@dotenvx/dotenvx').config()forDOTENV_PRIVATE_KEYdecryption (#225)
0.42.0
Added
- Added
.env.vault deprecatedwarning when usingDOTENV_KEY. Provide instructions to convert to encrypted.envfiles. (#224)
0.41.0
Added
- Added
vault convertcommand to list convert instructions for converting.env.vaultto encrypted .env files (#222)
To convert your .env.vault file to encrypted .env file(s):
1. Run [dotenvx vault decrypt]
2. Run [ls -a .env*]
Lastly, convert each .env(.environment) file:
3. Run [dotenvx convert -f .env.production]
For example:
$ dotenvx convert -f .env
$ dotenvx convert -f .env.ci
$ dotenvx convert -f .env.production
Afterward:
Update production with your new DOTENV_PRIVATE_KEY_PRODUCTION located in .env.keys
Learn more at [https://dotenvx.com/docs/quickstart#add-encryption]
Changed
- Rename
encryptmetoconvert(#222)
0.40.1
Added
- Support encryption replacement of multiline values (#220)
0.40.0
Added
- Added
dotenvx encryptmecommand to convert an entire.envfile to an encrypted.envfile. (#213)
Changed
- Made
precommitsmart enough to check if a.env*file is encrypted or not. If fully encrypted, then allowprecommitcheck to pass (#211)
Removed
- Do not warn of missing files for conventions (too noisy) (#216)
0.39.0
Added
- Add
--conventionflag toget
Removed
- Removed help messages like 'in production' and 'in ci'. Too specific and could lead to confusion.
0.38.0
Changed
- ⚠️ DEPRECATION NOTICE: the following commands are being moved. Please, update any code and muscle memory you have related to these:
dotenvx encrypt=>dotenvx vault encryptdotenvx decrypt=>dotenvx vault decryptdotenvx status=>dotenvx vault status
- ⚠️ DEPRECATION NOTICE: the beta
hubcommands are being completely deprecated (they will be fully removed in upcoming 1.0.0 release). We will provide .env.keys tooling at a later time (replacing hub) but in the context of the new--encryptflag functionality below
Added
- Add encryption to your
.envfiles with a single command. Pass the--encryptflag. 🎉
$ dotenvx set HELLO World --encrypt
set HELLO with encryption (.env)
A
DOTENV_PUBLIC_KEY(encryption key) and aDOTENV_PRIVATE_KEY(decryption key) is generated using the same public-key cryptography as Bitcoin.
Further notes:
DOTENV_PUBLIC_KEYlives in the.envfile. You can safely share this with whomever you wish.DOTENV_PRIVATE_KEYlives in your.env.keysfile. Share this only with those you trust to decrypt your secrets.- If using encrypted
.envfiles like this it is safe to commit them to source code. This makes reviewing PRs that contain secrets much easier. - Tell your contributors to contribute a secret using the command
dotenvx set HELLO world --encrypt. - Set your
DOTENV_PRIVATE_KEYon your server to decrypt these values usingdotenvx run -- yourcommand - You can repeat all this per environment by modifying your set command to
dotenvx set HELLO production -f .env.production --encrypt(for example) - In time we will add better tooling for sharing the private keys living in
.env.keys, but until then safely share with team members you trust. - This mechanism should be particularly useful for open source projects that want to permit secrets contributions without handing out the decryption keys. Now anyone can contribute a secret and only you can decrypt it to see what was changed.
- This solution is brand new, but I intend it to be the future for
.envfiles. It has many benefits over.env.vaultfiles. We will be sunsetting the.env.vaultmechanism but its tooling will stay around indotenvxfor at least 1 year to come - underdotenvx vaultparent command. - Be patient as we update our documentation to prioritize this improved encryption format for
.envfiles.
0.37.1
- warn when running
dotenvx statusagainst any untracked (not in .env.vault) files (#196)
0.37.0
- add
--convention nextjsflag todotenvx run(#193) - improve
statuserror message when decrypt fails or no.env*files (#192)
0.36.1
- handle
SIGTERM(#191)
0.36.0
- add
dotenvx statuscommand (#186) - add
dotenvx decrypt [directory]argument option (#186) - add
dotenvx decrypt --environmentflag option (#186) - normalize windows
\paths (#186)
0.35.1
Changed
- exit code
1ifget KEYnot found/undefined (#185)
0.35.0
Added
- added
setcommand, and optionally pass--env-fileflag(s) tosetusage:dotenvx set HELLO World(#182)
0.34.0
Changed
- make
hub pushmore forgiving by permitting full filepath likehub push directory/.env.keys(#180) - add note on generated
.env.example(#181)
0.33.1
Changed
- patch injection around falsy values (#177)
0.33.0
Added
- add .env.vault support for
.env.something.something(useful for Next.js pattern of .env.development.local) (#174)
0.32.0
Changed
- quiet exit code 1 message (#173)
0.31.1
Changed
- improve error messages (#171)
0.31.0
Added
- add
hub logoutcommand (#170)
0.30.2
Changed
- small fixes for windows users related to
hub openandhub push(#169)
0.30.1
Changed
0.30.0
Added
dotenvx get --quietwill display the value no matter what (adds ablank0logger level) (#161)
Changed
- refactor
dotenvx getto userununder the hood
0.29.2
Changed
- fix broken
hub loginandhub open(#160)
0.29.1
Changed
- patch situation where
DOTENV_KEYis present and--env-fileflag is set. assume to still look for.env.vaultfile as first in line (#157)
0.29.0
Changed
- respect order for
--env-vault-file,--env-fileand--envflags (for example:dotenvx run --env "HELLO=one" --env-file=.envwill prioritize--envflag. Add--overloadhere to prioritize--env-fileor reverse the order.). you can now mix and match multiple flags in any complex order you wish and dotenvx will respect it. (#155)
0.28.0
Added
- add
dotenvx settingscommand to list your current settings. in the future we'll provide ways to modify these settings as dotenvx's functionality grows (#153)
0.27.2
Added
- add windows postrelease step to check that
dotenvx.exeis functional immediately after release (#141)
Changed
- replace
package-jsonwithundici(#146) - prune redundant packages (#148)
- return current version if remote version fails (#149)
- switch to our own update notice mechanism (eliminating multiple deps) (#151)
0.27.1
Added
- provide
.zipdownload option for windows executable (#140)
Removed
- remove
gotfrom top level deps (#139)
0.27.0
Changed
- move
update-notifierintolib/helpersfor more control overgotlib (#138) - move
clipboardyintolib/helpersfor more control and to support commonjs going forward (sindre has dropped support and many mature systems still require commonjs for their infra and have need of dotenvx). (#137)
0.26.0
Added
- add
hub pullcommand to pull a repo's.env.keysdown. (#129)
0.25.1
Changed
- 🐞 patch bug with evaluate commands. do not attempt to evaluate risky preset envs in
process.env. evaluate only what's set in a.env*file (#125)
0.25.0
Added
- expand
hub pushwith[directory]option. use for monorepos. for example:dotenvx hub push apps/backend(#121)
0.24.0
Added
- add command substitution. for example
DATABASE_URL="postgres://$(whoami)@localhost/my_database"(#113)
0.23.0
Added
- support personal environment variables. anything after the comment
# personal.dotenvx.comwill be considered personal and will not be encrypted to .env.vault (#110)
0.22.0
Added
require('@dotenvx/dotenvx').config()expands/interpolates variables. this matches the behavior ofrun. (note that this behavior differs from the originalrequire('dotenv').config()(#107)
0.21.0
Added
- expose
genexamplefunction onlib/main.jsfor export convenience (#102)
Changed
- rely on
whichnpm module to find system command path for user inputted command(s) (#105)
Removed
- remove
main.injectfunction (#102)
0.20.2
Added
- added support for
--envflag on the.env.vaultdecryption portion ofrun(#101)
0.20.1
Changed
- use system command path (#98)
0.20.0
Changed
- added
--envflag. for example,dotenvx --env="HELLO=World" -- yourcommand(#94)
0.19.1
Changed
- patched up the
precommitcommand (#91)
0.19.0
Added
- added
scancommand to scan for possible leaked secrets in your code (#90)
0.18.0
Added
- added
getcommand, optionally pass--env-fileflag(s) toget, optionally pass--overload, and optionally pass--pretty-print. usage:dotenvx get HELLO=>World(#89)
0.17.1
Changed
- expose
main.encryptandmain.lsfunctions
0.17.0
Added
- added
[directory]argument toencrypt. for example, in your nx repo from rootdotenvx encrypt apps/backendwill encrypt .env* files in that directory and manage the.env.keysand.env.vaultin that directory as well (#82)
0.16.1
Changed
- bumped
dotenvversion to fixencryptbug
0.16.0
Added
- added
lscommand to list all your.env*files (#80) - added
--env-fileoptionls(#82) - optionally specify
--env-vault-filepath to.env.vault(defaults to.env.vault) (#73)
0.15.4
Changed
- 🐞 patch
--overloadflag logic (#66)
0.15.3
Changed
- 🐞 fix undici readablestream error (#65)
0.15.2
Changed
0.15.1
Changed
- use improved dotenv expansion (#62)
0.15.0
Added
0.14.1
Changed
- patch esm issue. use update-notifier ^5.1.0
0.14.0
Added
- Added
genexamplecommand. Generate.env.examplefrom your.envfile. (#49) - couple security patches (#50, #51)
0.13.0
Added
- Added
decryptcommand. Decrypt.env.vaultto prospective.env*files..env.keysmust be present. (#48)
0.12.0
Added
- Append to
.gitignorewithgitignorecommand (also.dockerignore,.npmignore, and.vercelignoreif existing) (#47)
0.11.0
Removed
- no longer append to
*ignorefiles automatically. too invasive. will provide as separate cli command (#45)
0.10.6
Changed
- Improve error message when decryption fails (#40)
0.10.5
Changed
- Rename
predockerbuildcommand toprebuild(#36)
0.10.4
Added
- Add
predockerbuildcommand to prevent including.envfile in your docker builds (#35)
0.10.3
Changed
- If dotenvx is missing tell user how to install it from pre-commit (#34)
- Add help notice for ci (when .env file not present) (#33)
0.10.2
Changed
- Improve error message when custom
--env-filepassed (#32)
0.10.1
Changed
- Adjust
precommitverbosity and coloring - Add
--installflag to precommit - installs to.git/hooks/pre-commit(#31)
0.10.0
Added
- Added
dotenvx precommitcommand and instructions for git pre-commit hook (#30)
0.9.0
Changed
0.8.4
Changed
Load axios with a try/catch depending on context 🐞 (#24)
0.8.3
Changed
Patched helpers.guessEnvironment bug when filepath contained a . in the folder name. 🐞 (#23)
0.8.2
Changed
Change path to axios in attempt for pkg to build correctly.
0.8.1
Added
Add axios (missing) to package-lock.json
0.8.0
Added
0.7.4
Changed
Create binaries with root:root defaults. (#21)
0.7.3
Added
Tell user about undefined subprocess with additional debug logs (#19)
0.7.2
Added
debug other signals send to execa process (#18)
0.7.1
Changed
Fix missed package.json#version
0.7.0
Added
handle SIGINT (#17)
0.6.13
write to /latest only for releases repo (#15)
0.6.12
Changed
do not package README alongside binary. adds noise to a user's machine. keep their machine shiny. (#14)
0.6.11
Added
tell user what to do next (#13)
0.6.10
Patched
do not log when error code is 0 (#12)
0.6.9
Added
tell user when no changes to re-encrypt (#11)
0.6.8
Added
added help text when user's command fails. include link to report issue (#10)
0.6.7
Added
added next step help message when running dotenvx run with no argument (#9)
0.6.6
Added
help includes a command example as well as a full working 'try it out' example (#8)
0.6.5
Changed
made the info messaging more succinct (#7)
0.6.4
Added
added tagged images to hub.docker.com/u/dotenv
0.6.3
Changed
fixed the .env.keys file comment. spacing was off. (#6)
0.6.2
Added
added help text to encrypt. (#5)
0.6.1
Changed
removed the pad on the logging level. didn't look good when running in default INFO mode. (#4)
0.6.0
Added
prevent committing a .env* file to code. append to .gitignore, .dockerignore, .vercelignore, and .npmignore 🗂️ (#3)
0.5.0
Added
run support for .env.vault files 🔑 (#2)
0.4.0
Added
encrypt 🔐 (#1)
0.3.9 and prior
Please see commit history.