envhub-cli 0.3.1 → 0.4.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/LICENSE +21 -0
- package/README.md +96 -34
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/cat.d.ts +5 -1
- package/dist/commands/cat.d.ts.map +1 -1
- package/dist/commands/cat.js +27 -6
- package/dist/commands/cat.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +5 -2
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/doctor.d.ts +39 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +946 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +89 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts +5 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +13 -3
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/pull.d.ts +6 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +75 -12
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +111 -33
- package/dist/commands/push.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +7 -2
- package/dist/config/config.js.map +1 -1
- package/dist/config/config.schema.d.ts.map +1 -1
- package/dist/config/config.schema.js +6 -0
- package/dist/config/config.schema.js.map +1 -1
- package/dist/utils/diff.d.ts +9 -1
- package/dist/utils/diff.d.ts.map +1 -1
- package/dist/utils/diff.js +22 -8
- package/dist/utils/diff.js.map +1 -1
- package/dist/utils/env-parser.d.ts +9 -1
- package/dist/utils/env-parser.d.ts.map +1 -1
- package/dist/utils/env-parser.js +35 -4
- package/dist/utils/env-parser.js.map +1 -1
- package/dist/utils/envhub-header.d.ts +4 -0
- package/dist/utils/envhub-header.d.ts.map +1 -1
- package/dist/utils/envhub-header.js +18 -0
- package/dist/utils/envhub-header.js.map +1 -1
- package/dist/utils/logger.d.ts +44 -39
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +172 -46
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pull-dry-run-ui.d.ts +11 -0
- package/dist/utils/pull-dry-run-ui.d.ts.map +1 -0
- package/dist/utils/pull-dry-run-ui.js +157 -0
- package/dist/utils/pull-dry-run-ui.js.map +1 -0
- package/dist/utils/push-preview-ui.d.ts +10 -0
- package/dist/utils/push-preview-ui.d.ts.map +1 -0
- package/dist/utils/push-preview-ui.js +134 -0
- package/dist/utils/push-preview-ui.js.map +1 -0
- package/package.json +4 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kemal Can Yaprak
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,56 +1,106 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./docs/assets/envhub-banner.svg" alt="ENVHUB CLI banner" width="100%">
|
|
3
|
+
<br />
|
|
4
|
+
<br />
|
|
5
|
+
<p>
|
|
6
|
+
<a href="https://www.npmjs.com/package/envhub-cli"><img src="https://img.shields.io/npm/v/envhub-cli?style=for-the-badge" alt="npm version"></a>
|
|
7
|
+
<a href="https://github.com/caanyp24/envhub-cli"><img src="https://img.shields.io/github/license/caanyp24/envhub-cli?style=for-the-badge" alt="license"></a>
|
|
8
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-3C873A?style=for-the-badge" alt="node version">
|
|
9
|
+
</p>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
`envhub` is a developer-first CLI to push and pull environment files through AWS Secrets Manager, Azure Key Vault, or GCP Secret Manager with safer team collaboration and built-in versioning.
|
|
13
|
+
|
|
14
|
+
## Why ENVHUB
|
|
15
|
+
|
|
16
|
+
- Stop sharing secrets in Slack, Teams, or email
|
|
17
|
+
- Sync `.env` files with simple `push` and `pull` commands
|
|
18
|
+
- Reduce accidental overwrites with version tracking
|
|
19
|
+
- Set up projects fast with an interactive `init` wizard
|
|
20
|
+
- Keep full control by using your existing cloud provider
|
|
11
21
|
|
|
12
22
|
## Table of Contents
|
|
13
23
|
|
|
14
|
-
|
|
24
|
+
- [Quick Start](#quick-start)
|
|
25
|
+
- [Command Overview](#command-overview)
|
|
26
|
+
- [Documentation](#documentation)
|
|
27
|
+
- [Supported Providers](#supported-providers)
|
|
28
|
+
- [Requirements](#requirements)
|
|
29
|
+
- [License](#license)
|
|
15
30
|
|
|
16
|
-
|
|
17
|
-
2. [Setup (envhub init)](https://github.com/caanyp24/envhub-cli/blob/main/docs/getting-started/setup.md)
|
|
18
|
-
3. [Your First Secret](https://github.com/caanyp24/envhub-cli/blob/main/docs/getting-started/first-secret.md)
|
|
19
|
-
4. [Version Control](https://github.com/caanyp24/envhub-cli/blob/main/docs/getting-started/version-control.md)
|
|
31
|
+
## Quick Start
|
|
20
32
|
|
|
21
|
-
###
|
|
33
|
+
### 1. Install
|
|
22
34
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| [pull](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/pull.md) | Pull the latest .env file from the cloud |
|
|
27
|
-
| [cat](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/cat.md) | Display the contents of a secret |
|
|
28
|
-
| [list](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/list.md) | List all managed secrets |
|
|
29
|
-
| [delete](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/delete.md) | Delete a secret |
|
|
30
|
-
| [grant](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/grant.md) | Grant a user access to a secret (AWS only) |
|
|
31
|
-
| [revoke](https://github.com/caanyp24/envhub-cli/blob/main/docs/commands/revoke.md) | Revoke a user's access to a secret (AWS only) |
|
|
35
|
+
```bash
|
|
36
|
+
npm install --save-dev envhub-cli
|
|
37
|
+
```
|
|
32
38
|
|
|
33
|
-
|
|
39
|
+
Or install globally:
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
-
|
|
41
|
+
```bash
|
|
42
|
+
npm install -g envhub-cli
|
|
43
|
+
```
|
|
37
44
|
|
|
38
|
-
|
|
45
|
+
### 2. Initialize project
|
|
39
46
|
|
|
40
47
|
```bash
|
|
41
|
-
# 1. Set up your project
|
|
42
48
|
npx envhub init
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 3. Push your current environment
|
|
43
52
|
|
|
44
|
-
|
|
53
|
+
```bash
|
|
45
54
|
npx envhub push my-app-dev ./.env -m "Initial setup"
|
|
55
|
+
```
|
|
46
56
|
|
|
47
|
-
|
|
57
|
+
### 4. Teammate pulls the same env
|
|
58
|
+
|
|
59
|
+
```bash
|
|
48
60
|
npx envhub pull my-app-dev ./.env
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Command Overview
|
|
49
64
|
|
|
50
|
-
|
|
51
|
-
|
|
65
|
+
| Command | What it does |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| [`init`](./docs/getting-started/setup.md) | Interactive setup for provider + project config |
|
|
68
|
+
| [`push`](./docs/commands/push.md) | Upload local `.env` to your cloud secret store |
|
|
69
|
+
| [`pull`](./docs/commands/pull.md) | Download latest secret and write local `.env` |
|
|
70
|
+
| [`cat`](./docs/commands/cat.md) | Inspect a secret’s content |
|
|
71
|
+
| [`list`](./docs/commands/list.md) | See all envhub-managed secrets |
|
|
72
|
+
| [`delete`](./docs/commands/delete.md) | Remove a secret |
|
|
73
|
+
| [`grant`](./docs/commands/grant.md) | Grant user access (AWS only) |
|
|
74
|
+
| [`revoke`](./docs/commands/revoke.md) | Revoke user access (AWS only) |
|
|
75
|
+
| [`doctor`](./docs/commands/doctor.md) | Validate setup and provider access |
|
|
76
|
+
|
|
77
|
+
## Common Workflow
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Initialize once per project
|
|
81
|
+
npx envhub init
|
|
82
|
+
|
|
83
|
+
# Push local changes
|
|
84
|
+
npx envhub push my-app-dev ./.env -m "Updated API keys"
|
|
85
|
+
|
|
86
|
+
# Teammates pull the latest config
|
|
87
|
+
npx envhub pull my-app-dev ./.env
|
|
52
88
|
```
|
|
53
89
|
|
|
90
|
+
## Documentation
|
|
91
|
+
|
|
92
|
+
### Getting Started
|
|
93
|
+
|
|
94
|
+
1. [Installation](./docs/getting-started/installation.md)
|
|
95
|
+
2. [Setup (`envhub init`)](./docs/getting-started/setup.md)
|
|
96
|
+
3. [First Secret](./docs/getting-started/first-secret.md)
|
|
97
|
+
4. [Version Control](./docs/getting-started/version-control.md)
|
|
98
|
+
|
|
99
|
+
### Architecture
|
|
100
|
+
|
|
101
|
+
- [Configuration (`.envhubrc.json`)](./docs/architecture/configuration.md)
|
|
102
|
+
- [Provider Architecture](./docs/architecture/providers.md)
|
|
103
|
+
|
|
54
104
|
## Supported Providers
|
|
55
105
|
|
|
56
106
|
| Provider | Status |
|
|
@@ -58,3 +108,15 @@ npx envhub grant my-app-dev jane.doe
|
|
|
58
108
|
| AWS Secrets Manager | Available |
|
|
59
109
|
| Azure Key Vault | Available |
|
|
60
110
|
| GCP Secret Manager | Available |
|
|
111
|
+
|
|
112
|
+
## Requirements
|
|
113
|
+
|
|
114
|
+
- Node.js >= 18
|
|
115
|
+
- One configured provider account/CLI:
|
|
116
|
+
- AWS CLI for AWS Secrets Manager
|
|
117
|
+
- Azure CLI for Azure Key Vault
|
|
118
|
+
- Google Cloud CLI for GCP Secret Manager
|
|
119
|
+
|
|
120
|
+
## License
|
|
121
|
+
|
|
122
|
+
MIT
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAgHvC"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ import { listCommand } from "./commands/list.js";
|
|
|
8
8
|
import { deleteCommand } from "./commands/delete.js";
|
|
9
9
|
import { grantCommand } from "./commands/grant.js";
|
|
10
10
|
import { revokeCommand } from "./commands/revoke.js";
|
|
11
|
+
import { doctorCommand } from "./commands/doctor.js";
|
|
11
12
|
const require = createRequire(import.meta.url);
|
|
12
13
|
const pkg = require("../package.json");
|
|
13
14
|
/**
|
|
@@ -43,24 +44,28 @@ export function createProgram() {
|
|
|
43
44
|
.description("Pull the latest .env file from the cloud provider")
|
|
44
45
|
.argument("<name>", "Name of the secret to pull")
|
|
45
46
|
.argument("<file>", "Path to write the .env file to")
|
|
46
|
-
.
|
|
47
|
-
|
|
47
|
+
.option("--dry-run", "Show the pull diff without writing the local file", false)
|
|
48
|
+
.option("--backup", "Create <file>.bak before overwriting the local file", false)
|
|
49
|
+
.action(async (name, file, options) => {
|
|
50
|
+
await pullCommand(name, file, options);
|
|
48
51
|
});
|
|
49
52
|
// ── cat ─────────────────────────────────────────────────────────
|
|
50
53
|
program
|
|
51
54
|
.command("cat")
|
|
52
55
|
.description("Display the contents of a secret")
|
|
53
56
|
.argument("<name>", "Name of the secret to display")
|
|
54
|
-
.
|
|
55
|
-
|
|
57
|
+
.option("--masked", "Mask secret values in output", false)
|
|
58
|
+
.action(async (name, options) => {
|
|
59
|
+
await catCommand(name, options);
|
|
56
60
|
});
|
|
57
61
|
// ── list ────────────────────────────────────────────────────────
|
|
58
62
|
program
|
|
59
63
|
.command("list")
|
|
60
64
|
.alias("ls")
|
|
61
65
|
.description("List all secrets managed by envhub")
|
|
62
|
-
.
|
|
63
|
-
|
|
66
|
+
.option("--json", "Output secrets as JSON", false)
|
|
67
|
+
.action(async (options) => {
|
|
68
|
+
await listCommand(options);
|
|
64
69
|
});
|
|
65
70
|
// ── delete ──────────────────────────────────────────────────────
|
|
66
71
|
program
|
|
@@ -90,6 +95,14 @@ export function createProgram() {
|
|
|
90
95
|
.action(async (name, user) => {
|
|
91
96
|
await revokeCommand(name, user);
|
|
92
97
|
});
|
|
98
|
+
// ── doctor ──────────────────────────────────────────────────────
|
|
99
|
+
program
|
|
100
|
+
.command("doctor")
|
|
101
|
+
.description("Run health checks for envhub configuration and provider access")
|
|
102
|
+
.option("--json", "Output checks as JSON for CI parsing", false)
|
|
103
|
+
.action(async (options) => {
|
|
104
|
+
await doctorCommand(options);
|
|
105
|
+
});
|
|
93
106
|
return program;
|
|
94
107
|
}
|
|
95
108
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CACV,qEAAqE,CACtE;SACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExB,mEAAmE;IAEnE,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEL,mEAAmE;IAEnE,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8CAA8C,CAAC;SAC3D,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;SACzC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SAC3C,MAAM,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;SACtE,MAAM,CAAC,aAAa,EAAE,kCAAkC,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,mEAAmE;IAEnE,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mDAAmD,CAAC;SAChE,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAChD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/cat.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
interface CatCommandOptions {
|
|
2
|
+
masked?: boolean;
|
|
3
|
+
}
|
|
1
4
|
/**
|
|
2
5
|
* The `envhub cat` command.
|
|
3
6
|
* Outputs the contents of a secret without writing to disk.
|
|
4
7
|
*/
|
|
5
|
-
export declare function catCommand(secretName: string): Promise<void>;
|
|
8
|
+
export declare function catCommand(secretName: string, options?: CatCommandOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
6
10
|
//# sourceMappingURL=cat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat.d.ts","sourceRoot":"","sources":["../../src/commands/cat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cat.d.ts","sourceRoot":"","sources":["../../src/commands/cat.ts"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6CD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
package/dist/commands/cat.js
CHANGED
|
@@ -6,10 +6,11 @@ import { logger } from "../utils/logger.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Format .env content into a styled, readable table.
|
|
8
8
|
*/
|
|
9
|
-
function formatEnvTable(content) {
|
|
9
|
+
function formatEnvTable(content, options = {}) {
|
|
10
10
|
const entries = parseEnvContent(content);
|
|
11
|
+
const shouldMaskValues = options.masked ?? false;
|
|
11
12
|
if (entries.size === 0) {
|
|
12
|
-
return chalk.dim("
|
|
13
|
+
return chalk.dim("(empty)");
|
|
13
14
|
}
|
|
14
15
|
// Find the longest key for alignment
|
|
15
16
|
let maxKeyLen = 0;
|
|
@@ -22,16 +23,26 @@ function formatEnvTable(content) {
|
|
|
22
23
|
lines.push(separator);
|
|
23
24
|
for (const [key, value] of entries) {
|
|
24
25
|
const paddedKey = key.padEnd(maxKeyLen);
|
|
25
|
-
|
|
26
|
+
const renderedValue = shouldMaskValues ? maskValue(value) : value;
|
|
27
|
+
lines.push(`${chalk.bold.cyan(paddedKey)} ${chalk.dim("=")} ${renderedValue}`);
|
|
26
28
|
}
|
|
27
29
|
lines.push(separator);
|
|
28
30
|
return lines.join("\n");
|
|
29
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Mask a value for safe display (show first 3 chars, mask the rest).
|
|
34
|
+
*/
|
|
35
|
+
function maskValue(value) {
|
|
36
|
+
if (value.length <= 3) {
|
|
37
|
+
return "•••";
|
|
38
|
+
}
|
|
39
|
+
return value.substring(0, 3) + "•••";
|
|
40
|
+
}
|
|
30
41
|
/**
|
|
31
42
|
* The `envhub cat` command.
|
|
32
43
|
* Outputs the contents of a secret without writing to disk.
|
|
33
44
|
*/
|
|
34
|
-
export async function catCommand(secretName) {
|
|
45
|
+
export async function catCommand(secretName, options = {}) {
|
|
35
46
|
// Load config and create provider
|
|
36
47
|
const config = await configManager.load();
|
|
37
48
|
const provider = ProviderFactory.createProvider(config);
|
|
@@ -39,9 +50,19 @@ export async function catCommand(secretName) {
|
|
|
39
50
|
try {
|
|
40
51
|
const content = await provider.cat(secretName);
|
|
41
52
|
const entries = parseEnvContent(content);
|
|
42
|
-
|
|
53
|
+
let remoteVersion;
|
|
54
|
+
try {
|
|
55
|
+
remoteVersion = await provider.getVersion(secretName);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
remoteVersion = undefined;
|
|
59
|
+
}
|
|
60
|
+
const versionSegment = typeof remoteVersion === "number"
|
|
61
|
+
? `v${remoteVersion}, `
|
|
62
|
+
: "";
|
|
63
|
+
spinner.succeed(`${chalk.bold(secretName)} ${chalk.dim(`(${versionSegment}${entries.size} keys)`)}`);
|
|
43
64
|
logger.newline();
|
|
44
|
-
logger.log(formatEnvTable(content));
|
|
65
|
+
logger.log(formatEnvTable(content, options));
|
|
45
66
|
logger.newline();
|
|
46
67
|
}
|
|
47
68
|
catch (error) {
|
package/dist/commands/cat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat.js","sourceRoot":"","sources":["../../src/commands/cat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cat.js","sourceRoot":"","sources":["../../src/commands/cat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|
package/dist/commands/delete.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { confirm } from "@inquirer/prompts";
|
|
2
1
|
import { configManager } from "../config/config.js";
|
|
3
2
|
import { ProviderFactory } from "../providers/provider.factory.js";
|
|
4
3
|
import { logger } from "../utils/logger.js";
|
|
@@ -12,10 +11,14 @@ export async function deleteCommand(secretName, options) {
|
|
|
12
11
|
const provider = ProviderFactory.createProvider(config);
|
|
13
12
|
// Confirm deletion
|
|
14
13
|
if (!options.force) {
|
|
15
|
-
const confirmed = await
|
|
14
|
+
const confirmed = await logger.promptConfirm({
|
|
16
15
|
message: `Are you sure you want to delete '${secretName}'? This action cannot be undone.`,
|
|
17
16
|
default: false,
|
|
17
|
+
cancelMessage: "Deletion cancelled.",
|
|
18
18
|
});
|
|
19
|
+
if (confirmed === "cancelled") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
19
22
|
if (!confirmed) {
|
|
20
23
|
logger.info("Deletion cancelled.");
|
|
21
24
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,OAA6B;IAE7B,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAExD,mBAAmB;IACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,oCAAoC,UAAU,kCAAkC;YACzF,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,qBAAqB;SACrC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,UAAU,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5D,6BAA6B;QAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CACR,mFAAmF,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,qBAAqB,UAAU,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
type DoctorCheckStatus = "pass" | "warn" | "fail";
|
|
2
|
+
interface DoctorCheckResult {
|
|
3
|
+
id: "version.check" | "config.load" | "prefix" | "provider.init" | "provider.identity" | "provider.identity_verified" | "provider.reachability_and_auth" | "provider.list_rights" | "provider.read_rights";
|
|
4
|
+
title: string;
|
|
5
|
+
status: DoctorCheckStatus;
|
|
6
|
+
message: string;
|
|
7
|
+
details?: string;
|
|
8
|
+
}
|
|
9
|
+
interface DoctorSummary {
|
|
10
|
+
pass: number;
|
|
11
|
+
warn: number;
|
|
12
|
+
fail: number;
|
|
13
|
+
}
|
|
14
|
+
interface DoctorReport {
|
|
15
|
+
summary: DoctorSummary;
|
|
16
|
+
checks: DoctorCheckResult[];
|
|
17
|
+
}
|
|
18
|
+
interface DoctorCommandOptions {
|
|
19
|
+
json?: boolean;
|
|
20
|
+
}
|
|
21
|
+
type DoctorCheckId = DoctorCheckResult["id"];
|
|
22
|
+
type DoctorProgressEvent = {
|
|
23
|
+
phase: "start";
|
|
24
|
+
id: DoctorCheckId;
|
|
25
|
+
title: string;
|
|
26
|
+
} | {
|
|
27
|
+
phase: "end";
|
|
28
|
+
check: DoctorCheckResult;
|
|
29
|
+
};
|
|
30
|
+
type DoctorProgressHandler = (event: DoctorProgressEvent) => void;
|
|
31
|
+
declare function runDoctorChecks(progress?: DoctorProgressHandler): Promise<DoctorReport>;
|
|
32
|
+
/**
|
|
33
|
+
* The `envhub doctor` command.
|
|
34
|
+
* Runs read-only health checks for local config and provider connectivity.
|
|
35
|
+
*/
|
|
36
|
+
export declare function doctorCommand(options: DoctorCommandOptions): Promise<void>;
|
|
37
|
+
export type { DoctorCheckResult, DoctorCheckStatus, DoctorReport };
|
|
38
|
+
export { runDoctorChecks };
|
|
39
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAgBA,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,UAAU,iBAAiB;IACzB,EAAE,EACE,eAAe,GACf,aAAa,GACb,QAAQ,GACR,eAAe,GACf,mBAAmB,GACnB,4BAA4B,GAC5B,gCAAgC,GAChC,sBAAsB,GACtB,sBAAsB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,KAAK,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE7C,KAAK,mBAAmB,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC/C,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAqlBlE,iBAAe,eAAe,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuYtF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhF;AAED,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,CAAC"}
|