@dotenvx/dotenvx 1.52.0 → 1.53.0

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 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.52.0...main)
5
+ [Unreleased](https://github.com/dotenvx/dotenvx/compare/v1.53.0...main)
6
+
7
+ ## [1.53.0](https://github.com/dotenvx/dotenvx/compare/v1.52.0...v1.53.0) (2026-03-05)
8
+
9
+ ### Removed
10
+
11
+ * Remove `radar`. It has been a year since replaced by `ops`. ([#743](https://github.com/dotenvx/dotenvx/pull/743))
6
12
 
7
13
  ## [1.52.0](https://github.com/dotenvx/dotenvx/compare/v1.51.4...v1.52.0) (2026-01-22)
8
14
 
package/README.md CHANGED
@@ -2597,6 +2597,39 @@ This is known as *Decryption at Access* and is written about in [the whitepaper]
2597
2597
 
2598
2598
   
2599
2599
 
2600
+ ## AS2 🔐
2601
+
2602
+ <a href="https://dotenvx.com/as2">
2603
+ <img src="https://dotenvx.com/assets/img/as2/9.jpg" alt="dotenvx as2" height="400" align="right">
2604
+ </a>
2605
+
2606
+ *agentic secret storage*.
2607
+
2608
+ > Secrets designed for agents. No logins. No consoles. Pure cryptography.
2609
+
2610
+ ### Quickstart
2611
+
2612
+ Install [`vestauth`](https://github.com/vestauth/vestauth) and initialize your agent. (AS2 uses [vestauth](https://vestauth.com) to authenticate agents.)
2613
+
2614
+ ```sh
2615
+ npm i -g vestauth
2616
+ vestauth agent init
2617
+ ```
2618
+
2619
+ Your agent can `set` secrets.
2620
+
2621
+ ```
2622
+ vestauth agent curl -X POST https://as2.dotenvx.com/set '{"KEY": "value"}'
2623
+ ```
2624
+
2625
+ Your agent can `get` secrets.
2626
+
2627
+ ```
2628
+ vestauth agent curl https://as2.dotenvx.com/get?key=KEY
2629
+ ```
2630
+
2631
+ &nbsp;
2632
+
2600
2633
  ## Ops 🏰
2601
2634
 
2602
2635
  [![dotenvx-ops](https://dotenvx.com/dotenvx-ops-banner.png?v=2)](https://dotenvx.com/ops)
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.52.0",
2
+ "version": "1.53.0",
3
3
  "name": "@dotenvx/dotenvx",
4
4
  "description": "a secure dotenv–from the creator of `dotenv`",
5
5
  "author": "@motdotla",
@@ -3,7 +3,6 @@ const { logger } = require('./../../shared/logger')
3
3
 
4
4
  const executeCommand = require('./../../lib/helpers/executeCommand')
5
5
  const Run = require('./../../lib/services/run')
6
- const Radar = require('./../../lib/services/radar')
7
6
  const Ops = require('./../../lib/services/ops')
8
7
 
9
8
  const conventions = require('./../../lib/helpers/conventions')
@@ -55,7 +54,6 @@ async function run () {
55
54
  } = new Run(envs, options.overload, process.env.DOTENV_KEY, process.env, options.envKeysFile, opsOn).run()
56
55
 
57
56
  if (opsOn) {
58
- try { new Radar().observe({ beforeEnv, processedEnvs, afterEnv }) } catch {}
59
57
  try { new Ops().observe({ beforeEnv, processedEnvs, afterEnv }) } catch {}
60
58
  }
61
59
 
@@ -22,11 +22,7 @@ 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 === '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
- } else if (command === 'ops') {
25
+ if (command === 'ops') {
30
26
  const ops = ` _______________________________________________________________________
31
27
  | |
32
28
  | dotenvx-ops: production grade dotenvx–with operational primitives |
package/src/lib/main.js CHANGED
@@ -12,7 +12,6 @@ const Sets = require('./services/sets')
12
12
  const Get = require('./services/get')
13
13
  const Keypair = require('./services/keypair')
14
14
  const Genexample = require('./services/genexample')
15
- const Radar = require('./services/radar')
16
15
  const Ops = require('./services/ops')
17
16
 
18
17
  // helpers
@@ -67,7 +66,6 @@ const config = function (options = {}) {
67
66
  } = new Run(envs, overload, DOTENV_KEY, processEnv, envKeysFile, opsOn).run()
68
67
 
69
68
  if (opsOn) {
70
- try { new Radar().observe({ beforeEnv, processedEnvs, afterEnv }) } catch {}
71
69
  try { new Ops().observe({ beforeEnv, processedEnvs, afterEnv }) } catch {}
72
70
  }
73
71
 
@@ -340,7 +338,7 @@ module.exports = {
340
338
  ls,
341
339
  keypair,
342
340
  genexample,
343
- // expose for libs depending on @dotenvx/dotenvx - like dotenvx-radar
341
+ // expose for libs depending on @dotenvx/dotenvx - like dotenvx-ops
344
342
  setLogLevel,
345
343
  logger,
346
344
  getColor,
@@ -1,81 +0,0 @@
1
- const path = require('path')
2
- const childProcess = require('child_process')
3
-
4
- const { logger } = require('./../../shared/logger')
5
-
6
- class Radar {
7
- constructor () {
8
- this.radarLib = null
9
-
10
- // check npm lib
11
- try {
12
- this.radarLib = this._radarNpm()
13
- logger.warn('[DEPRECATION NOTICE] dotenvx-radar is renamed dotenv-ops. [See https://dotenvx.com/docs/ops]')
14
- logger.successv(`📡 radar: ${this.radarLib.status}`)
15
- } catch (e) {
16
- // check binary cli
17
- try {
18
- this.radarLib = this._radarCli()
19
- logger.warn('[DEPRECATION NOTICE] dotenvx-radar is renamed dotenv-ops. [See https://dotenvx.com/docs/ops]')
20
- logger.successv(`📡 radar: ${this.radarLib.status}`)
21
- } catch (_e2) {
22
- // noop
23
- }
24
- // noop
25
- }
26
- }
27
-
28
- observe (payload) {
29
- if (this.radarLib && this.radarLib.status !== 'off') {
30
- const encoded = this.encode(payload)
31
- this.radarLib.observe(encoded)
32
- }
33
- }
34
-
35
- encode (payload) {
36
- return Buffer.from(JSON.stringify(payload)).toString('base64')
37
- }
38
-
39
- _radarNpm () {
40
- const fallbackBin = path.resolve(process.cwd(), 'node_modules/.bin/dotenvx-radar')
41
- const status = childProcess.execSync(`${fallbackBin} status`, { stdio: ['pipe', 'pipe', 'ignore'] })
42
-
43
- return {
44
- status: status.toString().trim(),
45
- observe: (encoded) => {
46
- try {
47
- const subprocess = childProcess.spawn(fallbackBin, ['observe', encoded], {
48
- stdio: 'ignore',
49
- detached: true
50
- })
51
-
52
- subprocess.unref() // let it run independently
53
- } catch (e) {
54
- // noop
55
- }
56
- }
57
- }
58
- }
59
-
60
- _radarCli () {
61
- const status = childProcess.execSync('dotenvx-radar status', { stdio: ['pipe', 'pipe', 'ignore'] })
62
-
63
- return {
64
- status: status.toString().trim(),
65
- observe: (encoded) => {
66
- try {
67
- const subprocess = childProcess.spawn('dotenvx-radar', ['observe', encoded], {
68
- stdio: 'ignore',
69
- detached: true
70
- })
71
-
72
- subprocess.unref() // let it run independently
73
- } catch (e) {
74
- // noop
75
- }
76
- }
77
- }
78
- }
79
- }
80
-
81
- module.exports = Radar