@zincapp/znvault-cli 4.12.0 → 4.13.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/dist/commands/dynamic-secrets/index.d.ts.map +1 -1
- package/dist/commands/dynamic-secrets/index.js +50 -5
- package/dist/commands/dynamic-secrets/index.js.map +1 -1
- package/dist/commands/dynamic-secrets/role.d.ts.map +1 -1
- package/dist/commands/dynamic-secrets/role.js +114 -23
- package/dist/commands/dynamic-secrets/role.js.map +1 -1
- package/dist/commands/dynamic-secrets/templates.d.ts +23 -0
- package/dist/commands/dynamic-secrets/templates.d.ts.map +1 -0
- package/dist/commands/dynamic-secrets/templates.js +151 -0
- package/dist/commands/dynamic-secrets/templates.js.map +1 -0
- package/dist/commands/dynamic-secrets/types.d.ts +33 -0
- package/dist/commands/dynamic-secrets/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,cAAc,YAAY,CAAC;AAE3B,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkVrE"}
|
|
@@ -5,6 +5,7 @@ import { generateCredentials } from './creds.js';
|
|
|
5
5
|
import { listLeases, getLease, renewLease, revokeLease, } from './lease.js';
|
|
6
6
|
import { registerAllowedHostsCommands } from './allowed-hosts.js';
|
|
7
7
|
import { registerRoutinesCommands } from './routines.js';
|
|
8
|
+
import { registerTemplatesCommands } from './templates.js';
|
|
8
9
|
// Re-export types
|
|
9
10
|
export * from './types.js';
|
|
10
11
|
export function registerDynamicSecretsCommands(program) {
|
|
@@ -190,16 +191,56 @@ Notes:
|
|
|
190
191
|
.action(getRole);
|
|
191
192
|
role
|
|
192
193
|
.command('create <connection-id>')
|
|
193
|
-
.description('Create a new role for a connection')
|
|
194
|
+
.description('Create a new role for a connection (from a fixed template, or raw SQL as an escape hatch)')
|
|
194
195
|
.option('--name <name>', 'Role name')
|
|
195
196
|
.option('--description <desc>', 'Role description')
|
|
196
|
-
.option('--
|
|
197
|
-
.option('--
|
|
198
|
-
.option('--
|
|
197
|
+
.option('--template <name>', 'Create from a fixed, versioned server template (e.g. readonly, readwrite, ddl, migrate) — mutually exclusive with the raw SQL flags below')
|
|
198
|
+
.option('--template-version <n>', 'Template version (defaults to latest on the server if omitted)')
|
|
199
|
+
.option('--creation-statements <sql>', '[raw mode, requires dynamic-secrets:roles:write-raw] SQL statements to create credentials (semicolon-separated)')
|
|
200
|
+
.option('--revocation-statements <sql>', '[raw mode] SQL statements to revoke credentials (semicolon-separated)')
|
|
201
|
+
.option('--renew-statements <sql>', '[raw mode] SQL statements to renew credentials (semicolon-separated)')
|
|
199
202
|
.option('--default-ttl <seconds>', 'Default credential TTL')
|
|
200
203
|
.option('--max-ttl <seconds>', 'Maximum credential TTL')
|
|
201
|
-
.option('--username-template <template>', 'Username template (e.g., v_{{role}}_{{random:8}})')
|
|
204
|
+
.option('--username-template <template>', '[raw mode only] Username template (e.g., v_{{role}}_{{random:8}})')
|
|
202
205
|
.option('--json', 'Output as JSON')
|
|
206
|
+
.addHelpText('after', `
|
|
207
|
+
Examples:
|
|
208
|
+
# Template mode (recommended): create a role from a shipped template.
|
|
209
|
+
# Reuses the "dynamic-secrets:roles:write" permission you already have.
|
|
210
|
+
znvault dynasec role create <connection-id> --name readwrite --template readwrite
|
|
211
|
+
|
|
212
|
+
# Pin a specific template version instead of the server's latest
|
|
213
|
+
znvault dynasec role create <connection-id> --name ro --template readonly --template-version 1
|
|
214
|
+
|
|
215
|
+
# MySQL migrate role (grants EXECUTE on the pre-applied znapi-helpers
|
|
216
|
+
# bundle; the bundle itself is applied separately via
|
|
217
|
+
# "dynasec routines apply"). Role creation still succeeds even if the
|
|
218
|
+
# bundle isn't applied yet — it prints a "bundle_not_applied" warning.
|
|
219
|
+
znvault dynasec role create <mysql-connection-id> --name migrator --template migrate
|
|
220
|
+
|
|
221
|
+
# Raw mode (escape hatch): hand-write the SQL yourself. Requires the
|
|
222
|
+
# separate "dynamic-secrets:roles:write-raw" permission (NOT auto-granted —
|
|
223
|
+
# ask an admin to grant it if you get a 403).
|
|
224
|
+
znvault dynasec role create <connection-id> --name custom \\
|
|
225
|
+
--creation-statements "CREATE ROLE \\"{{username}}\\" WITH LOGIN PASSWORD '{{password}}'" \\
|
|
226
|
+
--revocation-statements "DROP ROLE IF EXISTS \\"{{username}}\\""
|
|
227
|
+
|
|
228
|
+
Template catalog (v1, fixed server-side — see "znvault dynasec templates list"):
|
|
229
|
+
MySQL: readonly, readwrite, ddl, migrate
|
|
230
|
+
PostgreSQL: readonly, readwrite (ddl/migrate are MySQL-only; using them
|
|
231
|
+
on a PostgreSQL connection 400s with
|
|
232
|
+
ddl_unsupported_for_engine)
|
|
233
|
+
|
|
234
|
+
Notes:
|
|
235
|
+
- Exactly one mode per role: --template XOR the raw SQL flags. Combining
|
|
236
|
+
them is rejected client-side before any request is sent.
|
|
237
|
+
- Template mode has a fixed schema — no --username-template, no custom
|
|
238
|
+
schema. The server 400s (username_template_not_allowed /
|
|
239
|
+
schema_override_unsupported) if you try; the CLI catches the
|
|
240
|
+
--username-template case before sending the request.
|
|
241
|
+
- Templates take no other caller params in v1. Inspect one with:
|
|
242
|
+
znvault dynasec templates get <engine>/<name>/<version>
|
|
243
|
+
`)
|
|
203
244
|
.action(createRole);
|
|
204
245
|
role
|
|
205
246
|
.command('update <role-id>')
|
|
@@ -269,5 +310,9 @@ Notes:
|
|
|
269
310
|
// Routines Commands
|
|
270
311
|
// -------------------------------------------------------------------------
|
|
271
312
|
registerRoutinesCommands(dynasec);
|
|
313
|
+
// -------------------------------------------------------------------------
|
|
314
|
+
// Templates Commands
|
|
315
|
+
// -------------------------------------------------------------------------
|
|
316
|
+
registerTemplatesCommands(dynasec);
|
|
272
317
|
}
|
|
273
318
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAO9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/role.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/role.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAgC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGrG,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C/F;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BxF;AAcD,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFhG;AAmDD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B1F;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B5G"}
|
|
@@ -76,43 +76,83 @@ export async function getRole(roleId, options) {
|
|
|
76
76
|
process.exit(1);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Fields that only make sense for a hand-written (raw) role. Sending any of
|
|
81
|
+
* these alongside `template` conflicts with the server's fixed-schema
|
|
82
|
+
* template mode (400 `template_and_raw_conflict` / `username_template_not_allowed`).
|
|
83
|
+
*/
|
|
84
|
+
const RAW_ONLY_FLAGS = [
|
|
85
|
+
{ flag: 'creationStatements', label: '--creation-statements' },
|
|
86
|
+
{ flag: 'revocationStatements', label: '--revocation-statements' },
|
|
87
|
+
{ flag: 'renewStatements', label: '--renew-statements' },
|
|
88
|
+
{ flag: 'usernameTemplate', label: '--username-template' },
|
|
89
|
+
];
|
|
79
90
|
export async function createRole(connectionId, options) {
|
|
80
|
-
//
|
|
91
|
+
// Exactly one mode: template XOR raw. Catch the obvious conflicts
|
|
92
|
+
// client-side with a clear message rather than round-tripping to the
|
|
93
|
+
// server for a 400 template_and_raw_conflict / username_template_not_allowed.
|
|
94
|
+
if (options.template) {
|
|
95
|
+
const conflicting = RAW_ONLY_FLAGS.filter(({ flag }) => options[flag] !== undefined);
|
|
96
|
+
if (conflicting.length > 0) {
|
|
97
|
+
output.error(`--template cannot be combined with raw role flags (${conflicting.map((c) => c.label).join(', ')}). ` +
|
|
98
|
+
'Pick exactly one mode: template (--template) XOR raw (--creation-statements/--revocation-statements/...).');
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Interactive prompts if options not provided — but only in raw mode.
|
|
103
|
+
// Template mode has a fixed schema (name + template only), so there is
|
|
104
|
+
// nothing else to prompt for.
|
|
81
105
|
const name = options.name ?? (await inquirer.prompt([{
|
|
82
106
|
type: 'input',
|
|
83
107
|
name: 'name',
|
|
84
108
|
message: 'Role name:',
|
|
85
109
|
validate: (input) => input.trim() ? true : 'Name is required',
|
|
86
110
|
}])).name;
|
|
87
|
-
const creationStatements = options.creationStatements?.split(';').filter(s => s.trim()) ??
|
|
88
|
-
(await inquirer.prompt([{
|
|
89
|
-
type: 'editor',
|
|
90
|
-
name: 'statements',
|
|
91
|
-
message: 'Creation SQL statements (one per line, use {{username}} and {{password}} placeholders):',
|
|
92
|
-
}])).statements.split('\n').filter(s => s.trim());
|
|
93
|
-
const revocationStatements = options.revocationStatements?.split(';').filter(s => s.trim()) ??
|
|
94
|
-
(await inquirer.prompt([{
|
|
95
|
-
type: 'editor',
|
|
96
|
-
name: 'statements',
|
|
97
|
-
message: 'Revocation SQL statements (one per line, use {{username}} placeholder):',
|
|
98
|
-
}])).statements.split('\n').filter(s => s.trim());
|
|
99
111
|
const spinner = output.spinner('Creating role...').start();
|
|
100
112
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
let body;
|
|
114
|
+
if (options.template) {
|
|
115
|
+
const template = { name: options.template };
|
|
116
|
+
if (options.templateVersion) {
|
|
117
|
+
const version = parseInt(options.templateVersion, 10);
|
|
118
|
+
if (!Number.isInteger(version) || version < 1) {
|
|
119
|
+
spinner.fail('Failed to create role');
|
|
120
|
+
output.error('--template-version must be a positive integer');
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
template.version = version;
|
|
124
|
+
}
|
|
125
|
+
body = { name, template };
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const creationStatements = options.creationStatements?.split(';').filter(s => s.trim()) ??
|
|
129
|
+
(await inquirer.prompt([{
|
|
130
|
+
type: 'editor',
|
|
131
|
+
name: 'statements',
|
|
132
|
+
message: 'Creation SQL statements (one per line, use {{username}} and {{password}} placeholders):',
|
|
133
|
+
}])).statements.split('\n').filter(s => s.trim());
|
|
134
|
+
const revocationStatements = options.revocationStatements?.split(';').filter(s => s.trim()) ??
|
|
135
|
+
(await inquirer.prompt([{
|
|
136
|
+
type: 'editor',
|
|
137
|
+
name: 'statements',
|
|
138
|
+
message: 'Revocation SQL statements (one per line, use {{username}} placeholder):',
|
|
139
|
+
}])).statements.split('\n').filter(s => s.trim());
|
|
140
|
+
body = {
|
|
141
|
+
name,
|
|
142
|
+
creationStatements,
|
|
143
|
+
revocationStatements,
|
|
144
|
+
};
|
|
145
|
+
if (options.renewStatements)
|
|
146
|
+
body.renewStatements = options.renewStatements.split(';').filter(s => s.trim());
|
|
147
|
+
if (options.usernameTemplate)
|
|
148
|
+
body.usernameTemplate = options.usernameTemplate;
|
|
149
|
+
}
|
|
106
150
|
if (options.description)
|
|
107
151
|
body.description = options.description;
|
|
108
|
-
if (options.renewStatements)
|
|
109
|
-
body.renewStatements = options.renewStatements.split(';').filter(s => s.trim());
|
|
110
152
|
if (options.defaultTtl)
|
|
111
153
|
body.defaultTtlSeconds = parseInt(options.defaultTtl, 10);
|
|
112
154
|
if (options.maxTtl)
|
|
113
155
|
body.maxTtlSeconds = parseInt(options.maxTtl, 10);
|
|
114
|
-
if (options.usernameTemplate)
|
|
115
|
-
body.usernameTemplate = options.usernameTemplate;
|
|
116
156
|
const response = await client.post(`/v1/dynamic-secrets/connections/${connectionId}/roles`, body);
|
|
117
157
|
spinner.succeed('Role created');
|
|
118
158
|
if (options.json) {
|
|
@@ -120,14 +160,65 @@ export async function createRole(connectionId, options) {
|
|
|
120
160
|
}
|
|
121
161
|
else {
|
|
122
162
|
output.success(`Role "${response.name}" created with ID: ${response.id}`);
|
|
163
|
+
if (response.warnings && response.warnings.length > 0) {
|
|
164
|
+
for (const warning of response.warnings) {
|
|
165
|
+
output.warn(describeRoleWarning(warning));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
123
168
|
}
|
|
124
169
|
}
|
|
125
170
|
catch (err) {
|
|
126
171
|
spinner.fail('Failed to create role');
|
|
127
|
-
output.error(err
|
|
172
|
+
output.error(describeRoleCreateError(err, options));
|
|
128
173
|
process.exit(1);
|
|
129
174
|
}
|
|
130
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Expand a terse server warning code into an actionable message. Unknown
|
|
178
|
+
* codes are printed as-is so a new server-side warning never gets swallowed.
|
|
179
|
+
*/
|
|
180
|
+
function describeRoleWarning(warning) {
|
|
181
|
+
if (warning === 'bundle_not_applied') {
|
|
182
|
+
return 'bundle_not_applied: this role was created, but the znapi-helpers routine bundle has not been ' +
|
|
183
|
+
'applied to the connection yet. The role\'s EXECUTE grant will fail at credential-generation time until ' +
|
|
184
|
+
'you run: znvault dynasec routines apply <connection-or-role> --bundle znapi-helpers --version 1';
|
|
185
|
+
}
|
|
186
|
+
return warning;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Map known server error codes (see docs/DYNAMIC_SECRETS_GUIDE.md → Role
|
|
190
|
+
* Templates) to a clearer, actionable message. Falls back to the raw error
|
|
191
|
+
* message for anything not explicitly handled here.
|
|
192
|
+
*/
|
|
193
|
+
function describeRoleCreateError(err, options) {
|
|
194
|
+
const raw = err instanceof Error ? err.message : String(err);
|
|
195
|
+
const code = err?.errorCode ?? raw;
|
|
196
|
+
const status = err?.statusCode;
|
|
197
|
+
switch (code) {
|
|
198
|
+
case 'template_and_raw_conflict':
|
|
199
|
+
return `${raw} — pick exactly one mode: template (--template) XOR raw (--creation-statements/...).`;
|
|
200
|
+
case 'unknown_template':
|
|
201
|
+
return `${raw} — run "znvault dynasec templates list" to see available templates for this connection's engine.`;
|
|
202
|
+
case 'ddl_unsupported_for_engine':
|
|
203
|
+
return `${raw} — PostgreSQL connections only support the "readonly" and "readwrite" templates ` +
|
|
204
|
+
'("ddl" and "migrate" are MySQL-only).';
|
|
205
|
+
case 'schema_override_unsupported':
|
|
206
|
+
return `${raw} — role templates use a fixed schema (the connection's database for MySQL, "public" for ` +
|
|
207
|
+
'PostgreSQL); a custom schema cannot be specified in template mode.';
|
|
208
|
+
case 'template_param_invalid':
|
|
209
|
+
return `${raw} — check the template's expected params with "znvault dynasec templates get <engine>/<name>/<version>".`;
|
|
210
|
+
case 'username_template_not_allowed':
|
|
211
|
+
return `${raw} — a custom --username-template cannot be combined with --template; templates use a fixed ` +
|
|
212
|
+
'username scheme.';
|
|
213
|
+
default:
|
|
214
|
+
if (status === 403 && !options.template) {
|
|
215
|
+
return `${raw} — creating a role with raw SQL (--creation-statements/--revocation-statements) requires ` +
|
|
216
|
+
'the "dynamic-secrets:roles:write-raw" permission, which is not auto-granted. Ask an admin to grant it, ' +
|
|
217
|
+
'or use --template instead (see "znvault dynasec templates list").';
|
|
218
|
+
}
|
|
219
|
+
return raw;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
131
222
|
export async function updateRole(roleId, options) {
|
|
132
223
|
const spinner = output.spinner('Updating role...').start();
|
|
133
224
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/role.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/role.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `znvault dynasec templates` — browse the server's fixed, versioned
|
|
3
|
+
* role-creation templates (Task E3, mirrors S2's server-side template
|
|
4
|
+
* catalog).
|
|
5
|
+
*
|
|
6
|
+
* Routes (public within a tenant session, no tenantId accepted per the
|
|
7
|
+
* golden rule — the server infers engine support from the connection when
|
|
8
|
+
* a role is actually created):
|
|
9
|
+
* GET /v1/dynamic-secrets/templates[?engine=mysql|postgresql]
|
|
10
|
+
* GET /v1/dynamic-secrets/templates/:engine/:name/:version
|
|
11
|
+
*
|
|
12
|
+
* Templates are fixed in code and versioned server-side — there is no
|
|
13
|
+
* create/update/delete here, only list/get. MySQL ships readonly/readwrite/
|
|
14
|
+
* ddl/migrate; PostgreSQL ships readonly/readwrite only (ddl/migrate are
|
|
15
|
+
* MySQL-only — creating a role with those on a PG connection 400s with
|
|
16
|
+
* `ddl_unsupported_for_engine`).
|
|
17
|
+
*/
|
|
18
|
+
import type { Command } from 'commander';
|
|
19
|
+
import type { TemplateGetOptions, TemplatesListOptions } from './types.js';
|
|
20
|
+
export declare function listTemplates(options: TemplatesListOptions): Promise<void>;
|
|
21
|
+
export declare function getTemplate(engineNameVersion: string, options: TemplateGetOptions): Promise<void>;
|
|
22
|
+
export declare function registerTemplatesCommands(dynasec: Command): void;
|
|
23
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/templates.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAGV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAWpB,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChF;AAgBD,wBAAsB,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDvG;AAID,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgDhE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Path: src/commands/dynamic-secrets/templates.ts
|
|
2
|
+
import Table from 'cli-table3';
|
|
3
|
+
import { client } from '../../lib/client.js';
|
|
4
|
+
import * as output from '../../lib/output.js';
|
|
5
|
+
const VALID_ENGINES = new Set(['mysql', 'postgresql']);
|
|
6
|
+
// ─── Handlers ──────────────────────────────────────────────────────────────
|
|
7
|
+
export async function listTemplates(options) {
|
|
8
|
+
if (options.engine && !VALID_ENGINES.has(options.engine)) {
|
|
9
|
+
output.error(`--engine must be one of: ${Array.from(VALID_ENGINES).join(', ')}`);
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
const spinner = output.spinner('Fetching role templates...').start();
|
|
13
|
+
try {
|
|
14
|
+
const url = options.engine
|
|
15
|
+
? `/v1/dynamic-secrets/templates?engine=${encodeURIComponent(options.engine)}`
|
|
16
|
+
: '/v1/dynamic-secrets/templates';
|
|
17
|
+
const response = await client.get(url);
|
|
18
|
+
spinner.stop();
|
|
19
|
+
if (options.json) {
|
|
20
|
+
output.json(response);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (response.items.length === 0) {
|
|
24
|
+
output.info('No templates found.');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const table = new Table({
|
|
28
|
+
head: ['Engine', 'Name', 'Version', 'Description'],
|
|
29
|
+
style: { head: ['cyan'] },
|
|
30
|
+
});
|
|
31
|
+
for (const t of response.items) {
|
|
32
|
+
table.push([t.engine, t.name, String(t.version), t.description]);
|
|
33
|
+
}
|
|
34
|
+
console.log(table.toString());
|
|
35
|
+
output.info(`${response.items.length} template(s) found`);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
spinner.fail('Failed to list templates');
|
|
39
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse the `<engine>/<name>/<version>` positional argument. Kept strict
|
|
45
|
+
* (exactly 3 slash-separated, non-empty segments, numeric version) so a
|
|
46
|
+
* malformed argument fails fast client-side instead of a confusing 404.
|
|
47
|
+
*/
|
|
48
|
+
function parseTemplateRef(ref) {
|
|
49
|
+
const parts = ref.split('/');
|
|
50
|
+
if (parts.length !== 3 || parts.some((p) => p.trim() === '')) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const [engine, name, version] = parts;
|
|
54
|
+
return { engine, name, version };
|
|
55
|
+
}
|
|
56
|
+
export async function getTemplate(engineNameVersion, options) {
|
|
57
|
+
const parsed = parseTemplateRef(engineNameVersion);
|
|
58
|
+
if (!parsed) {
|
|
59
|
+
output.error(`Invalid template reference "${engineNameVersion}" — expected the form engine/name/version (e.g. mysql/readwrite/1).`);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
const { engine, name, version } = parsed;
|
|
63
|
+
const spinner = output.spinner('Fetching template...').start();
|
|
64
|
+
try {
|
|
65
|
+
const response = await client.get(`/v1/dynamic-secrets/templates/${encodeURIComponent(engine)}/${encodeURIComponent(name)}/${encodeURIComponent(version)}`);
|
|
66
|
+
spinner.stop();
|
|
67
|
+
if (options.json) {
|
|
68
|
+
output.json(response);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
output.keyValue({
|
|
72
|
+
'Engine': response.engine,
|
|
73
|
+
'Name': response.name,
|
|
74
|
+
'Version': String(response.version),
|
|
75
|
+
'Description': response.description,
|
|
76
|
+
});
|
|
77
|
+
const params = response.params;
|
|
78
|
+
const paramEntries = Object.entries(params);
|
|
79
|
+
if (paramEntries.length > 0) {
|
|
80
|
+
output.info('Params:');
|
|
81
|
+
output.keyValue(params, 2);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
output.info('Params: none (v1 templates take no caller params — schema is fixed)');
|
|
85
|
+
}
|
|
86
|
+
if (response.example) {
|
|
87
|
+
output.info('Rendered example:');
|
|
88
|
+
console.log(JSON.stringify(response.example, null, 2));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
spinner.fail('Failed to get template');
|
|
93
|
+
const statusCode = err?.statusCode;
|
|
94
|
+
if (statusCode === 404) {
|
|
95
|
+
output.error(`Template not found: ${engine}/${name}/${version}. Run "znvault dynasec templates list" to see available templates.`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
99
|
+
}
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// ─── Registration ──────────────────────────────────────────────────────────
|
|
104
|
+
export function registerTemplatesCommands(dynasec) {
|
|
105
|
+
const templates = dynasec
|
|
106
|
+
.command('templates')
|
|
107
|
+
.description('Browse the fixed, versioned role-creation templates (used by `dynasec role create --template`)')
|
|
108
|
+
.addHelpText('after', `
|
|
109
|
+
Examples:
|
|
110
|
+
# List all templates across both engines
|
|
111
|
+
znvault dynasec templates list
|
|
112
|
+
|
|
113
|
+
# List only MySQL templates
|
|
114
|
+
znvault dynasec templates list --engine mysql
|
|
115
|
+
|
|
116
|
+
# Get the full definition + rendered example for one template
|
|
117
|
+
znvault dynasec templates get mysql/readwrite/1
|
|
118
|
+
|
|
119
|
+
# Machine-readable output
|
|
120
|
+
znvault dynasec templates list --json
|
|
121
|
+
znvault dynasec templates get postgresql/readonly/1 --json
|
|
122
|
+
|
|
123
|
+
Catalog (v1, fixed in server code — no runtime mutation):
|
|
124
|
+
MySQL: readonly, readwrite, ddl, migrate
|
|
125
|
+
PostgreSQL: readonly, readwrite (no ddl/migrate — MySQL-only)
|
|
126
|
+
|
|
127
|
+
Notes:
|
|
128
|
+
- "migrate" (MySQL only) grants EXECUTE on the pre-applied znapi-helpers
|
|
129
|
+
routine bundle; it does NOT create the bundle. If the bundle hasn't been
|
|
130
|
+
applied to the connection yet, role creation still succeeds but returns
|
|
131
|
+
a "bundle_not_applied" warning — apply it first (or after) with:
|
|
132
|
+
znvault dynasec routines apply <connection-or-role> --bundle znapi-helpers --version 1
|
|
133
|
+
- Templates take no caller params in v1 — schema is fixed (the connection's
|
|
134
|
+
database for MySQL, "public" for PostgreSQL). Use
|
|
135
|
+
\`dynasec role create --template <name>\` to actually create a role from
|
|
136
|
+
one of these templates.
|
|
137
|
+
`);
|
|
138
|
+
templates
|
|
139
|
+
.command('list')
|
|
140
|
+
.alias('ls')
|
|
141
|
+
.description('List available role templates')
|
|
142
|
+
.option('--engine <engine>', 'Filter by engine (mysql or postgresql)')
|
|
143
|
+
.option('--json', 'Output as JSON')
|
|
144
|
+
.action(listTemplates);
|
|
145
|
+
templates
|
|
146
|
+
.command('get <engine/name/version>')
|
|
147
|
+
.description('Get one template\'s full definition and a rendered example (e.g. mysql/readwrite/1)')
|
|
148
|
+
.option('--json', 'Output as JSON')
|
|
149
|
+
.action(getTemplate);
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,8 @@ export interface RoleCreateOptions {
|
|
|
107
107
|
defaultTtl?: string;
|
|
108
108
|
maxTtl?: string;
|
|
109
109
|
usernameTemplate?: string;
|
|
110
|
+
template?: string;
|
|
111
|
+
templateVersion?: string;
|
|
110
112
|
json?: boolean;
|
|
111
113
|
}
|
|
112
114
|
export interface RoleUpdateOptions {
|
|
@@ -151,4 +153,35 @@ export interface ConnectionProvisionOptions {
|
|
|
151
153
|
routinesVersion?: string;
|
|
152
154
|
json?: boolean;
|
|
153
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* A role created from a fixed, server-defined template may return warnings
|
|
158
|
+
* alongside the created role (e.g. `bundle_not_applied` for a MySQL
|
|
159
|
+
* `migrate` role when the znapi-helpers routine bundle hasn't been applied
|
|
160
|
+
* to the connection yet). The create still succeeds (201) in that case.
|
|
161
|
+
*/
|
|
162
|
+
export interface DbRoleCreateResponse extends DbRole {
|
|
163
|
+
warnings?: string[];
|
|
164
|
+
}
|
|
165
|
+
export interface RoleTemplateSummary {
|
|
166
|
+
engine: 'mysql' | 'postgresql';
|
|
167
|
+
name: string;
|
|
168
|
+
version: number;
|
|
169
|
+
description: string;
|
|
170
|
+
params: Record<string, unknown>;
|
|
171
|
+
}
|
|
172
|
+
export interface RoleTemplateDetail extends RoleTemplateSummary {
|
|
173
|
+
example?: {
|
|
174
|
+
creation?: string[];
|
|
175
|
+
revocation?: string[];
|
|
176
|
+
renew?: string[];
|
|
177
|
+
[key: string]: unknown;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export interface TemplatesListOptions {
|
|
181
|
+
engine?: string;
|
|
182
|
+
json?: boolean;
|
|
183
|
+
}
|
|
184
|
+
export interface TemplateGetOptions {
|
|
185
|
+
json?: boolean;
|
|
186
|
+
}
|
|
154
187
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/dynamic-secrets/types.ts"],"names":[],"mappings":"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"}
|