@dotenvx/dotenvx 1.51.3 → 1.51.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -4
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/cli/actions/encrypt.js +3 -2
- package/src/cli/actions/rotate.js +3 -2
- package/src/cli/actions/set.js +3 -2
- package/src/lib/helpers/executeDynamic.js +7 -33
- package/src/lib/main.js +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
[Unreleased](https://github.com/dotenvx/dotenvx/compare/v1.51.
|
|
5
|
+
[Unreleased](https://github.com/dotenvx/dotenvx/compare/v1.51.4...main)
|
|
6
|
+
|
|
7
|
+
## [1.51.4](https://github.com/dotenvx/dotenvx/compare/v1.51.3...v1.51.4) (2025-12-29)
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
* Change description of `dotenvx-ops` to better reflect its tooling as operational primitives on top of dotenvx for production use cases. ([#721](https://github.com/dotenvx/dotenvx/pull/723))
|
|
6
12
|
|
|
7
13
|
## [1.51.3](https://github.com/dotenvx/dotenvx/compare/v1.51.2...v1.51.3) (2025-12-29)
|
|
8
14
|
|
|
@@ -47,7 +53,7 @@ All notable changes to this project will be documented in this file. See [standa
|
|
|
47
53
|
```
|
|
48
54
|
_______________________________________________________________________
|
|
49
55
|
| |
|
|
50
|
-
|
|
|
56
|
+
| dotenvx-ops: production grade dotenvx–with operational primitives |
|
|
51
57
|
| |
|
|
52
58
|
| ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓███████▓▒░ |
|
|
53
59
|
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
|
|
@@ -57,8 +63,6 @@ All notable changes to this project will be documented in this file. See [standa
|
|
|
57
63
|
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
|
|
58
64
|
| ░▒▓██████▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ |
|
|
59
65
|
| |
|
|
60
|
-
| Use dotenvx across your team, infrastructure, agents, and more. |
|
|
61
|
-
| |
|
|
62
66
|
| Learn more at https://dotenvx.com/ops |
|
|
63
67
|
|_______________________________________________________________________|
|
|
64
68
|
```
|
package/README.md
CHANGED
|
@@ -2590,7 +2590,7 @@ This is known as *Decryption at Access* and is written about in [the whitepaper]
|
|
|
2590
2590
|
|
|
2591
2591
|
[](https://dotenvx.com/ops)
|
|
2592
2592
|
|
|
2593
|
-
> [Dotenvx Ops](https://dotenvx.com/ops) is
|
|
2593
|
+
> [Dotenvx Ops](https://dotenvx.com/ops) is production grade [dotenvx](https://github.com/dotenvx/dotenvx)–with operational primitives.
|
|
2594
2594
|
|
|
2595
2595
|
*Use dotenvx across your team, infrastructure, agents, and more.*
|
|
2596
2596
|
|
package/package.json
CHANGED
|
@@ -62,12 +62,13 @@ function encrypt () {
|
|
|
62
62
|
for (const processedEnv of processedEnvs) {
|
|
63
63
|
if (processedEnv.privateKeyAdded) {
|
|
64
64
|
logger.success(`✔ key added to .env.keys (${processedEnv.privateKeyName})`)
|
|
65
|
+
logger.help('⮕ optional: [dotenvx ops backup] to securely backup private key')
|
|
65
66
|
|
|
66
67
|
if (!isIgnoringDotenvKeys()) {
|
|
67
|
-
logger.help('⮕ next run [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
68
|
+
logger.help('⮕ next run: [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
logger.help(`⮕ next run [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx run -- yourcommand] to test decryption locally`)
|
|
71
|
+
logger.help(`⮕ next run: [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx run -- yourcommand] to test decryption locally`)
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
} catch (error) {
|
|
@@ -65,12 +65,13 @@ function rotate () {
|
|
|
65
65
|
for (const processedEnv of processedEnvs) {
|
|
66
66
|
if (processedEnv.privateKeyAdded) {
|
|
67
67
|
logger.success(`✔ key added to .env.keys (${processedEnv.privateKeyName})`)
|
|
68
|
+
logger.help('⮕ optional: [dotenvx ops backup] to securely backup private key')
|
|
68
69
|
|
|
69
70
|
if (!isIgnoringDotenvKeys()) {
|
|
70
|
-
logger.help('⮕ next run [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
71
|
+
logger.help('⮕ next run: [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
logger.help(`⮕ next run [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get] to test decryption locally`)
|
|
74
|
+
logger.help(`⮕ next run: [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get] to test decryption locally`)
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
} catch (error) {
|
package/src/cli/actions/set.js
CHANGED
|
@@ -67,12 +67,13 @@ function set (key, value) {
|
|
|
67
67
|
for (const processedEnv of processedEnvs) {
|
|
68
68
|
if (processedEnv.privateKeyAdded) {
|
|
69
69
|
logger.success(`✔ key added to ${processedEnv.envKeysFilepath} (${processedEnv.privateKeyName})`)
|
|
70
|
+
logger.help('⮕ optional: [dotenvx ops backup] to securely backup private key')
|
|
70
71
|
|
|
71
72
|
if (!isIgnoringDotenvKeys()) {
|
|
72
|
-
logger.help('⮕ next run [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
73
|
+
logger.help('⮕ next run: [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
logger.help(`⮕ next run [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get ${key}] to test decryption locally`)
|
|
76
|
+
logger.help(`⮕ next run: [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get ${key}] to test decryption locally`)
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
} catch (error) {
|
|
@@ -22,14 +22,14 @@ function executeDynamic (program, command, rawArgs) {
|
|
|
22
22
|
|
|
23
23
|
const result = childProcess.spawnSync(`dotenvx-${command}`, forwardedArgs, { stdio: 'inherit', env })
|
|
24
24
|
if (result.error) {
|
|
25
|
-
if (command === '
|
|
26
|
-
logger.warn(`[INSTALLATION_NEEDED] install dotenvx-${command} to use [dotenvx
|
|
27
|
-
logger.warn('[DEPRECATION NOTICE] dotenvx-
|
|
28
|
-
logger.help('? see installation instructions [https://
|
|
25
|
+
if (command === 'radar') {
|
|
26
|
+
logger.warn(`[INSTALLATION_NEEDED] install dotenvx-${command} to use [dotenvx ${command}] 📡`)
|
|
27
|
+
logger.warn('[DEPRECATION NOTICE] dotenvx-radar to be sunsetted soon (2026) and its featureset to be rolled into dotenvx-ops')
|
|
28
|
+
logger.help('? see installation instructions [https://dotenvx.com/radar]')
|
|
29
29
|
} else if (command === 'ops') {
|
|
30
30
|
const ops = ` _______________________________________________________________________
|
|
31
31
|
| |
|
|
32
|
-
|
|
|
32
|
+
| dotenvx-ops: production grade dotenvx–with operational primitives |
|
|
33
33
|
| |
|
|
34
34
|
| ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓███████▓▒░ |
|
|
35
35
|
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
|
|
@@ -39,8 +39,6 @@ function executeDynamic (program, command, rawArgs) {
|
|
|
39
39
|
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
|
|
40
40
|
| ░▒▓██████▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ |
|
|
41
41
|
| |
|
|
42
|
-
| Use dotenvx across your team, infrastructure, agents, and more. |
|
|
43
|
-
| |
|
|
44
42
|
| Learn more at https://dotenvx.com/ops |
|
|
45
43
|
| |
|
|
46
44
|
| --------------------------------------------------------------------- |
|
|
@@ -50,32 +48,8 @@ function executeDynamic (program, command, rawArgs) {
|
|
|
50
48
|
console.log(ops)
|
|
51
49
|
console.log('')
|
|
52
50
|
logger.warn(`[INSTALLATION_NEEDED] install dotenvx-${command} to use [dotenvx ${command}] 🏰`)
|
|
53
|
-
logger.help('
|
|
54
|
-
|
|
55
|
-
const radar = ` _______________________________________________________________________
|
|
56
|
-
| |
|
|
57
|
-
| Dotenvx Radar: Env Observability |
|
|
58
|
-
| |
|
|
59
|
-
| ░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ |
|
|
60
|
-
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
|
|
61
|
-
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
|
|
62
|
-
| ░▒▓███████▓▒░░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░▒▓███████▓▒░ |
|
|
63
|
-
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
|
|
64
|
-
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
|
|
65
|
-
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
|
|
66
|
-
| |
|
|
67
|
-
| Observe, version, and back up your environment variables at runtime. |
|
|
68
|
-
| |
|
|
69
|
-
| Purchase lifetime access at https://dotenvx.com/radar |
|
|
70
|
-
| |
|
|
71
|
-
| --------------------------------------------------------------------- |
|
|
72
|
-
| - thank you for using dotenvx! - @motdotla |
|
|
73
|
-
|_______________________________________________________________________|`
|
|
74
|
-
|
|
75
|
-
console.log(radar)
|
|
76
|
-
console.log('')
|
|
77
|
-
logger.warn(`[INSTALLATION_NEEDED] install dotenvx-${command} to use [dotenvx ${command}] 📡`)
|
|
78
|
-
logger.help('? see installation instructions [https://dotenvx.com/radar]')
|
|
51
|
+
logger.help('⮕ next run: [curl -sfS https://dotenvx.sh/ops | sh]')
|
|
52
|
+
logger.help('⮕ see more: [https://dotenvx.com/ops]')
|
|
79
53
|
} else {
|
|
80
54
|
logger.info(`error: unknown command '${command}'`)
|
|
81
55
|
}
|
package/src/lib/main.js
CHANGED
|
@@ -235,12 +235,13 @@ const set = function (key, value, options = {}) {
|
|
|
235
235
|
for (const processedEnv of processedEnvs) {
|
|
236
236
|
if (processedEnv.privateKeyAdded) {
|
|
237
237
|
logger.success(`✔ key added to ${processedEnv.envKeysFilepath} (${processedEnv.privateKeyName})`)
|
|
238
|
+
logger.help('⮕ optional: [dotenvx ops backup] to securely backup private key')
|
|
238
239
|
|
|
239
240
|
if (!isIgnoringDotenvKeys()) {
|
|
240
|
-
logger.help('⮕ next run [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
241
|
+
logger.help('⮕ next run: [dotenvx ext gitignore --pattern .env.keys] to gitignore .env.keys')
|
|
241
242
|
}
|
|
242
243
|
|
|
243
|
-
logger.help(`⮕ next run [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get ${key}] to test decryption locally`)
|
|
244
|
+
logger.help(`⮕ next run: [${processedEnv.privateKeyName}='${processedEnv.privateKey}' dotenvx get ${key}] to test decryption locally`)
|
|
244
245
|
}
|
|
245
246
|
}
|
|
246
247
|
|