@zincapp/znvault-cli 2.29.1 → 2.29.3
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/dist/commands/agent/direct/update-all.d.ts.map +1 -1
- package/dist/commands/agent/direct/update-all.js +13 -8
- package/dist/commands/agent/direct/update-all.js.map +1 -1
- package/dist/commands/agent/helpers.d.ts +3 -6
- package/dist/commands/agent/helpers.d.ts.map +1 -1
- package/dist/commands/agent/helpers.js +13 -21
- package/dist/commands/agent/helpers.js.map +1 -1
- package/dist/commands/apikey/helpers.d.ts +1 -2
- package/dist/commands/apikey/helpers.d.ts.map +1 -1
- package/dist/commands/apikey/helpers.js +2 -12
- package/dist/commands/apikey/helpers.js.map +1 -1
- package/dist/commands/backup/helpers.d.ts +1 -3
- package/dist/commands/backup/helpers.d.ts.map +1 -1
- package/dist/commands/backup/helpers.js +2 -23
- package/dist/commands/backup/helpers.js.map +1 -1
- package/dist/commands/cluster.d.ts.map +1 -1
- package/dist/commands/cluster.js +3 -1
- package/dist/commands/cluster.js.map +1 -1
- package/dist/commands/device.d.ts.map +1 -1
- package/dist/commands/device.js +10 -6
- package/dist/commands/device.js.map +1 -1
- package/dist/commands/dynamic-secrets/helpers.d.ts +3 -2
- package/dist/commands/dynamic-secrets/helpers.d.ts.map +1 -1
- package/dist/commands/dynamic-secrets/helpers.js +6 -15
- package/dist/commands/dynamic-secrets/helpers.js.map +1 -1
- package/dist/commands/kms/crud.d.ts +6 -0
- package/dist/commands/kms/crud.d.ts.map +1 -0
- package/dist/commands/kms/crud.js +226 -0
- package/dist/commands/kms/crud.js.map +1 -0
- package/dist/commands/kms/crypto.d.ts +6 -0
- package/dist/commands/kms/crypto.d.ts.map +1 -0
- package/dist/commands/kms/crypto.js +190 -0
- package/dist/commands/kms/crypto.js.map +1 -0
- package/dist/commands/kms/helpers.d.ts +10 -0
- package/dist/commands/kms/helpers.d.ts.map +1 -0
- package/dist/commands/kms/helpers.js +44 -0
- package/dist/commands/kms/helpers.js.map +1 -0
- package/dist/commands/kms/index.d.ts +13 -0
- package/dist/commands/kms/index.d.ts.map +1 -0
- package/dist/commands/kms/index.js +18 -0
- package/dist/commands/kms/index.js.map +1 -0
- package/dist/commands/kms/lifecycle.d.ts +6 -0
- package/dist/commands/kms/lifecycle.d.ts.map +1 -0
- package/dist/commands/kms/lifecycle.js +124 -0
- package/dist/commands/kms/lifecycle.js.map +1 -0
- package/dist/commands/kms/types.d.ts +102 -0
- package/dist/commands/kms/types.d.ts.map +1 -0
- package/dist/commands/kms/types.js +3 -0
- package/dist/commands/kms/types.js.map +1 -0
- package/dist/commands/plugin/enable-disable.d.ts +6 -0
- package/dist/commands/plugin/enable-disable.d.ts.map +1 -0
- package/dist/commands/plugin/enable-disable.js +64 -0
- package/dist/commands/plugin/enable-disable.js.map +1 -0
- package/dist/commands/plugin/helpers.d.ts +63 -0
- package/dist/commands/plugin/helpers.d.ts.map +1 -0
- package/dist/commands/plugin/helpers.js +204 -0
- package/dist/commands/plugin/helpers.js.map +1 -0
- package/dist/commands/plugin/index.d.ts +10 -0
- package/dist/commands/plugin/index.d.ts.map +1 -0
- package/dist/commands/plugin/index.js +24 -0
- package/dist/commands/plugin/index.js.map +1 -0
- package/dist/commands/plugin/info.d.ts +6 -0
- package/dist/commands/plugin/info.d.ts.map +1 -0
- package/dist/commands/plugin/info.js +108 -0
- package/dist/commands/plugin/info.js.map +1 -0
- package/dist/commands/plugin/install.d.ts +6 -0
- package/dist/commands/plugin/install.d.ts.map +1 -0
- package/dist/commands/plugin/install.js +96 -0
- package/dist/commands/plugin/install.js.map +1 -0
- package/dist/commands/plugin/list.d.ts +6 -0
- package/dist/commands/plugin/list.d.ts.map +1 -0
- package/dist/commands/plugin/list.js +60 -0
- package/dist/commands/plugin/list.js.map +1 -0
- package/dist/commands/plugin/types.d.ts +37 -0
- package/dist/commands/plugin/types.d.ts.map +1 -0
- package/dist/commands/plugin/types.js +7 -0
- package/dist/commands/plugin/types.js.map +1 -0
- package/dist/commands/plugin/uninstall.d.ts +6 -0
- package/dist/commands/plugin/uninstall.d.ts.map +1 -0
- package/dist/commands/plugin/uninstall.js +50 -0
- package/dist/commands/plugin/uninstall.js.map +1 -0
- package/dist/commands/plugin/update.d.ts +6 -0
- package/dist/commands/plugin/update.d.ts.map +1 -0
- package/dist/commands/plugin/update.js +84 -0
- package/dist/commands/plugin/update.js.map +1 -0
- package/dist/commands/policy/attachments.d.ts.map +1 -1
- package/dist/commands/policy/attachments.js +14 -20
- package/dist/commands/policy/attachments.js.map +1 -1
- package/dist/commands/policy/crud.d.ts.map +1 -1
- package/dist/commands/policy/crud.js +13 -23
- package/dist/commands/policy/crud.js.map +1 -1
- package/dist/commands/policy/io.d.ts.map +1 -1
- package/dist/commands/policy/io.js +4 -5
- package/dist/commands/policy/io.js.map +1 -1
- package/dist/commands/policy/list.d.ts.map +1 -1
- package/dist/commands/policy/list.js +7 -8
- package/dist/commands/policy/list.js.map +1 -1
- package/dist/commands/quarantine.d.ts.map +1 -1
- package/dist/commands/quarantine.js +1 -9
- package/dist/commands/quarantine.js.map +1 -1
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +4 -10
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/secret/helpers.d.ts +1 -2
- package/dist/commands/secret/helpers.d.ts.map +1 -1
- package/dist/commands/secret/helpers.js +2 -14
- package/dist/commands/secret/helpers.js.map +1 -1
- package/dist/commands/secret/list.d.ts.map +1 -1
- package/dist/commands/secret/list.js +3 -4
- package/dist/commands/secret/list.js.map +1 -1
- package/dist/commands/ssh/bookmark.d.ts +11 -0
- package/dist/commands/ssh/bookmark.d.ts.map +1 -0
- package/dist/commands/ssh/bookmark.js +210 -0
- package/dist/commands/ssh/bookmark.js.map +1 -0
- package/dist/commands/ssh/ca.d.ts +6 -0
- package/dist/commands/ssh/ca.d.ts.map +1 -0
- package/dist/commands/ssh/ca.js +162 -0
- package/dist/commands/ssh/ca.js.map +1 -0
- package/dist/commands/ssh/cert.d.ts +6 -0
- package/dist/commands/ssh/cert.d.ts.map +1 -0
- package/dist/commands/ssh/cert.js +303 -0
- package/dist/commands/ssh/cert.js.map +1 -0
- package/dist/commands/ssh/config.d.ts +6 -0
- package/dist/commands/ssh/config.d.ts.map +1 -0
- package/dist/commands/ssh/config.js +95 -0
- package/dist/commands/ssh/config.js.map +1 -0
- package/dist/commands/ssh/connect.d.ts +12 -0
- package/dist/commands/ssh/connect.d.ts.map +1 -0
- package/dist/commands/ssh/connect.js +226 -0
- package/dist/commands/ssh/connect.js.map +1 -0
- package/dist/commands/ssh/exec.d.ts +6 -0
- package/dist/commands/ssh/exec.d.ts.map +1 -0
- package/dist/commands/ssh/exec.js +218 -0
- package/dist/commands/ssh/exec.js.map +1 -0
- package/dist/commands/ssh/helpers.d.ts +46 -0
- package/dist/commands/ssh/helpers.d.ts.map +1 -0
- package/dist/commands/ssh/helpers.js +175 -0
- package/dist/commands/ssh/helpers.js.map +1 -0
- package/dist/commands/ssh/hosts.d.ts +6 -0
- package/dist/commands/ssh/hosts.d.ts.map +1 -0
- package/dist/commands/ssh/hosts.js +101 -0
- package/dist/commands/ssh/hosts.js.map +1 -0
- package/dist/commands/ssh/index.d.ts +24 -0
- package/dist/commands/ssh/index.d.ts.map +1 -0
- package/dist/commands/ssh/index.js +109 -0
- package/dist/commands/ssh/index.js.map +1 -0
- package/dist/commands/ssh/mapping.d.ts +6 -0
- package/dist/commands/ssh/mapping.d.ts.map +1 -0
- package/dist/commands/ssh/mapping.js +130 -0
- package/dist/commands/ssh/mapping.js.map +1 -0
- package/dist/commands/ssh/scp.d.ts +6 -0
- package/dist/commands/ssh/scp.d.ts.map +1 -0
- package/dist/commands/ssh/scp.js +219 -0
- package/dist/commands/ssh/scp.js.map +1 -0
- package/dist/commands/ssh/server-group.d.ts +6 -0
- package/dist/commands/ssh/server-group.d.ts.map +1 -0
- package/dist/commands/ssh/server-group.js +249 -0
- package/dist/commands/ssh/server-group.js.map +1 -0
- package/dist/commands/ssh/types.d.ts +150 -0
- package/dist/commands/ssh/types.d.ts.map +1 -0
- package/dist/commands/ssh/types.js +3 -0
- package/dist/commands/ssh/types.js.map +1 -0
- package/dist/commands/ssh-ca/helpers.d.ts +1 -8
- package/dist/commands/ssh-ca/helpers.d.ts.map +1 -1
- package/dist/commands/ssh-ca/helpers.js +2 -23
- package/dist/commands/ssh-ca/helpers.js.map +1 -1
- package/dist/commands/sso/crud.d.ts +6 -0
- package/dist/commands/sso/crud.d.ts.map +1 -0
- package/dist/commands/sso/crud.js +360 -0
- package/dist/commands/sso/crud.js.map +1 -0
- package/dist/commands/sso/helpers.d.ts +9 -0
- package/dist/commands/sso/helpers.d.ts.map +1 -0
- package/dist/commands/sso/helpers.js +13 -0
- package/dist/commands/sso/helpers.js.map +1 -0
- package/dist/commands/sso/index.d.ts +13 -0
- package/dist/commands/sso/index.d.ts.map +1 -0
- package/dist/commands/sso/index.js +16 -0
- package/dist/commands/sso/index.js.map +1 -0
- package/dist/commands/sso/types.d.ts +119 -0
- package/dist/commands/sso/types.d.ts.map +1 -0
- package/dist/commands/sso/types.js +3 -0
- package/dist/commands/sso/types.js.map +1 -0
- package/dist/commands/sso/users.d.ts +6 -0
- package/dist/commands/sso/users.d.ts.map +1 -0
- package/dist/commands/sso/users.js +128 -0
- package/dist/commands/sso/users.js.map +1 -0
- package/dist/commands/unseal.d.ts.map +1 -1
- package/dist/commands/unseal.js +10 -20
- package/dist/commands/unseal.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/cli-update.d.ts.map +1 -1
- package/dist/lib/cli-update.js +18 -14
- package/dist/lib/cli-update.js.map +1 -1
- package/dist/lib/client/http.d.ts +3 -1
- package/dist/lib/client/http.d.ts.map +1 -1
- package/dist/lib/client/http.js +41 -8
- package/dist/lib/client/http.js.map +1 -1
- package/dist/lib/config/autounseal.d.ts +4 -0
- package/dist/lib/config/autounseal.d.ts.map +1 -1
- package/dist/lib/config/autounseal.js +102 -6
- package/dist/lib/config/autounseal.js.map +1 -1
- package/dist/lib/config/credentials.d.ts.map +1 -1
- package/dist/lib/config/credentials.js +3 -2
- package/dist/lib/config/credentials.js.map +1 -1
- package/dist/lib/config/index.d.ts +2 -1
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/config/index.js +3 -1
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/config/keychain.d.ts +27 -0
- package/dist/lib/config/keychain.d.ts.map +1 -0
- package/dist/lib/config/keychain.js +194 -0
- package/dist/lib/config/keychain.js.map +1 -0
- package/dist/lib/config/types.d.ts +12 -0
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/config/types.js +3 -2
- package/dist/lib/config/types.js.map +1 -1
- package/dist/lib/constants.d.ts +24 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +34 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/db/health.d.ts.map +1 -1
- package/dist/lib/db/health.js +14 -7
- package/dist/lib/db/health.js.map +1 -1
- package/dist/lib/debug.d.ts +17 -0
- package/dist/lib/debug.d.ts.map +1 -0
- package/dist/lib/debug.js +50 -0
- package/dist/lib/debug.js.map +1 -0
- package/dist/lib/format-helpers.d.ts +43 -0
- package/dist/lib/format-helpers.d.ts.map +1 -1
- package/dist/lib/format-helpers.js +85 -0
- package/dist/lib/format-helpers.js.map +1 -1
- package/dist/lib/local.d.ts.map +1 -1
- package/dist/lib/local.js +12 -8
- package/dist/lib/local.js.map +1 -1
- package/dist/lib/mode.d.ts.map +1 -1
- package/dist/lib/mode.js +2 -1
- package/dist/lib/mode.js.map +1 -1
- package/dist/lib/output.d.ts +10 -0
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +21 -0
- package/dist/lib/output.js.map +1 -1
- package/dist/services/auto-update-daemon.d.ts.map +1 -1
- package/dist/services/auto-update-daemon.js +10 -6
- package/dist/services/auto-update-daemon.js.map +1 -1
- package/dist/services/update-checker.d.ts.map +1 -1
- package/dist/services/update-checker.js +2 -1
- package/dist/services/update-checker.js.map +1 -1
- package/dist/services/update-installer.d.ts +8 -0
- package/dist/services/update-installer.d.ts.map +1 -1
- package/dist/services/update-installer.js +47 -18
- package/dist/services/update-installer.js.map +1 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/commands/kms.d.ts +0 -3
- package/dist/commands/kms.d.ts.map +0 -1
- package/dist/commands/kms.js +0 -555
- package/dist/commands/kms.js.map +0 -1
- package/dist/commands/plugin.d.ts +0 -8
- package/dist/commands/plugin.d.ts.map +0 -1
- package/dist/commands/plugin.js +0 -637
- package/dist/commands/plugin.js.map +0 -1
- package/dist/commands/ssh.d.ts +0 -3
- package/dist/commands/ssh.d.ts.map +0 -1
- package/dist/commands/ssh.js +0 -814
- package/dist/commands/ssh.js.map +0 -1
- package/dist/commands/sso.d.ts +0 -3
- package/dist/commands/sso.d.ts.map +0 -1
- package/dist/commands/sso.js +0 -486
- package/dist/commands/sso.js.map +0 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// Path: src/lib/config/keychain.ts
|
|
2
|
+
/**
|
|
3
|
+
* OS Keychain Integration
|
|
4
|
+
*
|
|
5
|
+
* Provides secure storage for sensitive data using the OS keychain.
|
|
6
|
+
* - macOS: Uses the `security` CLI to access Keychain
|
|
7
|
+
* - Linux: Uses `secret-tool` if available (GNOME Keyring)
|
|
8
|
+
* - Windows/Fallback: Returns null (caller should use encrypted file storage)
|
|
9
|
+
*/
|
|
10
|
+
import { execFileSync } from 'node:child_process';
|
|
11
|
+
import os from 'node:os';
|
|
12
|
+
const SERVICE_NAME = 'znvault-cli';
|
|
13
|
+
/**
|
|
14
|
+
* Check if keychain is available on this platform
|
|
15
|
+
*/
|
|
16
|
+
export function isKeychainAvailable() {
|
|
17
|
+
const platform = os.platform();
|
|
18
|
+
if (platform === 'darwin') {
|
|
19
|
+
// macOS - security command is always available
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (platform === 'linux') {
|
|
23
|
+
// Linux - check for secret-tool (GNOME Keyring)
|
|
24
|
+
try {
|
|
25
|
+
execFileSync('which', ['secret-tool'], {
|
|
26
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
});
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Windows and other platforms - not supported yet
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Store a secret in the OS keychain
|
|
40
|
+
*
|
|
41
|
+
* @param key - The key/account name for the secret
|
|
42
|
+
* @param value - The secret value to store
|
|
43
|
+
* @returns true if stored successfully, false if keychain not available
|
|
44
|
+
*/
|
|
45
|
+
export function keychainStore(key, value) {
|
|
46
|
+
const platform = os.platform();
|
|
47
|
+
if (platform === 'darwin') {
|
|
48
|
+
return macOSKeychainStore(key, value);
|
|
49
|
+
}
|
|
50
|
+
if (platform === 'linux') {
|
|
51
|
+
return linuxKeychainStore(key, value);
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retrieve a secret from the OS keychain
|
|
57
|
+
*
|
|
58
|
+
* @param key - The key/account name for the secret
|
|
59
|
+
* @returns The secret value, or null if not found or keychain not available
|
|
60
|
+
*/
|
|
61
|
+
export function keychainGet(key) {
|
|
62
|
+
const platform = os.platform();
|
|
63
|
+
if (platform === 'darwin') {
|
|
64
|
+
return macOSKeychainGet(key);
|
|
65
|
+
}
|
|
66
|
+
if (platform === 'linux') {
|
|
67
|
+
return linuxKeychainGet(key);
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Delete a secret from the OS keychain
|
|
73
|
+
*
|
|
74
|
+
* @param key - The key/account name for the secret
|
|
75
|
+
* @returns true if deleted successfully, false otherwise
|
|
76
|
+
*/
|
|
77
|
+
export function keychainDelete(key) {
|
|
78
|
+
const platform = os.platform();
|
|
79
|
+
if (platform === 'darwin') {
|
|
80
|
+
return macOSKeychainDelete(key);
|
|
81
|
+
}
|
|
82
|
+
if (platform === 'linux') {
|
|
83
|
+
return linuxKeychainDelete(key);
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
// --- macOS Implementation ---
|
|
88
|
+
function macOSKeychainStore(key, value) {
|
|
89
|
+
try {
|
|
90
|
+
// First try to delete any existing entry (ignore errors)
|
|
91
|
+
macOSKeychainDelete(key);
|
|
92
|
+
// Add new entry to keychain
|
|
93
|
+
execFileSync('security', [
|
|
94
|
+
'add-generic-password',
|
|
95
|
+
'-a', key, // Account name
|
|
96
|
+
'-s', SERVICE_NAME, // Service name
|
|
97
|
+
'-w', value, // Password/secret value
|
|
98
|
+
'-U', // Update if exists
|
|
99
|
+
], {
|
|
100
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
101
|
+
encoding: 'utf-8',
|
|
102
|
+
});
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function macOSKeychainGet(key) {
|
|
110
|
+
try {
|
|
111
|
+
const result = execFileSync('security', [
|
|
112
|
+
'find-generic-password',
|
|
113
|
+
'-a', key, // Account name
|
|
114
|
+
'-s', SERVICE_NAME, // Service name
|
|
115
|
+
'-w', // Output only the password
|
|
116
|
+
], {
|
|
117
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
118
|
+
encoding: 'utf-8',
|
|
119
|
+
});
|
|
120
|
+
return result.trim();
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function macOSKeychainDelete(key) {
|
|
127
|
+
try {
|
|
128
|
+
execFileSync('security', [
|
|
129
|
+
'delete-generic-password',
|
|
130
|
+
'-a', key, // Account name
|
|
131
|
+
'-s', SERVICE_NAME, // Service name
|
|
132
|
+
], {
|
|
133
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
134
|
+
encoding: 'utf-8',
|
|
135
|
+
});
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// --- Linux Implementation (GNOME Keyring via secret-tool) ---
|
|
143
|
+
function linuxKeychainStore(key, value) {
|
|
144
|
+
try {
|
|
145
|
+
// secret-tool reads the secret from stdin
|
|
146
|
+
execFileSync('secret-tool', [
|
|
147
|
+
'store',
|
|
148
|
+
'--label', `${SERVICE_NAME}: ${key}`,
|
|
149
|
+
'service', SERVICE_NAME,
|
|
150
|
+
'account', key,
|
|
151
|
+
], {
|
|
152
|
+
input: value,
|
|
153
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
154
|
+
encoding: 'utf-8',
|
|
155
|
+
});
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function linuxKeychainGet(key) {
|
|
163
|
+
try {
|
|
164
|
+
const result = execFileSync('secret-tool', [
|
|
165
|
+
'lookup',
|
|
166
|
+
'service', SERVICE_NAME,
|
|
167
|
+
'account', key,
|
|
168
|
+
], {
|
|
169
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
170
|
+
encoding: 'utf-8',
|
|
171
|
+
});
|
|
172
|
+
return result.trim();
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function linuxKeychainDelete(key) {
|
|
179
|
+
try {
|
|
180
|
+
execFileSync('secret-tool', [
|
|
181
|
+
'clear',
|
|
182
|
+
'service', SERVICE_NAME,
|
|
183
|
+
'account', key,
|
|
184
|
+
], {
|
|
185
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
186
|
+
encoding: 'utf-8',
|
|
187
|
+
});
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=keychain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../../src/lib/config/keychain.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,18 @@ export interface Profile {
|
|
|
19
19
|
apiKeyId?: string;
|
|
20
20
|
apiKeyName?: string;
|
|
21
21
|
autoUnsealSecret?: string;
|
|
22
|
+
sshUser?: string;
|
|
23
|
+
sshIdentity?: string;
|
|
24
|
+
sshBookmarks?: Record<string, SSHBookmark>;
|
|
25
|
+
}
|
|
26
|
+
export interface SSHBookmark {
|
|
27
|
+
host: string;
|
|
28
|
+
port?: number;
|
|
29
|
+
user?: string;
|
|
30
|
+
identity?: string;
|
|
31
|
+
principals?: string[];
|
|
32
|
+
description?: string;
|
|
33
|
+
createdAt: string;
|
|
22
34
|
}
|
|
23
35
|
export interface ConfigStore {
|
|
24
36
|
activeProfile: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAE5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
package/dist/lib/config/types.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Path: src/lib/config/types.ts
|
|
2
|
+
import { DEFAULT_VAULT_URL, DEFAULT_TIMEOUT_MS } from '../constants.js';
|
|
2
3
|
export const CONFIG_DEFAULTS = {
|
|
3
|
-
url:
|
|
4
|
+
url: DEFAULT_VAULT_URL,
|
|
4
5
|
insecure: false,
|
|
5
|
-
timeout:
|
|
6
|
+
timeout: DEFAULT_TIMEOUT_MS,
|
|
6
7
|
};
|
|
7
8
|
export const DEFAULT_PROFILE = 'default';
|
|
8
9
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAQhC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,kBAAkB;CACnB,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -16,6 +16,30 @@ export declare const REDIS_PING_TIMEOUT_MS = 5000;
|
|
|
16
16
|
export declare const REDIS_SENTINEL_TIMEOUT_MS = 3000;
|
|
17
17
|
/** Config cache TTL in milliseconds */
|
|
18
18
|
export declare const CONFIG_CACHE_TTL_MS = 5000;
|
|
19
|
+
/** TUI dashboard refresh interval in milliseconds */
|
|
20
|
+
export declare const TUI_REFRESH_INTERVAL_MS = 5000;
|
|
21
|
+
/** Update checker cache timeout in milliseconds */
|
|
22
|
+
export declare const UPDATE_CACHE_TIMEOUT_MS = 60000;
|
|
23
|
+
/** CLI update download timeout in milliseconds */
|
|
24
|
+
export declare const CLI_UPDATE_TIMEOUT_MS = 120000;
|
|
25
|
+
/** Systemd service check timeout in milliseconds */
|
|
26
|
+
export declare const SYSTEMD_CHECK_TIMEOUT_MS = 5000;
|
|
27
|
+
/** Agent health check timeout */
|
|
28
|
+
export declare const AGENT_HEALTH_TIMEOUT_MS = 10000;
|
|
29
|
+
/** Agent plugin update timeout */
|
|
30
|
+
export declare const AGENT_PLUGIN_UPDATE_TIMEOUT_MS = 60000;
|
|
31
|
+
/** Agent self-update timeout */
|
|
32
|
+
export declare const AGENT_UPDATE_TIMEOUT_MS = 120000;
|
|
33
|
+
/** Wait time between agent restart checks */
|
|
34
|
+
export declare const AGENT_RESTART_WAIT_MS = 1000;
|
|
35
|
+
/** Default wait time for agent restart (seconds) */
|
|
36
|
+
export declare const AGENT_RESTART_WAIT_SECONDS = 25;
|
|
37
|
+
/** Default vault server port */
|
|
38
|
+
export declare const DEFAULT_VAULT_PORT = 8443;
|
|
39
|
+
/** Default agent HTTP port */
|
|
40
|
+
export declare const DEFAULT_AGENT_PORT = 9100;
|
|
41
|
+
/** Default vault URL for local development */
|
|
42
|
+
export declare const DEFAULT_VAULT_URL = "https://localhost:8443";
|
|
19
43
|
/** Default page size for list operations */
|
|
20
44
|
export declare const DEFAULT_PAGE_SIZE = 100;
|
|
21
45
|
/** Maximum page size for list operations */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAMH,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,uDAAuD;AACvD,eAAO,MAAM,wBAAwB,QAAsB,CAAC;AAE5D,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAMH,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,uDAAuD;AACvD,eAAO,MAAM,wBAAwB,QAAsB,CAAC;AAE5D,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,mDAAmD;AACnD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAM7C,iCAAiC;AACjC,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,kCAAkC;AAClC,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAEpD,gCAAgC;AAChC,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,oDAAoD;AACpD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAM7C,gCAAgC;AAChC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,8BAA8B;AAC9B,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAMvC,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAM1D,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,4CAA4C;AAC5C,eAAO,MAAM,aAAa,OAAO,CAAC;AAMlC,qCAAqC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,gDAAgD;AAChD,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAMtC,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAMpD,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uDAAuD;AACvD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,0DAA0D;AAC1D,eAAO,MAAM,cAAc,IAAI,CAAC;AAMhC,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAMX,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAMX,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC"}
|
package/dist/lib/constants.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Extracted magic numbers for maintainability and consistency
|
|
5
5
|
*/
|
|
6
6
|
// ============================================================================
|
|
7
|
-
// Timeouts and Intervals
|
|
7
|
+
// Timeouts and Intervals (milliseconds)
|
|
8
8
|
// ============================================================================
|
|
9
9
|
/** Default HTTP request timeout in milliseconds */
|
|
10
10
|
export const DEFAULT_TIMEOUT_MS = 30000;
|
|
@@ -20,6 +20,39 @@ export const REDIS_PING_TIMEOUT_MS = 5000;
|
|
|
20
20
|
export const REDIS_SENTINEL_TIMEOUT_MS = 3000;
|
|
21
21
|
/** Config cache TTL in milliseconds */
|
|
22
22
|
export const CONFIG_CACHE_TTL_MS = 5000;
|
|
23
|
+
/** TUI dashboard refresh interval in milliseconds */
|
|
24
|
+
export const TUI_REFRESH_INTERVAL_MS = 5000;
|
|
25
|
+
/** Update checker cache timeout in milliseconds */
|
|
26
|
+
export const UPDATE_CACHE_TIMEOUT_MS = 60000;
|
|
27
|
+
/** CLI update download timeout in milliseconds */
|
|
28
|
+
export const CLI_UPDATE_TIMEOUT_MS = 120000;
|
|
29
|
+
/** Systemd service check timeout in milliseconds */
|
|
30
|
+
export const SYSTEMD_CHECK_TIMEOUT_MS = 5000;
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// Agent Communication Timeouts (milliseconds)
|
|
33
|
+
// ============================================================================
|
|
34
|
+
/** Agent health check timeout */
|
|
35
|
+
export const AGENT_HEALTH_TIMEOUT_MS = 10000;
|
|
36
|
+
/** Agent plugin update timeout */
|
|
37
|
+
export const AGENT_PLUGIN_UPDATE_TIMEOUT_MS = 60000;
|
|
38
|
+
/** Agent self-update timeout */
|
|
39
|
+
export const AGENT_UPDATE_TIMEOUT_MS = 120000;
|
|
40
|
+
/** Wait time between agent restart checks */
|
|
41
|
+
export const AGENT_RESTART_WAIT_MS = 1000;
|
|
42
|
+
/** Default wait time for agent restart (seconds) */
|
|
43
|
+
export const AGENT_RESTART_WAIT_SECONDS = 25;
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// Network Ports
|
|
46
|
+
// ============================================================================
|
|
47
|
+
/** Default vault server port */
|
|
48
|
+
export const DEFAULT_VAULT_PORT = 8443;
|
|
49
|
+
/** Default agent HTTP port */
|
|
50
|
+
export const DEFAULT_AGENT_PORT = 9100;
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Default URLs
|
|
53
|
+
// ============================================================================
|
|
54
|
+
/** Default vault URL for local development */
|
|
55
|
+
export const DEFAULT_VAULT_URL = 'https://localhost:8443';
|
|
23
56
|
// ============================================================================
|
|
24
57
|
// Pagination
|
|
25
58
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B;;;GAGG;AAEH,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/lib/db/health.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/lib/db/health.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,qBAAa,gBAAiB,SAAQ,YAAY;IAC1C,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAoCjC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;YAsC/B,eAAe;YAmBf,iBAAiB;YAgCjB,cAAc;YA0Dd,uBAAuB;CAwCtC"}
|
package/dist/lib/db/health.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Path: src/lib/db/health.ts
|
|
2
2
|
import { REDIS_PING_TIMEOUT_MS, REDIS_SENTINEL_TIMEOUT_MS } from '../constants.js';
|
|
3
3
|
import { BaseDBClient } from './client.js';
|
|
4
|
+
import { createDebugLogger } from '../debug.js';
|
|
5
|
+
const log = createDebugLogger('db-health');
|
|
4
6
|
export class HealthOperations extends BaseDBClient {
|
|
5
7
|
async health() {
|
|
6
8
|
await this.connect();
|
|
@@ -52,8 +54,9 @@ export class HealthOperations extends BaseDBClient {
|
|
|
52
54
|
lastHeartbeat: n.last_heartbeat.toISOString(),
|
|
53
55
|
}));
|
|
54
56
|
}
|
|
55
|
-
catch {
|
|
57
|
+
catch (err) {
|
|
56
58
|
// Table might not exist in non-HA setups
|
|
59
|
+
log.silenced('clusterStatus:queryHaNodes', err);
|
|
57
60
|
}
|
|
58
61
|
const leader = nodes.find(n => n.isLeader);
|
|
59
62
|
return {
|
|
@@ -78,8 +81,8 @@ export class HealthOperations extends BaseDBClient {
|
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
|
-
catch {
|
|
82
|
-
|
|
84
|
+
catch (err) {
|
|
85
|
+
log.silenced('getVaultVersion:readManifest', err);
|
|
83
86
|
}
|
|
84
87
|
return process.env.npm_package_version ?? '1.2.9';
|
|
85
88
|
}
|
|
@@ -101,7 +104,8 @@ export class HealthOperations extends BaseDBClient {
|
|
|
101
104
|
replicationLag: replicas.length > 0 ? 0 : undefined,
|
|
102
105
|
};
|
|
103
106
|
}
|
|
104
|
-
catch {
|
|
107
|
+
catch (err) {
|
|
108
|
+
log.silenced('getPostgresStatus', err);
|
|
105
109
|
return { status: 'ok' };
|
|
106
110
|
}
|
|
107
111
|
}
|
|
@@ -114,7 +118,8 @@ export class HealthOperations extends BaseDBClient {
|
|
|
114
118
|
const result = await this.execAsync(`redis-cli -u "${process.env.REDIS_URL}" PING 2>/dev/null`, REDIS_PING_TIMEOUT_MS);
|
|
115
119
|
return { status: result.trim() === 'PONG' ? 'ok' : 'error' };
|
|
116
120
|
}
|
|
117
|
-
catch {
|
|
121
|
+
catch (err) {
|
|
122
|
+
log.silenced('getRedisStatus:pingRedis', err);
|
|
118
123
|
return { status: 'error' };
|
|
119
124
|
}
|
|
120
125
|
}
|
|
@@ -144,7 +149,8 @@ export class HealthOperations extends BaseDBClient {
|
|
|
144
149
|
master: masterHost || undefined,
|
|
145
150
|
};
|
|
146
151
|
}
|
|
147
|
-
catch {
|
|
152
|
+
catch (err) {
|
|
153
|
+
log.silenced('getRedisStatus:querySentinel', err);
|
|
148
154
|
return { status: 'error' };
|
|
149
155
|
}
|
|
150
156
|
}
|
|
@@ -169,7 +175,8 @@ export class HealthOperations extends BaseDBClient {
|
|
|
169
175
|
const leaderNodeId = leaderResult.trim() || null;
|
|
170
176
|
return { nodeCount, leaderNodeId };
|
|
171
177
|
}
|
|
172
|
-
catch {
|
|
178
|
+
catch (err) {
|
|
179
|
+
log.silenced('getClusterInfoFromRedis', err);
|
|
173
180
|
return { nodeCount: 3, leaderNodeId: null };
|
|
174
181
|
}
|
|
175
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/lib/db/health.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAO7B,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAgB,qBAAqB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACzD,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC;YACpC,QAAQ,GAAG,WAAW,CAAC,YAAY,KAAK,MAAM,CAAC;QACjD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAChE,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACrE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;gBACd,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,QAAQ;gBACR,WAAW;aACZ,CAAC,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;QAEnD,IAAI,KAAK,GAAkB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAY;;;;OAI3C,CAAC,CAAC;YAEH,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,EAAE,CAAC,CAAC,OAAO;gBACjB,IAAI,EAAE,CAAC,CAAC,eAAe;gBACvB,IAAI,EAAE,CAAC,CAAC,eAAe;gBACvB,QAAQ,EAAE,CAAC,CAAC,SAAS;gBACrB,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS;gBACjC,aAAa,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE;aAC9C,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/lib/db/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log a debug message (only when ZNVAULT_DEBUG is enabled)
|
|
3
|
+
*/
|
|
4
|
+
export declare function debug(context: string, message: string, error?: unknown): void;
|
|
5
|
+
/**
|
|
6
|
+
* Log a silenced error (only when ZNVAULT_DEBUG is enabled)
|
|
7
|
+
* Use this in catch blocks that intentionally ignore errors
|
|
8
|
+
*/
|
|
9
|
+
export declare function debugSilencedError(context: string, operation: string, error: unknown): void;
|
|
10
|
+
/**
|
|
11
|
+
* Create a scoped debug logger for a specific module
|
|
12
|
+
*/
|
|
13
|
+
export declare function createDebugLogger(context: string): {
|
|
14
|
+
log: (message: string, error?: unknown) => void;
|
|
15
|
+
silenced: (operation: string, error: unknown) => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/lib/debug.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAW7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAW3F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAClD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD,CAKA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Path: src/lib/debug.ts
|
|
2
|
+
/**
|
|
3
|
+
* Debug logging utility for silent catch blocks
|
|
4
|
+
*
|
|
5
|
+
* Only logs when ZNVAULT_DEBUG=1 or ZNVAULT_DEBUG=true environment variable is set.
|
|
6
|
+
* This allows tracing silenced errors without affecting production performance.
|
|
7
|
+
*/
|
|
8
|
+
const isDebugEnabled = () => {
|
|
9
|
+
const debug = process.env.ZNVAULT_DEBUG;
|
|
10
|
+
return debug === '1' || debug === 'true';
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Log a debug message (only when ZNVAULT_DEBUG is enabled)
|
|
14
|
+
*/
|
|
15
|
+
export function debug(context, message, error) {
|
|
16
|
+
if (!isDebugEnabled())
|
|
17
|
+
return;
|
|
18
|
+
const timestamp = new Date().toISOString();
|
|
19
|
+
const errorInfo = error instanceof Error
|
|
20
|
+
? `: ${error.message}`
|
|
21
|
+
: error !== undefined
|
|
22
|
+
? `: ${String(error)}`
|
|
23
|
+
: '';
|
|
24
|
+
console.error(`[DEBUG ${timestamp}] [${context}] ${message}${errorInfo}`);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Log a silenced error (only when ZNVAULT_DEBUG is enabled)
|
|
28
|
+
* Use this in catch blocks that intentionally ignore errors
|
|
29
|
+
*/
|
|
30
|
+
export function debugSilencedError(context, operation, error) {
|
|
31
|
+
if (!isDebugEnabled())
|
|
32
|
+
return;
|
|
33
|
+
const timestamp = new Date().toISOString();
|
|
34
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
35
|
+
const stack = error instanceof Error ? error.stack : undefined;
|
|
36
|
+
console.error(`[DEBUG ${timestamp}] [${context}] Silenced error in ${operation}: ${errorMessage}`);
|
|
37
|
+
if (stack) {
|
|
38
|
+
console.error(`[DEBUG ${timestamp}] [${context}] Stack: ${stack.split('\n').slice(1, 4).join('\n')}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a scoped debug logger for a specific module
|
|
43
|
+
*/
|
|
44
|
+
export function createDebugLogger(context) {
|
|
45
|
+
return {
|
|
46
|
+
log: (message, error) => debug(context, message, error),
|
|
47
|
+
silenced: (operation, error) => debugSilencedError(context, operation, error),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/lib/debug.ts"],"names":[],"mappings":"AAAA,yBAAyB;AAEzB;;;;;GAKG;AAEH,MAAM,cAAc,GAAG,GAAY,EAAE;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,OAAe,EAAE,KAAe;IACrE,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAE9B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,YAAY,KAAK;QACtC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE;QACtB,CAAC,CAAC,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,OAAO,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAiB,EAAE,KAAc;IACnF,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAE9B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,OAAO,uBAAuB,SAAS,KAAK,YAAY,EAAE,CAAC,CAAC;IACnG,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,OAAO,YAAY,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAI/C,OAAO;QACL,GAAG,EAAE,CAAC,OAAe,EAAE,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QACzE,QAAQ,EAAE,CAAC,SAAiB,EAAE,KAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;KAC/F,CAAC;AACJ,CAAC"}
|
|
@@ -60,4 +60,47 @@ export declare function formatNumber(value: number | undefined | null): string;
|
|
|
60
60
|
* Format a percentage value
|
|
61
61
|
*/
|
|
62
62
|
export declare function formatPercent(value: number | undefined | null, decimals?: number): string;
|
|
63
|
+
/**
|
|
64
|
+
* Format TTL in seconds as compact human-readable string
|
|
65
|
+
* Examples: 3600 -> "1h", 86400 -> "1d", 1800 -> "30m"
|
|
66
|
+
* Used for SSH certificates, KMS keys, tokens, etc.
|
|
67
|
+
*/
|
|
68
|
+
export declare function formatTtl(seconds: number | undefined | null): string;
|
|
69
|
+
/**
|
|
70
|
+
* Parse TTL string to seconds
|
|
71
|
+
* Examples: "8h" -> 28800, "1d" -> 86400, "30m" -> 1800
|
|
72
|
+
*/
|
|
73
|
+
export declare function parseTtl(ttl: string): number;
|
|
74
|
+
/**
|
|
75
|
+
* Truncate an ID or alias for display
|
|
76
|
+
*/
|
|
77
|
+
export declare function truncateId(id: string | undefined | null, maxLen?: number): string;
|
|
78
|
+
/**
|
|
79
|
+
* Truncate an ID to 8 characters (common table display pattern)
|
|
80
|
+
* Example: "abc123def456" -> "abc123de"
|
|
81
|
+
*/
|
|
82
|
+
export declare function shortId(id: string | undefined | null): string;
|
|
83
|
+
/**
|
|
84
|
+
* Format active/enabled status for display
|
|
85
|
+
* Example: true -> "Enabled", false -> "Disabled"
|
|
86
|
+
*/
|
|
87
|
+
export declare function formatActiveStatus(isActive: boolean | undefined | null): string;
|
|
88
|
+
/**
|
|
89
|
+
* Format pagination info for list commands
|
|
90
|
+
* Examples:
|
|
91
|
+
* - "Total: 50 item(s)" (when no more items)
|
|
92
|
+
* - "Total: 50 item(s) (more available)" (when hasMore)
|
|
93
|
+
* - "Showing 20 of 50" (alternative format)
|
|
94
|
+
*/
|
|
95
|
+
export declare function formatPaginationInfo(pagination: {
|
|
96
|
+
total: number;
|
|
97
|
+
hasMore: boolean;
|
|
98
|
+
}, itemName?: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* Format pagination info in "Showing X of Y" style
|
|
101
|
+
*/
|
|
102
|
+
export declare function formatPaginationShowing(shown: number, pagination: {
|
|
103
|
+
total: number;
|
|
104
|
+
hasMore: boolean;
|
|
105
|
+
}): string;
|
|
63
106
|
//# sourceMappingURL=format-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/format-helpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAa5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAajF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAYpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAQtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAkBzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmB5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAyBzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAI,GAAG,MAAM,CAInF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAI,GAAG,MAAM,CAGpF"}
|
|
1
|
+
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/format-helpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAa5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAajF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAYpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAQtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAkBzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmB5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAyBzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAI,GAAG,MAAM,CAInF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAI,GAAG,MAAM,CAGpF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAMpE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,SAAK,GAAG,MAAM,CAI7E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAG/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAC/C,QAAQ,SAAS,GAChB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9C,MAAM,CAKR"}
|