@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.
Files changed (122) hide show
  1. package/README.md +310 -0
  2. package/dist/commands/agent.d.ts +3 -0
  3. package/dist/commands/agent.d.ts.map +1 -0
  4. package/dist/commands/agent.js +660 -0
  5. package/dist/commands/agent.js.map +1 -0
  6. package/dist/commands/apikey.d.ts +3 -0
  7. package/dist/commands/apikey.d.ts.map +1 -0
  8. package/dist/commands/apikey.js +767 -0
  9. package/dist/commands/apikey.js.map +1 -0
  10. package/dist/commands/audit.d.ts +3 -0
  11. package/dist/commands/audit.d.ts.map +1 -0
  12. package/dist/commands/audit.js +147 -0
  13. package/dist/commands/audit.js.map +1 -0
  14. package/dist/commands/auth.d.ts +3 -0
  15. package/dist/commands/auth.d.ts.map +1 -0
  16. package/dist/commands/auth.js +426 -0
  17. package/dist/commands/auth.js.map +1 -0
  18. package/dist/commands/cert.d.ts +3 -0
  19. package/dist/commands/cert.d.ts.map +1 -0
  20. package/dist/commands/cert.js +398 -0
  21. package/dist/commands/cert.js.map +1 -0
  22. package/dist/commands/cluster.d.ts +3 -0
  23. package/dist/commands/cluster.d.ts.map +1 -0
  24. package/dist/commands/cluster.js +228 -0
  25. package/dist/commands/cluster.js.map +1 -0
  26. package/dist/commands/emergency.d.ts +3 -0
  27. package/dist/commands/emergency.d.ts.map +1 -0
  28. package/dist/commands/emergency.js +223 -0
  29. package/dist/commands/emergency.js.map +1 -0
  30. package/dist/commands/health.d.ts +3 -0
  31. package/dist/commands/health.d.ts.map +1 -0
  32. package/dist/commands/health.js +188 -0
  33. package/dist/commands/health.js.map +1 -0
  34. package/dist/commands/lockdown.d.ts +3 -0
  35. package/dist/commands/lockdown.d.ts.map +1 -0
  36. package/dist/commands/lockdown.js +232 -0
  37. package/dist/commands/lockdown.js.map +1 -0
  38. package/dist/commands/permissions.d.ts +3 -0
  39. package/dist/commands/permissions.d.ts.map +1 -0
  40. package/dist/commands/permissions.js +168 -0
  41. package/dist/commands/permissions.js.map +1 -0
  42. package/dist/commands/policy.d.ts +3 -0
  43. package/dist/commands/policy.d.ts.map +1 -0
  44. package/dist/commands/policy.js +660 -0
  45. package/dist/commands/policy.js.map +1 -0
  46. package/dist/commands/superadmin.d.ts +3 -0
  47. package/dist/commands/superadmin.d.ts.map +1 -0
  48. package/dist/commands/superadmin.js +203 -0
  49. package/dist/commands/superadmin.js.map +1 -0
  50. package/dist/commands/tenant.d.ts +3 -0
  51. package/dist/commands/tenant.d.ts.map +1 -0
  52. package/dist/commands/tenant.js +277 -0
  53. package/dist/commands/tenant.js.map +1 -0
  54. package/dist/commands/update.d.ts +9 -0
  55. package/dist/commands/update.d.ts.map +1 -0
  56. package/dist/commands/update.js +359 -0
  57. package/dist/commands/update.js.map +1 -0
  58. package/dist/commands/user.d.ts +3 -0
  59. package/dist/commands/user.d.ts.map +1 -0
  60. package/dist/commands/user.js +363 -0
  61. package/dist/commands/user.js.map +1 -0
  62. package/dist/index.d.ts +3 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +82 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/lib/client.d.ts +246 -0
  67. package/dist/lib/client.d.ts.map +1 -0
  68. package/dist/lib/client.js +734 -0
  69. package/dist/lib/client.js.map +1 -0
  70. package/dist/lib/config.d.ts +130 -0
  71. package/dist/lib/config.d.ts.map +1 -0
  72. package/dist/lib/config.js +342 -0
  73. package/dist/lib/config.js.map +1 -0
  74. package/dist/lib/db.d.ts +111 -0
  75. package/dist/lib/db.d.ts.map +1 -0
  76. package/dist/lib/db.js +698 -0
  77. package/dist/lib/db.js.map +1 -0
  78. package/dist/lib/local.d.ts +41 -0
  79. package/dist/lib/local.d.ts.map +1 -0
  80. package/dist/lib/local.js +236 -0
  81. package/dist/lib/local.js.map +1 -0
  82. package/dist/lib/mode.d.ts +210 -0
  83. package/dist/lib/mode.d.ts.map +1 -0
  84. package/dist/lib/mode.js +389 -0
  85. package/dist/lib/mode.js.map +1 -0
  86. package/dist/lib/output.d.ts +61 -0
  87. package/dist/lib/output.d.ts.map +1 -0
  88. package/dist/lib/output.js +190 -0
  89. package/dist/lib/output.js.map +1 -0
  90. package/dist/lib/prompts.d.ts +32 -0
  91. package/dist/lib/prompts.d.ts.map +1 -0
  92. package/dist/lib/prompts.js +96 -0
  93. package/dist/lib/prompts.js.map +1 -0
  94. package/dist/services/auto-update-daemon.d.ts +48 -0
  95. package/dist/services/auto-update-daemon.d.ts.map +1 -0
  96. package/dist/services/auto-update-daemon.js +296 -0
  97. package/dist/services/auto-update-daemon.js.map +1 -0
  98. package/dist/services/signature-verifier.d.ts +38 -0
  99. package/dist/services/signature-verifier.d.ts.map +1 -0
  100. package/dist/services/signature-verifier.js +209 -0
  101. package/dist/services/signature-verifier.js.map +1 -0
  102. package/dist/services/update-checker.d.ts +39 -0
  103. package/dist/services/update-checker.d.ts.map +1 -0
  104. package/dist/services/update-checker.js +198 -0
  105. package/dist/services/update-checker.js.map +1 -0
  106. package/dist/services/update-installer.d.ts +54 -0
  107. package/dist/services/update-installer.d.ts.map +1 -0
  108. package/dist/services/update-installer.js +360 -0
  109. package/dist/services/update-installer.js.map +1 -0
  110. package/dist/types/index.d.ts +411 -0
  111. package/dist/types/index.d.ts.map +1 -0
  112. package/dist/types/index.js +2 -0
  113. package/dist/types/index.js.map +1 -0
  114. package/dist/types/update.d.ts +137 -0
  115. package/dist/types/update.d.ts.map +1 -0
  116. package/dist/types/update.js +27 -0
  117. package/dist/types/update.js.map +1 -0
  118. package/dist/utils/platform.d.ts +35 -0
  119. package/dist/utils/platform.d.ts.map +1 -0
  120. package/dist/utils/platform.js +115 -0
  121. package/dist/utils/platform.js.map +1 -0
  122. 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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerAgentCommands(program: Command): void;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -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"}