@zincapp/znvault-cli 4.24.5 → 4.25.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 (54) hide show
  1. package/dist/commands/auth.d.ts.map +1 -1
  2. package/dist/commands/auth.js +68 -7
  3. package/dist/commands/auth.js.map +1 -1
  4. package/dist/commands/completion.d.ts.map +1 -1
  5. package/dist/commands/completion.js +31 -3
  6. package/dist/commands/completion.js.map +1 -1
  7. package/dist/commands/emergency.d.ts.map +1 -1
  8. package/dist/commands/emergency.js +1 -0
  9. package/dist/commands/emergency.js.map +1 -1
  10. package/dist/commands/secret/create.d.ts.map +1 -1
  11. package/dist/commands/secret/create.js +32 -3
  12. package/dist/commands/secret/create.js.map +1 -1
  13. package/dist/commands/secret/grants.d.ts +3 -0
  14. package/dist/commands/secret/grants.d.ts.map +1 -0
  15. package/dist/commands/secret/grants.js +117 -0
  16. package/dist/commands/secret/grants.js.map +1 -0
  17. package/dist/commands/secret/index.d.ts.map +1 -1
  18. package/dist/commands/secret/index.js +2 -0
  19. package/dist/commands/secret/index.js.map +1 -1
  20. package/dist/commands/secret/input-policy.d.ts +3 -0
  21. package/dist/commands/secret/input-policy.d.ts.map +1 -0
  22. package/dist/commands/secret/input-policy.js +9 -0
  23. package/dist/commands/secret/input-policy.js.map +1 -0
  24. package/dist/commands/secret/patch.d.ts.map +1 -1
  25. package/dist/commands/secret/patch.js +7 -0
  26. package/dist/commands/secret/patch.js.map +1 -1
  27. package/dist/commands/secret/rotate.d.ts.map +1 -1
  28. package/dist/commands/secret/rotate.js +22 -3
  29. package/dist/commands/secret/rotate.js.map +1 -1
  30. package/dist/commands/secret/types.d.ts +6 -0
  31. package/dist/commands/secret/types.d.ts.map +1 -1
  32. package/dist/commands/secret/update.d.ts.map +1 -1
  33. package/dist/commands/secret/update.js +37 -4
  34. package/dist/commands/secret/update.js.map +1 -1
  35. package/dist/commands/user.d.ts.map +1 -1
  36. package/dist/commands/user.js +43 -2
  37. package/dist/commands/user.js.map +1 -1
  38. package/dist/index.js +8 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/client/http.d.ts +5 -1
  41. package/dist/lib/client/http.d.ts.map +1 -1
  42. package/dist/lib/client/http.js +59 -1
  43. package/dist/lib/client/http.js.map +1 -1
  44. package/dist/lib/client/types.d.ts +1 -0
  45. package/dist/lib/client/types.d.ts.map +1 -1
  46. package/dist/lib/client/users.d.ts +2 -0
  47. package/dist/lib/client/users.d.ts.map +1 -1
  48. package/dist/lib/client/users.js.map +1 -1
  49. package/dist/lib/db/emergency.d.ts.map +1 -1
  50. package/dist/lib/db/emergency.js +22 -3
  51. package/dist/lib/db/emergency.js.map +1 -1
  52. package/dist/types/index.d.ts +2 -0
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,117 @@
1
+ import { client } from '../../lib/client.js';
2
+ import * as output from '../../lib/output.js';
3
+ import { promptConfirm } from '../../lib/prompts.js';
4
+ export function registerGrantCommands(secretCmd) {
5
+ secretCmd.command('recover <secretId>')
6
+ .description('Decrypt through enabled tenant-root recovery')
7
+ .option('--json', 'Output as JSON')
8
+ .action(async (secretId, options) => {
9
+ try {
10
+ const result = await client.post(`/v1/secrets/${encodeURIComponent(secretId)}/root-recover`, {});
11
+ if (options.json) {
12
+ output.json(result);
13
+ return;
14
+ }
15
+ output.json(result.data);
16
+ }
17
+ catch (error) {
18
+ output.error(error.message);
19
+ process.exit(1);
20
+ }
21
+ });
22
+ secretCmd.command('recovery')
23
+ .description('Show or change tenant root recovery for future User-Sealed Secrets')
24
+ .option('--enable', 'Enable root recovery')
25
+ .option('--disable', 'Disable root recovery and remove existing recovery envelopes')
26
+ .option('-y, --yes', 'Confirm removal of recovery envelopes')
27
+ .option('--json', 'Output as JSON')
28
+ .action(async (options) => {
29
+ try {
30
+ if (options.enable && options.disable)
31
+ throw new Error('Choose either --enable or --disable');
32
+ if (options.disable && !options.yes) {
33
+ const confirmed = await promptConfirm('Disable tenant-root recovery and permanently remove its existing recovery envelopes?', false);
34
+ if (!confirmed) {
35
+ output.info('Cancelled.');
36
+ return;
37
+ }
38
+ }
39
+ const result = options.enable || options.disable
40
+ ? await client.put('/v1/tenant/user-sealed-settings', {
41
+ rootRecoveryEnabled: options.enable === true,
42
+ })
43
+ : await client.get('/v1/tenant/user-sealed-settings');
44
+ if (options.json) {
45
+ output.json(result);
46
+ return;
47
+ }
48
+ output.info(`Tenant root recovery: ${result.enabled ? 'enabled' : 'disabled'}`);
49
+ }
50
+ catch (error) {
51
+ output.error(error.message);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ secretCmd.command('grants <secretId>')
56
+ .description('List users assigned to a User-Sealed Secret')
57
+ .option('--json', 'Output as JSON')
58
+ .action(async (secretId, options) => {
59
+ try {
60
+ const result = await client.get(`/v1/secrets/${encodeURIComponent(secretId)}/user-grants`);
61
+ if (options.json) {
62
+ output.json(result);
63
+ return;
64
+ }
65
+ if (result.items.length === 0) {
66
+ output.info('No users are assigned.');
67
+ return;
68
+ }
69
+ output.table(['User', 'User ID', 'Grant status', 'Granted'], result.items.map((grant) => [grant.username, grant.userId, grant.status, grant.createdAt]));
70
+ output.info(`Tenant-root recovery for this secret: ${result.rootRecoveryAvailable ? 'available' : 'unavailable'}`);
71
+ }
72
+ catch (error) {
73
+ output.error(error.message);
74
+ process.exit(1);
75
+ }
76
+ });
77
+ secretCmd.command('grant <secretId>')
78
+ .description('Assign a user to a User-Sealed Secret')
79
+ .requiredOption('--user <userId>', 'User ID to assign')
80
+ .action(async (secretId, options) => {
81
+ try {
82
+ await client.post(`/v1/secrets/${encodeURIComponent(secretId)}/user-grants`, { userId: options.user });
83
+ output.success(`User ${options.user} assigned.`);
84
+ }
85
+ catch (error) {
86
+ output.error(error.message);
87
+ process.exit(1);
88
+ }
89
+ });
90
+ secretCmd.command('recover-grant <secretId>')
91
+ .description('Explicitly recover as tenant root and reissue a user grant')
92
+ .requiredOption('--user <userId>', 'User ID to assign')
93
+ .action(async (secretId, options) => {
94
+ try {
95
+ await client.post(`/v1/secrets/${encodeURIComponent(secretId)}/root-recover/user-grants`, { userId: options.user });
96
+ output.success(`User ${options.user} assigned through audited tenant-root recovery.`);
97
+ }
98
+ catch (error) {
99
+ output.error(error.message);
100
+ process.exit(1);
101
+ }
102
+ });
103
+ secretCmd.command('revoke <secretId>')
104
+ .description('Remove a user from a User-Sealed Secret')
105
+ .requiredOption('--user <userId>', 'User ID to remove')
106
+ .action(async (secretId, options) => {
107
+ try {
108
+ await client.delete(`/v1/secrets/${encodeURIComponent(secretId)}/user-grants/${encodeURIComponent(options.user)}`);
109
+ output.success(`User ${options.user} removed.`);
110
+ }
111
+ catch (error) {
112
+ output.error(error.message);
113
+ process.exit(1);
114
+ }
115
+ });
116
+ }
117
+ //# sourceMappingURL=grants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../../src/commands/secret/grants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB7D;AAGD,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmB7D;AAGD,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -10,6 +10,7 @@ import { registerHistoryCommand } from './history.js';
10
10
  import { registerCopyCommand } from './copy.js';
11
11
  import { registerPatchCommand } from './patch.js';
12
12
  import { registerCanDecryptCommand } from './can-decrypt.js';
13
+ import { registerGrantCommands } from './grants.js';
13
14
  // Help text for secret identifier format
14
15
  const SECRET_ID_HELP = `
15
16
  Secret Identifier Formats:
@@ -45,6 +46,7 @@ export function registerSecretCommands(program) {
45
46
  registerCopyCommand(secretCmd);
46
47
  registerPatchCommand(secretCmd);
47
48
  registerCanDecryptCommand(secretCmd);
49
+ registerGrantCommands(secretCmd);
48
50
  }
49
51
  // Re-export types for external use
50
52
  export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/secret/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAUrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,yCAAyC;AACzC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAExC,2BAA2B;IAC3B,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC/B,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9B,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC/B,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChC,yBAAyB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/secret/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAUrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAElD,yCAAyC;AACzC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAExC,2BAA2B;IAC3B,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC/B,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9B,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC/B,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACrC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function interactiveSecretValuePromptType(protection: string | undefined, standardType: 'input' | 'editor'): 'input' | 'editor' | 'password';
2
+ export declare function supportsArgvPatch(protection: string | undefined): boolean;
3
+ //# sourceMappingURL=input-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-policy.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/input-policy.ts"],"names":[],"mappings":"AAAA,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAC/B,OAAO,GAAG,QAAQ,GAAG,UAAU,CAIjC;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,9 @@
1
+ export function interactiveSecretValuePromptType(protection, standardType) {
2
+ return protection === 'user-session' || protection === 'USER_SESSION_ONLY'
3
+ ? 'password'
4
+ : standardType;
5
+ }
6
+ export function supportsArgvPatch(protection) {
7
+ return protection !== 'user-session' && protection !== 'USER_SESSION_ONLY';
8
+ }
9
+ //# sourceMappingURL=input-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-policy.js","sourceRoot":"","sources":["../../../src/commands/secret/input-policy.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gCAAgC,CAC9C,UAA8B,EAC9B,YAAgC;IAEhC,OAAO,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,mBAAmB;QACxE,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,YAAY,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC9D,OAAO,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,mBAAmB,CAAC;AAC7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/patch.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+DzC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA+N7D"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/patch.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEzC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAqO7D"}
@@ -6,6 +6,7 @@ import { SUPPORTED_FORMATS, PatchError, } from './patch/types.js';
6
6
  import { parseSetArgs, parseUnsetArgs, applyOperations, deepClone, } from './patch/operations.js';
7
7
  import { getParser, detectFormat } from './patch/parsers.js';
8
8
  import { generateDiff, displayDiff, displayOperationsSummary } from './patch/diff.js';
9
+ import { supportsArgvPatch } from './input-policy.js';
9
10
  /**
10
11
  * Extract the raw content from a decrypted secret's data
11
12
  * Secrets can store data in different formats:
@@ -106,6 +107,12 @@ Value Types:
106
107
  try {
107
108
  // Resolve alias to UUID
108
109
  id = await resolveSecretId(idOrAlias);
110
+ const metadata = await client.get(`/v1/secrets/${id}/meta`);
111
+ if (!supportsArgvPatch(metadata.protectionMode)) {
112
+ spinner.stop();
113
+ output.error('secret patch is disabled for User-Sealed Secrets in v1; use secret update --data-stdin or the masked interactive prompt.');
114
+ process.exit(1);
115
+ }
109
116
  spinner.text = 'Decrypting secret...';
110
117
  // Decrypt current secret RAW (no reference resolution) so patching a
111
118
  // reference secret never bakes a resolved snapshot over its template.
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/commands/secret/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/commands/secret/patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/rotate.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA2E9D"}
1
+ {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/rotate.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA0F9D"}
@@ -3,17 +3,21 @@ import inquirer from 'inquirer';
3
3
  import { client } from '../../lib/client.js';
4
4
  import * as output from '../../lib/output.js';
5
5
  import { resolveSecretId } from './resolve.js';
6
+ import { readStdinUtf8 } from '../../lib/stdin.js';
7
+ import { interactiveSecretValuePromptType } from './input-policy.js';
6
8
  export function registerRotateCommand(secretCmd) {
7
9
  secretCmd
8
10
  .command('rotate <id-or-alias>')
9
11
  .description('Rotate secret (supports UUID or tenant/alias format)')
10
12
  .option('--json', 'Output as JSON')
13
+ .option('--data-stdin', 'Read replacement JSON data from stdin')
11
14
  .action(async (idOrAlias, options) => {
12
15
  const spinner = output.spinner('Resolving secret...').start();
13
16
  try {
14
17
  // Resolve alias to UUID if needed
15
18
  const id = await resolveSecretId(idOrAlias);
16
19
  spinner.text = 'Fetching current secret...';
20
+ const metadata = await client.get(`/v1/secrets/${id}/meta`);
17
21
  // Pre-fetch the RAW template so rotating a reference secret never bakes a
18
22
  // resolved snapshot into the new version. Byte-identical for others.
19
23
  const current = await client.post(`/v1/secrets/${id}/decrypt?resolve=false`, {});
@@ -21,7 +25,20 @@ export function registerRotateCommand(secretCmd) {
21
25
  console.log(`Current secret: ${current.alias} (v${current.version})`);
22
26
  // Prompt for new data
23
27
  let newData;
24
- if (current.type === 'credential') {
28
+ if (options.dataStdin) {
29
+ try {
30
+ const parsed = JSON.parse(await readStdinUtf8());
31
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
32
+ throw new Error('secret data must be a JSON object');
33
+ }
34
+ newData = parsed;
35
+ }
36
+ catch (error) {
37
+ output.error(`Invalid JSON received by --data-stdin: ${error.message}`);
38
+ process.exit(1);
39
+ }
40
+ }
41
+ else if (current.type === 'credential') {
25
42
  const answers = await inquirer.prompt([
26
43
  {
27
44
  type: 'password',
@@ -39,10 +56,12 @@ export function registerRotateCommand(secretCmd) {
39
56
  else {
40
57
  const { dataJson } = await inquirer.prompt([
41
58
  {
42
- type: 'editor',
59
+ type: interactiveSecretValuePromptType(metadata.protectionMode, 'editor'),
43
60
  name: 'dataJson',
44
61
  message: 'Enter new data (JSON):',
45
- default: JSON.stringify(current.data, null, 2),
62
+ ...(metadata.protectionMode === 'USER_SESSION_ONLY'
63
+ ? { mask: '*' }
64
+ : { default: JSON.stringify(current.data, null, 2) }),
46
65
  },
47
66
  ]);
48
67
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../../src/commands/secret/rotate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../../src/commands/secret/rotate.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAQtC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,gCAAgC,EAAC,MAAM,mBAAmB,CAAC;AAEnE,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,SAAS;SACN,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAAsB,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9D,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,eAAe,EAAE,OAAO,CAAC,CAAC;YAE5E,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAC/B,eAAe,EAAE,wBAAwB,EACzC,EAAE,CACH,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;YAEtE,sBAAsB;YACtB,IAAI,OAAgC,CAAC;YAErC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;oBAC1D,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3E,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO,GAAG,MAAiC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,0CAA2C,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;oBAC1D;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,eAAe;wBACxB,IAAI,EAAE,GAAG;wBACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,sBAAsB;qBACxE;iBACF,CAAC,CAAC;gBACH,OAAO,GAAG;oBACR,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;oBAC/D;wBACE,IAAI,EAAE,gCAAgC,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;wBACzE,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,wBAAwB;wBACjC,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,mBAAmB;4BACjD,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC;4BACb,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAC,CAAC;qBACtD;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YAEnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAiB,eAAe,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAChG,aAAa,CAAC,IAAI,EAAE,CAAC;YAErB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -25,6 +25,8 @@ export interface SecretMetadata {
25
25
  referencesEnabled?: boolean;
26
26
  /** Server-derived: the secret currently carries ${ref:...} tokens or is a link. Additive on /meta (undefined on old servers). */
27
27
  hasReferences?: boolean;
28
+ protectionMode?: 'STANDARD' | 'USER_SESSION_ONLY';
29
+ grantCount?: number;
28
30
  }
29
31
  export interface DecryptedSecret extends SecretMetadata {
30
32
  data: Record<string, unknown>;
@@ -74,6 +76,8 @@ export interface CreateOptions {
74
76
  enableReferences?: boolean;
75
77
  link?: string;
76
78
  linkField?: string;
79
+ protection?: 'standard' | 'user-session';
80
+ grantUser?: string[];
77
81
  }
78
82
  export interface SuggestResult {
79
83
  alias: string;
@@ -93,6 +97,7 @@ export interface UpdateOptions {
93
97
  expires?: string;
94
98
  json?: boolean;
95
99
  data?: string;
100
+ dataStdin?: boolean;
96
101
  enableReferences?: boolean;
97
102
  }
98
103
  export interface DeleteOptions {
@@ -100,6 +105,7 @@ export interface DeleteOptions {
100
105
  }
101
106
  export interface RotateOptions {
102
107
  json?: boolean;
108
+ dataStdin?: boolean;
103
109
  }
104
110
  export interface HistoryOptions {
105
111
  json?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/update.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAoI9D"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/secret/update.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAiK9D"}
@@ -3,6 +3,8 @@ import inquirer from 'inquirer';
3
3
  import { client } from '../../lib/client.js';
4
4
  import * as output from '../../lib/output.js';
5
5
  import { resolveSecretId } from './resolve.js';
6
+ import { readStdinUtf8 } from '../../lib/stdin.js';
7
+ import { interactiveSecretValuePromptType } from './input-policy.js';
6
8
  export function registerUpdateCommand(secretCmd) {
7
9
  secretCmd
8
10
  .command('update <id-or-alias>')
@@ -12,6 +14,7 @@ export function registerUpdateCommand(secretCmd) {
12
14
  .option('--expires <datetime>', 'Natural expiration (ISO 8601)')
13
15
  .option('--json', 'Output as JSON')
14
16
  .option('--data <json>', 'New data as JSON (non-interactive)')
17
+ .option('--data-stdin', 'Read new JSON data from stdin')
15
18
  .option('--enable-references', 'Opt this secret in to ${ref:...} reference resolution')
16
19
  .option('--no-enable-references', 'Disable reference resolution (turn opt-in off)')
17
20
  .action(async (idOrAlias, options) => {
@@ -25,8 +28,38 @@ export function registerUpdateCommand(secretCmd) {
25
28
  output.error(error.message);
26
29
  process.exit(1);
27
30
  }
31
+ let metadata;
32
+ try {
33
+ metadata = await client.get(`/v1/secrets/${id}/meta`);
34
+ }
35
+ catch (error) {
36
+ output.error(error.message);
37
+ process.exit(1);
38
+ }
39
+ const isUserSealed = metadata.protectionMode === 'USER_SESSION_ONLY';
40
+ if (options.data && options.dataStdin) {
41
+ output.error('--data cannot be combined with --data-stdin');
42
+ process.exit(1);
43
+ }
44
+ if (isUserSealed && options.data) {
45
+ output.error('User-Sealed values cannot be supplied through --data; use --data-stdin or the masked interactive prompt.');
46
+ process.exit(1);
47
+ }
28
48
  // Check for non-interactive data option
29
- if (options.data) {
49
+ if (options.dataStdin) {
50
+ try {
51
+ const parsed = JSON.parse(await readStdinUtf8());
52
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
53
+ throw new Error('secret data must be a JSON object');
54
+ }
55
+ newData = parsed;
56
+ }
57
+ catch (error) {
58
+ output.error(`Invalid JSON received by --data-stdin: ${error.message}`);
59
+ process.exit(1);
60
+ }
61
+ }
62
+ else if (options.data) {
30
63
  // Non-interactive mode: parse JSON data from CLI
31
64
  try {
32
65
  newData = JSON.parse(options.data);
@@ -78,10 +111,10 @@ export function registerUpdateCommand(secretCmd) {
78
111
  else {
79
112
  const { dataJson } = await inquirer.prompt([
80
113
  {
81
- type: 'editor',
114
+ type: interactiveSecretValuePromptType(metadata.protectionMode, 'editor'),
82
115
  name: 'dataJson',
83
- message: 'Edit data (JSON):',
84
- default: JSON.stringify(current.data, null, 2),
116
+ message: isUserSealed ? 'Enter replacement data (JSON):' : 'Edit data (JSON):',
117
+ ...(isUserSealed ? { mask: '*' } : { default: JSON.stringify(current.data, null, 2) }),
85
118
  },
86
119
  ]);
87
120
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/secret/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/secret/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AA8CnC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAGlF"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAyDnC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAGlF"}
@@ -4,6 +4,15 @@ import { promptConfirm, promptNewPassword } from '../lib/prompts.js';
4
4
  import * as output from '../lib/output.js';
5
5
  import { isSuperadmin } from '../lib/auth-context.js';
6
6
  import { addTenantOption, resolveContext, withRegisterContext, } from '../lib/command-context.js';
7
+ function parseAccountType(value) {
8
+ if (value === undefined)
9
+ return undefined;
10
+ const normalized = value.toUpperCase();
11
+ if (normalized !== 'HUMAN' && normalized !== 'SERVICE') {
12
+ throw new Error('Invalid account type. Use HUMAN or SERVICE');
13
+ }
14
+ return normalized;
15
+ }
7
16
  export function registerUserCommands(parent, opts) {
8
17
  const ctx = resolveContext(opts);
9
18
  withRegisterContext(ctx, () => { registerUserCommandsInner(parent, ctx); });
@@ -40,11 +49,12 @@ function registerUserCommandsInner(parent, ctx) {
40
49
  output.info('No users found');
41
50
  return;
42
51
  }
43
- output.table(['ID', 'Username', 'Email', 'Role', 'Tenant', 'Status', '2FA', 'Last Login'], users.map(u => [
52
+ output.table(['ID', 'Username', 'Email', 'Role', 'Account Type', 'Tenant', 'Status', '2FA', 'Last Login'], users.map(u => [
44
53
  u.id.substring(0, 8),
45
54
  u.username,
46
55
  u.email ?? '-',
47
56
  u.role,
57
+ u.accountType ?? '-',
48
58
  u.tenantId ?? '-',
49
59
  u.status,
50
60
  u.totpEnabled,
@@ -69,6 +79,7 @@ function registerUserCommandsInner(parent, ctx) {
69
79
  addTenantOption(createCmd, ctx, 'Tenant ID');
70
80
  createCmd
71
81
  .option('--role <role>', 'User role (user|admin)', 'user')
82
+ .option('--account-type <type>', 'Identity type (HUMAN|SERVICE); superadmin only')
72
83
  .option('--json', 'Output as JSON')
73
84
  .action(async (username, password, options) => {
74
85
  if (mode.getMode() === 'local') {
@@ -76,6 +87,18 @@ function registerUserCommandsInner(parent, ctx) {
76
87
  output.info('Use: znvault login first, or set ZNVAULT_API_KEY');
77
88
  process.exit(1);
78
89
  }
90
+ if (options.accountType !== undefined && !asSuperadmin) {
91
+ output.error('--account-type is only available under superadmin user commands');
92
+ process.exit(1);
93
+ }
94
+ let accountType;
95
+ try {
96
+ accountType = parseAccountType(options.accountType);
97
+ }
98
+ catch (err) {
99
+ output.error(err instanceof Error ? err.message : String(err));
100
+ process.exit(1);
101
+ }
79
102
  const spinner = output.spinner('Creating user...').start();
80
103
  try {
81
104
  const result = await client.createUser({
@@ -84,6 +107,7 @@ function registerUserCommandsInner(parent, ctx) {
84
107
  email: options.email,
85
108
  tenantId: options.tenant,
86
109
  role: options.role,
110
+ accountType,
87
111
  asSuperadmin,
88
112
  });
89
113
  spinner.succeed('User created successfully');
@@ -96,6 +120,7 @@ function registerUserCommandsInner(parent, ctx) {
96
120
  'Username': result.username,
97
121
  'Email': result.email ?? '-',
98
122
  'Role': result.role,
123
+ 'Account Type': result.accountType ?? '-',
99
124
  'Tenant': result.tenantId ?? '-',
100
125
  'Status': result.status,
101
126
  'Created': output.formatDate(result.createdAt),
@@ -132,6 +157,7 @@ function registerUserCommandsInner(parent, ctx) {
132
157
  'Username': result.username,
133
158
  'Email': result.email ?? '-',
134
159
  'Role': result.role,
160
+ 'Account Type': result.accountType ?? '-',
135
161
  'Tenant': result.tenantId ?? '-',
136
162
  'Status': result.status,
137
163
  '2FA Enabled': result.totpEnabled,
@@ -160,6 +186,7 @@ function registerUserCommandsInner(parent, ctx) {
160
186
  .option('--password <password>', 'New password')
161
187
  .option('--role <role>', 'New role (user|admin)')
162
188
  .option('--status <status>', 'New status (active|disabled)')
189
+ .option('--account-type <type>', 'Identity type (HUMAN|SERVICE); superadmin only')
163
190
  .option('--json', 'Output as JSON')
164
191
  .action(async (id, options) => {
165
192
  if (mode.getMode() === 'local') {
@@ -167,6 +194,10 @@ function registerUserCommandsInner(parent, ctx) {
167
194
  output.info('Use: znvault login first, or set ZNVAULT_API_KEY');
168
195
  process.exit(1);
169
196
  }
197
+ if (options.accountType !== undefined && !asSuperadmin) {
198
+ output.error('--account-type is only available under superadmin user commands');
199
+ process.exit(1);
200
+ }
170
201
  const updates = {};
171
202
  if (options.email)
172
203
  updates.email = options.email;
@@ -176,8 +207,17 @@ function registerUserCommandsInner(parent, ctx) {
176
207
  updates.role = options.role;
177
208
  if (options.status)
178
209
  updates.status = options.status;
210
+ try {
211
+ const accountType = parseAccountType(options.accountType);
212
+ if (accountType)
213
+ updates.accountType = accountType;
214
+ }
215
+ catch (err) {
216
+ output.error(err instanceof Error ? err.message : String(err));
217
+ process.exit(1);
218
+ }
179
219
  if (Object.keys(updates).length === 0) {
180
- output.error('No updates specified. Use --email, --password, --role, or --status');
220
+ output.error('No updates specified. Use --email, --password, --role, --status, or --account-type');
181
221
  process.exit(1);
182
222
  }
183
223
  const spinner = output.spinner('Updating user...').start();
@@ -191,6 +231,7 @@ function registerUserCommandsInner(parent, ctx) {
191
231
  output.keyValue({
192
232
  'ID': result.id,
193
233
  'Username': result.username,
234
+ 'Account Type': result.accountType ?? '-',
194
235
  'Status': result.status,
195
236
  'Updated': output.formatDate(result.updatedAt),
196
237
  });