@nightlybuildgroup/vault 1.0.1 → 1.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/package.json +1 -1
- package/src/cli.js +1 -1
- package/src/commands/doctor.js +20 -1
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ Commands:
|
|
|
7
7
|
get Fetch a secret value (e.g. nbg-pw get "GitHub" --field password)
|
|
8
8
|
serve Start a local bw API daemon (unlocked) for fast repeated reads
|
|
9
9
|
status Show config + auth state (no secret values)
|
|
10
|
-
doctor Diagnose bw / Keychain / server connectivity
|
|
10
|
+
doctor Diagnose bw / Keychain / server connectivity (--fix resets a wedged bw session)
|
|
11
11
|
logout Lock the session (bw logout)
|
|
12
12
|
reset Log out and delete the stored Keychain item
|
|
13
13
|
`;
|
package/src/commands/doctor.js
CHANGED
|
@@ -13,13 +13,14 @@ async function defaultFetchUrl(url) {
|
|
|
13
13
|
export async function runDoctor(args, deps) {
|
|
14
14
|
const { keychain, bw, out } = deps;
|
|
15
15
|
const fetchUrl = deps.fetchUrl ?? defaultFetchUrl;
|
|
16
|
+
const fix = (args ?? []).includes('--fix');
|
|
16
17
|
let failed = false;
|
|
17
18
|
const line = (label, ok, hint) => {
|
|
18
19
|
out(` ${label} [${ok ? 'OK' : 'FAIL'}]${ok ? '' : ` -> ${hint}`}\n`);
|
|
19
20
|
if (!ok) failed = true;
|
|
20
21
|
};
|
|
21
22
|
|
|
22
|
-
out(
|
|
23
|
+
out(`nbg-pw doctor${fix ? ' --fix' : ''}\n`);
|
|
23
24
|
|
|
24
25
|
const version = await bw.bwVersion();
|
|
25
26
|
line('bw installed', !!version, 'brew install bitwarden-cli');
|
|
@@ -34,6 +35,24 @@ export async function runDoctor(args, deps) {
|
|
|
34
35
|
line('server reachable', false, 'no stored server URL — run "nbg-pw setup"');
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
// bw session state. A leftover logged-in ("locked"/"unlocked") account can
|
|
39
|
+
// wedge later commands (e.g. "Logout required before server config update").
|
|
40
|
+
// `--fix` resets bw to a clean baseline by logging out; without it we only
|
|
41
|
+
// report, since a logged-in state is harmless on its own.
|
|
42
|
+
if (version) {
|
|
43
|
+
let state = 'unknown';
|
|
44
|
+
try { state = (await bw.status()).status; } catch { /* leave as unknown */ }
|
|
45
|
+
const loggedIn = state === 'locked' || state === 'unlocked';
|
|
46
|
+
if (loggedIn && fix) {
|
|
47
|
+
await bw.logout();
|
|
48
|
+
out(` bw session [FIXED] -> was "${state}"; ran bw logout, now a clean baseline\n`);
|
|
49
|
+
} else if (loggedIn) {
|
|
50
|
+
out(` bw session [info] -> logged in ("${state}"); run "nbg-pw doctor --fix" to reset\n`);
|
|
51
|
+
} else {
|
|
52
|
+
out(` bw session [OK] (${state})\n`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
37
56
|
out(failed ? '\nSome checks failed.\n' : '\nAll checks passed.\n');
|
|
38
57
|
return failed ? 1 : 0;
|
|
39
58
|
}
|