@zincapp/znvault-cli 2.1.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/README.md +310 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +660 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/apikey.d.ts +3 -0
- package/dist/commands/apikey.d.ts.map +1 -0
- package/dist/commands/apikey.js +767 -0
- package/dist/commands/apikey.js.map +1 -0
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +147 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +426 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/cert.d.ts +3 -0
- package/dist/commands/cert.d.ts.map +1 -0
- package/dist/commands/cert.js +398 -0
- package/dist/commands/cert.js.map +1 -0
- package/dist/commands/cluster.d.ts +3 -0
- package/dist/commands/cluster.d.ts.map +1 -0
- package/dist/commands/cluster.js +228 -0
- package/dist/commands/cluster.js.map +1 -0
- package/dist/commands/emergency.d.ts +3 -0
- package/dist/commands/emergency.d.ts.map +1 -0
- package/dist/commands/emergency.js +223 -0
- package/dist/commands/emergency.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +188 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/lockdown.d.ts +3 -0
- package/dist/commands/lockdown.d.ts.map +1 -0
- package/dist/commands/lockdown.js +232 -0
- package/dist/commands/lockdown.js.map +1 -0
- package/dist/commands/permissions.d.ts +3 -0
- package/dist/commands/permissions.d.ts.map +1 -0
- package/dist/commands/permissions.js +168 -0
- package/dist/commands/permissions.js.map +1 -0
- package/dist/commands/policy.d.ts +3 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +660 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/superadmin.d.ts +3 -0
- package/dist/commands/superadmin.d.ts.map +1 -0
- package/dist/commands/superadmin.js +203 -0
- package/dist/commands/superadmin.js.map +1 -0
- package/dist/commands/tenant.d.ts +3 -0
- package/dist/commands/tenant.d.ts.map +1 -0
- package/dist/commands/tenant.js +277 -0
- package/dist/commands/tenant.js.map +1 -0
- package/dist/commands/update.d.ts +9 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +359 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +3 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +363 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/client.d.ts +246 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/client.js +734 -0
- package/dist/lib/client.js.map +1 -0
- package/dist/lib/config.d.ts +130 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +342 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/db.d.ts +111 -0
- package/dist/lib/db.d.ts.map +1 -0
- package/dist/lib/db.js +698 -0
- package/dist/lib/db.js.map +1 -0
- package/dist/lib/local.d.ts +41 -0
- package/dist/lib/local.d.ts.map +1 -0
- package/dist/lib/local.js +236 -0
- package/dist/lib/local.js.map +1 -0
- package/dist/lib/mode.d.ts +210 -0
- package/dist/lib/mode.d.ts.map +1 -0
- package/dist/lib/mode.js +389 -0
- package/dist/lib/mode.js.map +1 -0
- package/dist/lib/output.d.ts +61 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +190 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/prompts.d.ts +32 -0
- package/dist/lib/prompts.d.ts.map +1 -0
- package/dist/lib/prompts.js +96 -0
- package/dist/lib/prompts.js.map +1 -0
- package/dist/services/auto-update-daemon.d.ts +48 -0
- package/dist/services/auto-update-daemon.d.ts.map +1 -0
- package/dist/services/auto-update-daemon.js +296 -0
- package/dist/services/auto-update-daemon.js.map +1 -0
- package/dist/services/signature-verifier.d.ts +38 -0
- package/dist/services/signature-verifier.d.ts.map +1 -0
- package/dist/services/signature-verifier.js +209 -0
- package/dist/services/signature-verifier.js.map +1 -0
- package/dist/services/update-checker.d.ts +39 -0
- package/dist/services/update-checker.d.ts.map +1 -0
- package/dist/services/update-checker.js +198 -0
- package/dist/services/update-checker.js.map +1 -0
- package/dist/services/update-installer.d.ts +54 -0
- package/dist/services/update-installer.d.ts.map +1 -0
- package/dist/services/update-installer.js +360 -0
- package/dist/services/update-installer.js.map +1 -0
- package/dist/types/index.d.ts +411 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/update.d.ts +137 -0
- package/dist/types/update.d.ts.map +1 -0
- package/dist/types/update.js +27 -0
- package/dist/types/update.js.map +1 -0
- package/dist/utils/platform.d.ts +35 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +115 -0
- package/dist/utils/platform.js.map +1 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# ZN-Vault CLI
|
|
2
|
+
|
|
3
|
+
Official command-line interface for ZN-Vault secrets management.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# From source
|
|
9
|
+
cd znvault-cli
|
|
10
|
+
npm install
|
|
11
|
+
npm run build
|
|
12
|
+
npm link
|
|
13
|
+
|
|
14
|
+
# Verify
|
|
15
|
+
znvault --version
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Create a profile for your vault server
|
|
22
|
+
znvault profile create prod --vault-url https://vault.example.com -k --use
|
|
23
|
+
|
|
24
|
+
# Authenticate
|
|
25
|
+
znvault login -u admin -p 'password'
|
|
26
|
+
znvault whoami
|
|
27
|
+
|
|
28
|
+
# Check health
|
|
29
|
+
znvault health
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Multi-Profile Support
|
|
33
|
+
|
|
34
|
+
The CLI supports multiple configuration profiles, allowing you to manage different vault servers or user accounts easily.
|
|
35
|
+
|
|
36
|
+
### Profile Commands
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Create profiles for different environments
|
|
40
|
+
znvault profile create prod --vault-url https://vault.example.com -k
|
|
41
|
+
znvault profile create local --vault-url https://localhost:8443 -k
|
|
42
|
+
|
|
43
|
+
# List all profiles
|
|
44
|
+
znvault profile list
|
|
45
|
+
|
|
46
|
+
# Switch active profile
|
|
47
|
+
znvault profile use prod
|
|
48
|
+
|
|
49
|
+
# Show current profile
|
|
50
|
+
znvault profile current
|
|
51
|
+
|
|
52
|
+
# Show profile details
|
|
53
|
+
znvault profile show prod
|
|
54
|
+
|
|
55
|
+
# Use a specific profile for a single command (without switching)
|
|
56
|
+
znvault --profile local health
|
|
57
|
+
|
|
58
|
+
# Delete a profile
|
|
59
|
+
znvault profile delete old-profile
|
|
60
|
+
|
|
61
|
+
# Rename a profile
|
|
62
|
+
znvault profile rename staging qa
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Profile Workflow Example
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Setup profiles for different environments
|
|
69
|
+
znvault profile create prod --vault-url https://vault.example.com -k
|
|
70
|
+
znvault profile create dev --vault-url https://localhost:8443 -k
|
|
71
|
+
|
|
72
|
+
# Login to production
|
|
73
|
+
znvault profile use prod
|
|
74
|
+
znvault login -u admin -p 'prod-password'
|
|
75
|
+
|
|
76
|
+
# Login to dev (separate session)
|
|
77
|
+
znvault profile use dev
|
|
78
|
+
znvault login -u admin -p 'dev-password'
|
|
79
|
+
|
|
80
|
+
# Now you can switch between them - credentials are stored per profile
|
|
81
|
+
znvault profile use prod
|
|
82
|
+
znvault whoami # Shows prod user
|
|
83
|
+
|
|
84
|
+
znvault profile use dev
|
|
85
|
+
znvault whoami # Shows dev user
|
|
86
|
+
|
|
87
|
+
# Or use --profile flag for one-off commands
|
|
88
|
+
znvault --profile prod tenant list
|
|
89
|
+
znvault --profile dev tenant list
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Environment Variable Override
|
|
93
|
+
|
|
94
|
+
You can also override the profile via environment variable:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
ZNVAULT_PROFILE=prod znvault health
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Operating Modes
|
|
101
|
+
|
|
102
|
+
The CLI operates in two modes:
|
|
103
|
+
|
|
104
|
+
| Mode | When | Authentication | Use Case |
|
|
105
|
+
|------|------|----------------|----------|
|
|
106
|
+
| **API Mode** | Default | JWT login or API key | Remote administration |
|
|
107
|
+
| **Local Mode** | On vault nodes with sudo | None (direct DB) | On-node operations |
|
|
108
|
+
|
|
109
|
+
### API Mode (Remote)
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
znvault login -u admin -p 'Admin123456#'
|
|
113
|
+
znvault health
|
|
114
|
+
znvault tenant list
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Local Mode (On Vault Nodes)
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# No login required
|
|
121
|
+
sudo znvault health
|
|
122
|
+
sudo znvault tenant list
|
|
123
|
+
sudo znvault user unlock admin
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Command Reference
|
|
127
|
+
|
|
128
|
+
### Configuration
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
znvault config set url <url> # Set vault URL
|
|
132
|
+
znvault config set insecure <bool> # Skip TLS verification
|
|
133
|
+
znvault config set apiKey <key> # Set API key
|
|
134
|
+
znvault config show # Show current config
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Authentication
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
znvault login -u <user> -p <pass> # Login with credentials
|
|
141
|
+
znvault whoami # Show current user
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Health & Status
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
znvault health # Check vault health
|
|
148
|
+
znvault status # Detailed status
|
|
149
|
+
znvault cluster status # Cluster health (HA mode)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Tenant Management
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
znvault tenant list # List tenants
|
|
156
|
+
znvault tenant create <id> # Create tenant
|
|
157
|
+
znvault tenant delete <id> # Delete tenant
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### User Management
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
znvault user list [--tenant <id>] # List users
|
|
164
|
+
znvault user unlock <username> # Unlock user
|
|
165
|
+
znvault user reset-password <user> # Reset password
|
|
166
|
+
znvault user totp-disable <user> # Disable TOTP
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Secret Management
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
znvault secret list [--tenant <id>] # List secrets
|
|
173
|
+
znvault secret get <alias> # Get secret
|
|
174
|
+
znvault secret create <alias> --data <json> # Create secret
|
|
175
|
+
znvault secret delete <alias> # Delete secret
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Certificate Management
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
znvault certificate list # List certificates
|
|
182
|
+
znvault certificate get <id> # Get certificate
|
|
183
|
+
znvault certificate create <alias> # Create certificate
|
|
184
|
+
znvault certificate rotate <id> # Rotate certificate
|
|
185
|
+
znvault certificate delete <id> # Delete certificate
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Audit & Security
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
znvault audit list [--days 7] # View audit logs
|
|
192
|
+
znvault lockdown status # Check lockdown state
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Emergency Operations
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
sudo znvault emergency reset-password <user> <pass>
|
|
199
|
+
sudo znvault emergency unlock <user>
|
|
200
|
+
sudo znvault emergency disable-totp <user>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Certificate Agent
|
|
204
|
+
|
|
205
|
+
The `znvault agent` command provides automated certificate synchronization with real-time updates via WebSocket.
|
|
206
|
+
|
|
207
|
+
### Quick Start
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Initialize agent config
|
|
211
|
+
znvault agent init -o /etc/ssl/znvault
|
|
212
|
+
|
|
213
|
+
# Add certificate to sync
|
|
214
|
+
znvault agent add <cert-id> \
|
|
215
|
+
--alias my-cert \
|
|
216
|
+
--cert-file /etc/ssl/certs/my-cert.crt \
|
|
217
|
+
--key-file /etc/ssl/private/my-cert.key
|
|
218
|
+
|
|
219
|
+
# Start agent with reload hook
|
|
220
|
+
znvault agent start --on-update "systemctl reload nginx"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Agent Commands
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
znvault agent init # Initialize configuration
|
|
227
|
+
znvault agent add <id> # Add certificate to sync
|
|
228
|
+
znvault agent remove <id> # Remove certificate
|
|
229
|
+
znvault agent list # List configured certificates
|
|
230
|
+
znvault agent sync # One-time sync
|
|
231
|
+
znvault agent start # Start daemon
|
|
232
|
+
znvault agent status # Show sync status
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Features
|
|
236
|
+
|
|
237
|
+
- **Real-time Updates**: WebSocket-based push notifications
|
|
238
|
+
- **Resilient Connections**: Custom ping/pong with watchdog
|
|
239
|
+
- **Automatic Reconnection**: Fixed-interval reconnect on disconnect
|
|
240
|
+
- **Subscription Filtering**: Only receive events for watched certificates
|
|
241
|
+
- **Reload Hooks**: Run commands after updates (e.g., reload HAProxy)
|
|
242
|
+
- **Cross-Node Events**: Works with HA clusters via Redis pub/sub
|
|
243
|
+
|
|
244
|
+
### Example: HAProxy Automation
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
znvault agent init -o /etc/haproxy/certs
|
|
248
|
+
|
|
249
|
+
znvault agent add $CERT_ID \
|
|
250
|
+
--alias frontend \
|
|
251
|
+
--combined-file /etc/haproxy/certs/frontend.pem
|
|
252
|
+
|
|
253
|
+
znvault agent start --on-update "haproxy -c -f /etc/haproxy/haproxy.cfg && systemctl reload haproxy"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Systemd Service
|
|
257
|
+
|
|
258
|
+
```ini
|
|
259
|
+
[Unit]
|
|
260
|
+
Description=ZN-Vault Certificate Agent
|
|
261
|
+
After=network-online.target
|
|
262
|
+
|
|
263
|
+
[Service]
|
|
264
|
+
Type=simple
|
|
265
|
+
Environment=ZNVAULT_URL=https://vault.example.com
|
|
266
|
+
Environment=ZNVAULT_API_KEY=znv_...
|
|
267
|
+
ExecStart=/usr/local/bin/znvault agent start \
|
|
268
|
+
-c /etc/znvault/agent.json \
|
|
269
|
+
--on-update "/usr/local/bin/reload.sh"
|
|
270
|
+
Restart=always
|
|
271
|
+
RestartSec=10
|
|
272
|
+
|
|
273
|
+
[Install]
|
|
274
|
+
WantedBy=multi-user.target
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
See [Agent Guide](../docs/AGENT_GUIDE.md) for complete documentation.
|
|
278
|
+
|
|
279
|
+
## Environment Variables
|
|
280
|
+
|
|
281
|
+
| Variable | Description |
|
|
282
|
+
|----------|-------------|
|
|
283
|
+
| `ZNVAULT_URL` | Vault API URL |
|
|
284
|
+
| `ZNVAULT_USERNAME` | Username for login |
|
|
285
|
+
| `ZNVAULT_PASSWORD` | Password for login |
|
|
286
|
+
| `ZNVAULT_API_KEY` | API key for authentication |
|
|
287
|
+
| `ZNVAULT_INSECURE` | Skip TLS verification |
|
|
288
|
+
|
|
289
|
+
## Documentation
|
|
290
|
+
|
|
291
|
+
- [Agent Guide](../docs/AGENT_GUIDE.md) - Certificate agent documentation
|
|
292
|
+
- [CLI Admin Guide](../docs/CLI_ADMIN_GUIDE.md) - Full CLI reference
|
|
293
|
+
- [KMS User Guide](../docs/KMS_USER_GUIDE.md) - Key management
|
|
294
|
+
|
|
295
|
+
## Development
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# Build
|
|
299
|
+
npm run build
|
|
300
|
+
|
|
301
|
+
# Watch mode
|
|
302
|
+
npm run dev
|
|
303
|
+
|
|
304
|
+
# Run without building
|
|
305
|
+
npm run start -- <command>
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## License
|
|
309
|
+
|
|
310
|
+
Proprietary - ZincApp
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqNpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwnB5D"}
|