@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
@@ -0,0 +1,246 @@
1
+ import type { HealthResponse, ClusterStatus, Tenant, TenantWithUsage, TenantUsage, User, Superadmin, LockdownStatus, ThreatEvent, LockdownHistoryEntry, AuditEntry, AuditVerifyResult, LoginResponse, APIKey, CreateAPIKeyResponse, ListAPIKeysResponse, RotateAPIKeyResponse, APIKeySelfResponse, APIKeyPolicyAttachment, Policy, PolicyListResponse, CreatePolicyInput, UpdatePolicyInput, PolicyAttachment, PolicyTestRequest, PolicyTestResult } from '../types/index.js';
2
+ declare class VaultClient {
3
+ private baseUrl;
4
+ private insecure;
5
+ private timeout;
6
+ constructor();
7
+ /**
8
+ * Update client configuration
9
+ */
10
+ configure(url?: string, insecure?: boolean): void;
11
+ /**
12
+ * Make an HTTP request
13
+ */
14
+ private request;
15
+ login(username: string, password: string, totp?: string): Promise<LoginResponse>;
16
+ refreshToken(): Promise<void>;
17
+ health(): Promise<HealthResponse>;
18
+ leaderHealth(): Promise<HealthResponse>;
19
+ clusterStatus(): Promise<ClusterStatus>;
20
+ clusterTakeover(): Promise<{
21
+ success: boolean;
22
+ message: string;
23
+ nodeId: string;
24
+ }>;
25
+ clusterPromote(nodeId: string): Promise<{
26
+ success: boolean;
27
+ message: string;
28
+ }>;
29
+ clusterRelease(): Promise<{
30
+ success: boolean;
31
+ message: string;
32
+ }>;
33
+ clusterMaintenance(enable: boolean): Promise<{
34
+ success: boolean;
35
+ maintenanceMode: boolean;
36
+ }>;
37
+ listTenants(options?: {
38
+ status?: string;
39
+ withUsage?: boolean;
40
+ }): Promise<TenantWithUsage[]>;
41
+ createTenant(data: {
42
+ id: string;
43
+ name: string;
44
+ maxSecrets?: number;
45
+ maxKmsKeys?: number;
46
+ contactEmail?: string;
47
+ }): Promise<Tenant>;
48
+ getTenant(id: string, withUsage?: boolean): Promise<TenantWithUsage>;
49
+ updateTenant(id: string, data: {
50
+ name?: string;
51
+ maxSecrets?: number;
52
+ maxKmsKeys?: number;
53
+ contactEmail?: string;
54
+ status?: 'active' | 'suspended';
55
+ }): Promise<Tenant>;
56
+ deleteTenant(id: string): Promise<void>;
57
+ getTenantUsage(id: string): Promise<TenantUsage>;
58
+ listUsers(options?: {
59
+ tenantId?: string;
60
+ role?: string;
61
+ status?: string;
62
+ }): Promise<User[]>;
63
+ createUser(data: {
64
+ username: string;
65
+ password: string;
66
+ email?: string;
67
+ tenantId?: string;
68
+ role?: 'user' | 'admin';
69
+ }): Promise<User>;
70
+ getUser(id: string): Promise<User>;
71
+ updateUser(id: string, data: {
72
+ email?: string;
73
+ password?: string;
74
+ role?: 'user' | 'admin';
75
+ status?: 'active' | 'disabled';
76
+ }): Promise<User>;
77
+ deleteUser(id: string): Promise<void>;
78
+ unlockUser(id: string): Promise<{
79
+ message: string;
80
+ }>;
81
+ resetUserPassword(id: string, newPassword: string): Promise<{
82
+ message: string;
83
+ }>;
84
+ disableUserTotp(id: string): Promise<{
85
+ message: string;
86
+ }>;
87
+ listSuperadmins(): Promise<Superadmin[]>;
88
+ createSuperadmin(data: {
89
+ username: string;
90
+ password: string;
91
+ email?: string;
92
+ }): Promise<Superadmin>;
93
+ resetSuperadminPassword(username: string, password: string): Promise<{
94
+ message: string;
95
+ }>;
96
+ unlockSuperadmin(username: string): Promise<{
97
+ message: string;
98
+ }>;
99
+ disableSuperadmin(username: string): Promise<{
100
+ message: string;
101
+ }>;
102
+ enableSuperadmin(username: string): Promise<{
103
+ message: string;
104
+ }>;
105
+ getLockdownStatus(): Promise<LockdownStatus>;
106
+ triggerLockdown(level: 1 | 2 | 3 | 4, reason: string): Promise<{
107
+ success: boolean;
108
+ status: string;
109
+ }>;
110
+ clearLockdown(reason: string): Promise<{
111
+ success: boolean;
112
+ previousStatus: string;
113
+ }>;
114
+ getLockdownHistory(limit?: number): Promise<LockdownHistoryEntry[]>;
115
+ getThreats(options?: {
116
+ category?: string;
117
+ since?: string;
118
+ limit?: number;
119
+ }): Promise<ThreatEvent[]>;
120
+ listAudit(options?: {
121
+ user?: string;
122
+ action?: string;
123
+ startDate?: string;
124
+ endDate?: string;
125
+ limit?: number;
126
+ }): Promise<AuditEntry[]>;
127
+ verifyAuditChain(): Promise<AuditVerifyResult>;
128
+ exportAudit(options?: {
129
+ format?: 'json' | 'csv';
130
+ startDate?: string;
131
+ endDate?: string;
132
+ }): Promise<string>;
133
+ createApiKey(data: {
134
+ name: string;
135
+ description?: string;
136
+ expiresInDays?: number;
137
+ permissions: string[];
138
+ tenantId?: string;
139
+ ipAllowlist?: string[];
140
+ conditions?: Record<string, unknown>;
141
+ }): Promise<CreateAPIKeyResponse>;
142
+ listApiKeys(tenantId?: string): Promise<ListAPIKeysResponse>;
143
+ getApiKey(id: string, tenantId?: string): Promise<APIKey>;
144
+ deleteApiKey(id: string, tenantId?: string): Promise<void>;
145
+ rotateApiKey(id: string, name?: string, tenantId?: string): Promise<RotateAPIKeyResponse>;
146
+ updateApiKeyPermissions(id: string, permissions: string[], tenantId?: string): Promise<APIKey>;
147
+ updateApiKeyConditions(id: string, conditions: Record<string, unknown>, tenantId?: string): Promise<APIKey>;
148
+ setApiKeyEnabled(id: string, enabled: boolean, tenantId?: string): Promise<APIKey>;
149
+ /**
150
+ * Get all available permissions from the database
151
+ * This is the single source of truth for valid permission IDs
152
+ */
153
+ getPermissions(category?: string): Promise<{
154
+ permissions: Array<{
155
+ permission: string;
156
+ description: string;
157
+ category: string;
158
+ }>;
159
+ categories: string[];
160
+ total: number;
161
+ }>;
162
+ /**
163
+ * Validate a list of permission IDs against the database
164
+ */
165
+ validatePermissions(permissions: string[]): Promise<{
166
+ valid: string[];
167
+ invalid: string[];
168
+ allValid: boolean;
169
+ }>;
170
+ getApiKeyPolicies(id: string, tenantId?: string): Promise<{
171
+ policies: APIKeyPolicyAttachment[];
172
+ }>;
173
+ attachApiKeyPolicy(keyId: string, policyId: string, tenantId?: string): Promise<{
174
+ message: string;
175
+ }>;
176
+ detachApiKeyPolicy(keyId: string, policyId: string, tenantId?: string): Promise<{
177
+ message: string;
178
+ }>;
179
+ getApiKeySelf(): Promise<APIKeySelfResponse>;
180
+ rotateApiKeySelf(name?: string): Promise<RotateAPIKeyResponse & {
181
+ expiresInDays: number;
182
+ }>;
183
+ listPolicies(options?: {
184
+ tenantId?: string;
185
+ enabled?: boolean;
186
+ effect?: 'allow' | 'deny';
187
+ search?: string;
188
+ page?: number;
189
+ pageSize?: number;
190
+ }): Promise<PolicyListResponse>;
191
+ getPolicy(id: string): Promise<Policy>;
192
+ createPolicy(data: CreatePolicyInput): Promise<Policy>;
193
+ updatePolicy(id: string, data: UpdatePolicyInput): Promise<Policy>;
194
+ deletePolicy(id: string): Promise<void>;
195
+ togglePolicy(id: string, enabled: boolean): Promise<Policy>;
196
+ validatePolicy(policy: CreatePolicyInput): Promise<{
197
+ valid: boolean;
198
+ errors?: string[];
199
+ }>;
200
+ getPolicyAttachments(policyId: string): Promise<{
201
+ users: PolicyAttachment[];
202
+ roles: PolicyAttachment[];
203
+ }>;
204
+ attachPolicyToUser(policyId: string, userId: string): Promise<{
205
+ message: string;
206
+ }>;
207
+ attachPolicyToRole(policyId: string, roleId: string): Promise<{
208
+ message: string;
209
+ }>;
210
+ detachPolicyFromUser(policyId: string, userId: string): Promise<{
211
+ message: string;
212
+ }>;
213
+ detachPolicyFromRole(policyId: string, roleId: string): Promise<{
214
+ message: string;
215
+ }>;
216
+ getUserPolicies(userId: string): Promise<Policy[]>;
217
+ getRolePolicies(roleId: string): Promise<Policy[]>;
218
+ testPolicy(request: PolicyTestRequest): Promise<PolicyTestResult>;
219
+ /**
220
+ * Generic GET request
221
+ */
222
+ get<T>(path: string): Promise<T>;
223
+ /**
224
+ * Generic POST request
225
+ */
226
+ post<T>(path: string, body: unknown): Promise<T>;
227
+ /**
228
+ * Generic DELETE request
229
+ */
230
+ delete<T>(path: string): Promise<T>;
231
+ /**
232
+ * Generic PATCH request
233
+ */
234
+ patch<T>(path: string, body: unknown): Promise<T>;
235
+ /**
236
+ * Get WebSocket URL for a given endpoint path
237
+ */
238
+ getWebSocketUrl(wsPath: string): string;
239
+ /**
240
+ * Get authentication headers for WebSocket connection
241
+ */
242
+ getAuthHeaders(): Promise<Record<string, string>>;
243
+ }
244
+ export declare const client: VaultClient;
245
+ export { VaultClient };
246
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}