@zincapp/znvault-cli 4.7.1 → 4.9.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 (47) hide show
  1. package/dist/commands/apikey/conditions.d.ts.map +1 -1
  2. package/dist/commands/apikey/conditions.js +1 -0
  3. package/dist/commands/apikey/conditions.js.map +1 -1
  4. package/dist/commands/apikey/create.d.ts.map +1 -1
  5. package/dist/commands/apikey/create.js +1 -0
  6. package/dist/commands/apikey/create.js.map +1 -1
  7. package/dist/commands/apikey/helpers.d.ts +1 -0
  8. package/dist/commands/apikey/helpers.d.ts.map +1 -1
  9. package/dist/commands/apikey/helpers.js +8 -0
  10. package/dist/commands/apikey/helpers.js.map +1 -1
  11. package/dist/commands/apikey/types.d.ts +3 -0
  12. package/dist/commands/apikey/types.d.ts.map +1 -1
  13. package/dist/commands/dynamic-secrets/types.d.ts +3 -0
  14. package/dist/commands/dynamic-secrets/types.d.ts.map +1 -1
  15. package/dist/commands/mysql/alias.d.ts +26 -0
  16. package/dist/commands/mysql/alias.d.ts.map +1 -0
  17. package/dist/commands/mysql/alias.js +56 -0
  18. package/dist/commands/mysql/alias.js.map +1 -0
  19. package/dist/commands/mysql/broker.d.ts +38 -0
  20. package/dist/commands/mysql/broker.d.ts.map +1 -0
  21. package/dist/commands/mysql/broker.js +171 -0
  22. package/dist/commands/mysql/broker.js.map +1 -0
  23. package/dist/commands/mysql/index.d.ts +33 -0
  24. package/dist/commands/mysql/index.d.ts.map +1 -0
  25. package/dist/commands/mysql/index.js +207 -0
  26. package/dist/commands/mysql/index.js.map +1 -0
  27. package/dist/commands/mysql/mycnf.d.ts +40 -0
  28. package/dist/commands/mysql/mycnf.d.ts.map +1 -0
  29. package/dist/commands/mysql/mycnf.js +136 -0
  30. package/dist/commands/mysql/mycnf.js.map +1 -0
  31. package/dist/commands/mysql/resolve.d.ts +18 -0
  32. package/dist/commands/mysql/resolve.d.ts.map +1 -0
  33. package/dist/commands/mysql/resolve.js +108 -0
  34. package/dist/commands/mysql/resolve.js.map +1 -0
  35. package/dist/commands/mysql/run.d.ts +156 -0
  36. package/dist/commands/mysql/run.d.ts.map +1 -0
  37. package/dist/commands/mysql/run.js +300 -0
  38. package/dist/commands/mysql/run.js.map +1 -0
  39. package/dist/commands/mysql/types.d.ts +29 -0
  40. package/dist/commands/mysql/types.d.ts.map +1 -0
  41. package/dist/commands/mysql/types.js +7 -0
  42. package/dist/commands/mysql/types.js.map +1 -0
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/lib/config/types.d.ts +4 -0
  46. package/dist/lib/config/types.d.ts.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Resolve the absolute path to the `mysql` binary on the current PATH.
3
+ *
4
+ * Scans each directory in `process.env.PATH` for an executable named `mysql`.
5
+ * Logs the resolved path to stderr for auditability (spec F11).
6
+ *
7
+ * @returns Absolute path to the `mysql` binary.
8
+ * @throws If `mysql` is not found on PATH, with an actionable installation hint.
9
+ */
10
+ export declare function assertMysqlOnPath(): string;
11
+ /**
12
+ * Reject any passthrough token that is (or starts with `=`-form of) a forbidden
13
+ * connection/credential/defaults override flag.
14
+ *
15
+ * Recognised forms for a forbidden flag `--host`:
16
+ * - exact: `--host` (its value is the next token)
17
+ * - inline: `--host=value`
18
+ * - short: `-h` (value is next token) / `-P`, `-p`
19
+ *
20
+ * Tokens that merely START with a forbidden name but are a different flag
21
+ * (e.g. `--hostgroup`, `--port-something`) are NOT rejected.
22
+ *
23
+ * @throws Error naming the offending flag and citing F2, on the first match.
24
+ */
25
+ export declare function assertPassthroughAllowed(passthrough: readonly string[]): void;
26
+ /**
27
+ * Options for the pure argv/env builder.
28
+ * `mode` is intentionally absent — stdin wiring is exec/connect-specific and
29
+ * is handled by runMysql, not by this pure builder.
30
+ */
31
+ export interface BuildMysqlInvocationOpts {
32
+ /**
33
+ * Value for `--defaults-extra-file`. This is the `/dev/fd/<fd>` path returned
34
+ * by createMyCnf (B2) — mysql re-opens the inherited fd through it.
35
+ */
36
+ fdPath: string;
37
+ /** Optional default schema to select (positional arg — spec F8). */
38
+ database?: string;
39
+ /** Extra arguments appended verbatim to the mysql argv. */
40
+ passthrough?: string[];
41
+ }
42
+ /**
43
+ * Build the mysql argv and child environment.
44
+ *
45
+ * This is a PURE function — no spawning, no file I/O, no side effects.
46
+ * Export it so tests can assert security-critical argv/env invariants
47
+ * without spawning real mysql.
48
+ *
49
+ * Security invariants:
50
+ * - `--defaults-extra-file=<fdPath>` is args[0].
51
+ * - No --user / -u / --password / -p / MYSQL_PWD in args or env.
52
+ * - No --host / --port / -h / -P flags (connection coords from cnf).
53
+ * - Forbidden override flags in `passthrough` are rejected (spec F2).
54
+ * - MYSQL_HISTFILE=/dev/null overrides any pre-existing value.
55
+ *
56
+ * @throws If `passthrough` contains a forbidden connection/credential/defaults
57
+ * override flag (see assertPassthroughAllowed).
58
+ */
59
+ export declare function buildMysqlInvocation(opts: BuildMysqlInvocationOpts): {
60
+ args: string[];
61
+ env: NodeJS.ProcessEnv;
62
+ };
63
+ /**
64
+ * A single entry of a child_process `stdio` array. A NUMBER means "inherit THIS
65
+ * parent fd at this child index"; the strings are the usual stdio dispositions.
66
+ */
67
+ type StdioEntry = 'pipe' | 'inherit' | 'ignore' | number;
68
+ /**
69
+ * Build the `stdio` array for spawning mysql so that the cnf fd is inherited by
70
+ * the child at the SAME numeric index `fd`. This is what makes
71
+ * `--defaults-extra-file=/dev/fd/<fd>` resolve correctly in the child: the
72
+ * child must have an fd open at exactly `fd`.
73
+ *
74
+ * Layout:
75
+ * - index 0 (stdin): `stdin0` — 'pipe' for exec (we feed SQL), 'inherit' for
76
+ * connect (interactive terminal).
77
+ * - index 1 (stdout): 'inherit'.
78
+ * - index 2 (stderr): 'inherit'.
79
+ * - indices 3 .. fd-1: 'ignore' (gaps the array must fill; the child does not
80
+ * use them).
81
+ * - index fd: `fd` (a number → inherit the parent fd at this index).
82
+ *
83
+ * `fd` is always >= 3 in practice (0/1/2 are taken by the std streams of the
84
+ * Node process), so it never collides with stdin/stdout/stderr. We assert this
85
+ * defensively.
86
+ *
87
+ * @param fd The parent fd to inherit at the same number in the child.
88
+ * @param stdin0 Disposition for the child's stdin (index 0).
89
+ * @returns A stdio array of length max(3, fd+1).
90
+ * @throws If `fd` is < 3 (would collide with std streams — never expected).
91
+ */
92
+ export declare function buildChildStdio(fd: number, stdin0: 'pipe' | 'inherit'): StdioEntry[];
93
+ /**
94
+ * Options for runMysql.
95
+ */
96
+ export interface RunMysqlOpts {
97
+ /**
98
+ * The `/dev/fd/<fd>` path returned by createMyCnf — passed to mysql as
99
+ * --defaults-extra-file. This module never re-opens it; mysql reads the
100
+ * inherited fd through it.
101
+ */
102
+ fdPath: string;
103
+ /**
104
+ * The numeric fd backing `fdPath`. The child INHERITS this fd at the SAME
105
+ * number so `/dev/fd/<fd>` resolves inside it. The parent does NOT close it
106
+ * here — createMyCnf's cleanup() owns the close (after the child exits).
107
+ */
108
+ fd: number;
109
+ /** Default schema to select (positional arg — spec F8). */
110
+ database?: string;
111
+ /** 'connect' → interactive (stdio: inherit); 'exec' → non-interactive. */
112
+ mode: 'exec' | 'connect';
113
+ /**
114
+ * (exec mode) SQL files to read and concatenate as stdin.
115
+ * Precedence: files → sql → parent stdin (spec F-input).
116
+ */
117
+ files?: string[];
118
+ /**
119
+ * (exec mode) Inline SQL string to feed as stdin.
120
+ * Precedence: files → sql → parent stdin (spec F-input).
121
+ */
122
+ sql?: string;
123
+ /** Extra arguments appended verbatim to the mysql argv. */
124
+ passthrough?: string[];
125
+ }
126
+ /**
127
+ * Spawn the system `mysql` client and wait for it to exit.
128
+ *
129
+ * - Resolves with the child's numeric exit code (caller/CI relies on non-zero).
130
+ * - The cnf fd (`opts.fd`) is inherited by the child at the SAME number so
131
+ * `--defaults-extra-file=/dev/fd/<fd>` resolves in the child (spec F1). The
132
+ * directory entry was already unlinked in createMyCnf — there is NOTHING to
133
+ * unlink here, and NO post-spawn unlink race.
134
+ * - 'connect' mode: stdin/stdout/stderr are inherited (interactive terminal);
135
+ * the cnf fd is additionally inherited at index `fd`.
136
+ * - 'exec' mode: stdin (index 0) is wired as:
137
+ * 1. files (concatenated, in order) → stdin pipe
138
+ * 2. sql (string) → stdin pipe
139
+ * 3. parent stdin (if not a TTY) → piped through (inherit)
140
+ * 4. parent stdin is a TTY and neither files nor sql provided → Error
141
+ * stdout/stderr are inherited; the cnf fd is inherited at index `fd`.
142
+ *
143
+ * The parent's own copy of `opts.fd` is intentionally NOT closed here — the
144
+ * child holds its own dup (created by spawn's file actions), and createMyCnf's
145
+ * cleanup() closes the parent's copy after this resolves. (Closing here would be
146
+ * safe too, since the child already has its dup, but leaving the single owner —
147
+ * cleanup() — avoids double-close races.)
148
+ *
149
+ * @throws If the `mysql` binary is not on PATH (via assertMysqlOnPath).
150
+ * @throws If `passthrough` contains a forbidden override flag (via the builder).
151
+ * @throws If the cnf fd collides with a standard stream (via buildChildStdio).
152
+ * @throws If exec mode is requested but no SQL source is available.
153
+ */
154
+ export declare function runMysql(opts: RunMysqlOpts): Promise<number>;
155
+ export {};
156
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/mysql/run.ts"],"names":[],"mappings":"AAwCA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAoCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAa7E;AAMD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG;IACpE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,CA+BA;AAMD;;;GAGG;AACH,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EAAE,CAoBpF;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAuElE"}
@@ -0,0 +1,300 @@
1
+ // src/commands/mysql/run.ts
2
+ /**
3
+ * Spawn the system `mysql` client for `znvault mysql exec/connect`.
4
+ *
5
+ * Security guarantees (spec F1–F12):
6
+ * - Password lives only in the 0600 my.cnf inode written by B2 (mycnf.ts).
7
+ * It is NEVER added to argv, env, or any file opened by this module.
8
+ * - The cnf is passed to mysql as an OPEN FILE DESCRIPTOR via /dev/fd/<fd>
9
+ * (spec F1). createMyCnf opens the file, writes the credentials, and unlinks
10
+ * the directory entry IMMEDIATELY — so there is no plaintext name on disk for
11
+ * the lifetime of the run. The inode is kept alive solely by the inherited
12
+ * fd; closing it (cleanup) reclaims the bytes. This removes the old
13
+ * "spawn-then-unlink" race: spawn() returns when the child is forked but
14
+ * BEFORE it exec's mysql and reads --defaults-extra-file, so unlinking after
15
+ * spawn could win the race and crash mysql with
16
+ * "Failed to open required defaults file".
17
+ * - `--defaults-extra-file=/dev/fd/<fd>` is ALWAYS the first argument (mysql
18
+ * rejects it in any other position).
19
+ * - The child INHERITS the fd at the SAME number N, so `/dev/fd/N` resolves to
20
+ * the same inode inside the child (see buildChildStdio).
21
+ * - `MYSQL_HISTFILE=/dev/null` is injected into the child env so executed
22
+ * SQL is not persisted to ~/.mysql_history (spec F4).
23
+ * - No --host / --port flags are added; connection coordinates come from the
24
+ * cnf written by B2 (spec F2 — no client-side override). Caller passthrough
25
+ * is scrubbed of any host/port/defaults/password override flag, since mysql
26
+ * CLI flags override option-file values (last-wins) and would otherwise
27
+ * re-point the leased credential at an arbitrary server (F2 bypass).
28
+ * - This module never re-opens the cnf path itself; mysql reads it via the
29
+ * inherited fd. The parent's own copy of the fd is released by cleanup()
30
+ * once the child has exited (spec F3 hygiene).
31
+ */
32
+ import * as fs from 'node:fs';
33
+ import * as path from 'node:path';
34
+ // ─────────────────────────────────────────────────────────────────────────────
35
+ // PATH resolution
36
+ // ─────────────────────────────────────────────────────────────────────────────
37
+ /**
38
+ * Resolve the absolute path to the `mysql` binary on the current PATH.
39
+ *
40
+ * Scans each directory in `process.env.PATH` for an executable named `mysql`.
41
+ * Logs the resolved path to stderr for auditability (spec F11).
42
+ *
43
+ * @returns Absolute path to the `mysql` binary.
44
+ * @throws If `mysql` is not found on PATH, with an actionable installation hint.
45
+ */
46
+ export function assertMysqlOnPath() {
47
+ const pathEnv = process.env.PATH ?? '';
48
+ const dirs = pathEnv.split(path.delimiter).filter(Boolean);
49
+ for (const dir of dirs) {
50
+ const candidate = path.join(dir, 'mysql');
51
+ try {
52
+ fs.accessSync(candidate, fs.constants.X_OK);
53
+ // Found — log for auditability (spec F11). Write to STDERR so the audit
54
+ // line never pollutes exec's machine-readable STDOUT (M-1).
55
+ process.stderr.write(`[znvault] Resolved mysql binary: ${candidate}\n`);
56
+ return candidate;
57
+ }
58
+ catch {
59
+ // Not executable or not present in this dir; keep scanning.
60
+ }
61
+ }
62
+ throw new Error('mysql client not found on PATH. ' +
63
+ 'Install it (e.g. `brew install mysql-client` or `apt install mariadb-client`) ' +
64
+ 'and ensure it is on your PATH.');
65
+ }
66
+ // ─────────────────────────────────────────────────────────────────────────────
67
+ // Passthrough flag allow/deny (spec F2 — no client-side connection override)
68
+ // ─────────────────────────────────────────────────────────────────────────────
69
+ /**
70
+ * Connection/credential/defaults flags that a caller MUST NOT be able to inject
71
+ * via `-- <passthrough>`.
72
+ *
73
+ * Why: mysql command-line flags override option-file values (last-wins). A
74
+ * passthrough `--host evil-db` (or `--defaults-extra-file /evil.cnf`) would
75
+ * re-point the leased '%' credential at an arbitrary server — the exact F2
76
+ * access-control bypass the spec forbids. Likewise `--password`/`-p` would let
77
+ * the caller supply a password that must come ONLY from the leased cnf.
78
+ *
79
+ * Stored WITHOUT the leading dashes for both long (`--flag`) and short (`-x`)
80
+ * forms; matching is case-sensitive (mysql distinguishes `-P` port from `-p`
81
+ * password).
82
+ */
83
+ const FORBIDDEN_PASSTHROUGH_FLAGS = new Set([
84
+ // Connection coordinates — must come from the leased cnf only.
85
+ '--host',
86
+ '-h',
87
+ '--port',
88
+ '-P',
89
+ // Defaults-file overrides — would let the caller swap the whole option file.
90
+ '--defaults-extra-file',
91
+ '--defaults-file',
92
+ '--login-path',
93
+ '--no-defaults',
94
+ // Password — must come from the leased cnf only, never from argv.
95
+ '--password',
96
+ '-p',
97
+ ]);
98
+ /**
99
+ * Reject any passthrough token that is (or starts with `=`-form of) a forbidden
100
+ * connection/credential/defaults override flag.
101
+ *
102
+ * Recognised forms for a forbidden flag `--host`:
103
+ * - exact: `--host` (its value is the next token)
104
+ * - inline: `--host=value`
105
+ * - short: `-h` (value is next token) / `-P`, `-p`
106
+ *
107
+ * Tokens that merely START with a forbidden name but are a different flag
108
+ * (e.g. `--hostgroup`, `--port-something`) are NOT rejected.
109
+ *
110
+ * @throws Error naming the offending flag and citing F2, on the first match.
111
+ */
112
+ export function assertPassthroughAllowed(passthrough) {
113
+ for (const token of passthrough) {
114
+ // Normalise an inline `--flag=value` to its flag head for the lookup.
115
+ const eqIdx = token.indexOf('=');
116
+ const flag = eqIdx === -1 ? token : token.slice(0, eqIdx);
117
+ if (FORBIDDEN_PASSTHROUGH_FLAGS.has(flag)) {
118
+ throw new Error(`Passthrough flag '${flag}' is not allowed — host/port come from the ` +
119
+ `leased connection and cannot be overridden (see F2).`);
120
+ }
121
+ }
122
+ }
123
+ /**
124
+ * Build the mysql argv and child environment.
125
+ *
126
+ * This is a PURE function — no spawning, no file I/O, no side effects.
127
+ * Export it so tests can assert security-critical argv/env invariants
128
+ * without spawning real mysql.
129
+ *
130
+ * Security invariants:
131
+ * - `--defaults-extra-file=<fdPath>` is args[0].
132
+ * - No --user / -u / --password / -p / MYSQL_PWD in args or env.
133
+ * - No --host / --port / -h / -P flags (connection coords from cnf).
134
+ * - Forbidden override flags in `passthrough` are rejected (spec F2).
135
+ * - MYSQL_HISTFILE=/dev/null overrides any pre-existing value.
136
+ *
137
+ * @throws If `passthrough` contains a forbidden connection/credential/defaults
138
+ * override flag (see assertPassthroughAllowed).
139
+ */
140
+ export function buildMysqlInvocation(opts) {
141
+ const { fdPath, database, passthrough = [] } = opts;
142
+ // F2: reject host/port/defaults/password overrides BEFORE they reach argv.
143
+ assertPassthroughAllowed(passthrough);
144
+ // --defaults-extra-file MUST be first (mysql enforces this).
145
+ const args = [`--defaults-extra-file=${fdPath}`];
146
+ // database as a positional arg (spec F8 — narrows the default schema only).
147
+ if (database) {
148
+ args.push(database);
149
+ }
150
+ // Caller-supplied pass-through flags appended verbatim at the end (now safe —
151
+ // forbidden connection/credential overrides were rejected above).
152
+ args.push(...passthrough);
153
+ // Child env: inherit everything, then suppress history (spec F4).
154
+ // Critically: do NOT add MYSQL_PWD, MYSQL_USER, --password, etc.
155
+ const env = {
156
+ ...process.env,
157
+ MYSQL_HISTFILE: '/dev/null',
158
+ };
159
+ // Scrub any ambient MYSQL_PWD so the password comes ONLY from the cnf
160
+ // (spec: never from env). Also scrub MYSQL_PWD_PATH for completeness.
161
+ delete env.MYSQL_PWD;
162
+ delete env.MYSQL_PWD_PATH;
163
+ return { args, env };
164
+ }
165
+ /**
166
+ * Build the `stdio` array for spawning mysql so that the cnf fd is inherited by
167
+ * the child at the SAME numeric index `fd`. This is what makes
168
+ * `--defaults-extra-file=/dev/fd/<fd>` resolve correctly in the child: the
169
+ * child must have an fd open at exactly `fd`.
170
+ *
171
+ * Layout:
172
+ * - index 0 (stdin): `stdin0` — 'pipe' for exec (we feed SQL), 'inherit' for
173
+ * connect (interactive terminal).
174
+ * - index 1 (stdout): 'inherit'.
175
+ * - index 2 (stderr): 'inherit'.
176
+ * - indices 3 .. fd-1: 'ignore' (gaps the array must fill; the child does not
177
+ * use them).
178
+ * - index fd: `fd` (a number → inherit the parent fd at this index).
179
+ *
180
+ * `fd` is always >= 3 in practice (0/1/2 are taken by the std streams of the
181
+ * Node process), so it never collides with stdin/stdout/stderr. We assert this
182
+ * defensively.
183
+ *
184
+ * @param fd The parent fd to inherit at the same number in the child.
185
+ * @param stdin0 Disposition for the child's stdin (index 0).
186
+ * @returns A stdio array of length max(3, fd+1).
187
+ * @throws If `fd` is < 3 (would collide with std streams — never expected).
188
+ */
189
+ export function buildChildStdio(fd, stdin0) {
190
+ if (!Number.isInteger(fd) || fd < 3) {
191
+ // 0/1/2 are reserved for stdin/stdout/stderr; the cnf fd must be a higher
192
+ // descriptor. This would only happen if std streams were closed — bail
193
+ // loudly rather than silently mis-wiring the credential fd.
194
+ throw new Error(`Refusing to spawn mysql: cnf fd ${String(fd)} collides with a standard ` +
195
+ `stream (must be >= 3). This indicates a closed stdin/stdout/stderr.`);
196
+ }
197
+ const stdio = new Array(Math.max(3, fd + 1));
198
+ for (let i = 0; i < stdio.length; i++) {
199
+ if (i === 0)
200
+ stdio[i] = stdin0;
201
+ else if (i === 1 || i === 2)
202
+ stdio[i] = 'inherit';
203
+ else
204
+ stdio[i] = 'ignore';
205
+ }
206
+ // Place the credential fd at its own number so /dev/fd/<fd> resolves.
207
+ stdio[fd] = fd;
208
+ return stdio;
209
+ }
210
+ /**
211
+ * Spawn the system `mysql` client and wait for it to exit.
212
+ *
213
+ * - Resolves with the child's numeric exit code (caller/CI relies on non-zero).
214
+ * - The cnf fd (`opts.fd`) is inherited by the child at the SAME number so
215
+ * `--defaults-extra-file=/dev/fd/<fd>` resolves in the child (spec F1). The
216
+ * directory entry was already unlinked in createMyCnf — there is NOTHING to
217
+ * unlink here, and NO post-spawn unlink race.
218
+ * - 'connect' mode: stdin/stdout/stderr are inherited (interactive terminal);
219
+ * the cnf fd is additionally inherited at index `fd`.
220
+ * - 'exec' mode: stdin (index 0) is wired as:
221
+ * 1. files (concatenated, in order) → stdin pipe
222
+ * 2. sql (string) → stdin pipe
223
+ * 3. parent stdin (if not a TTY) → piped through (inherit)
224
+ * 4. parent stdin is a TTY and neither files nor sql provided → Error
225
+ * stdout/stderr are inherited; the cnf fd is inherited at index `fd`.
226
+ *
227
+ * The parent's own copy of `opts.fd` is intentionally NOT closed here — the
228
+ * child holds its own dup (created by spawn's file actions), and createMyCnf's
229
+ * cleanup() closes the parent's copy after this resolves. (Closing here would be
230
+ * safe too, since the child already has its dup, but leaving the single owner —
231
+ * cleanup() — avoids double-close races.)
232
+ *
233
+ * @throws If the `mysql` binary is not on PATH (via assertMysqlOnPath).
234
+ * @throws If `passthrough` contains a forbidden override flag (via the builder).
235
+ * @throws If the cnf fd collides with a standard stream (via buildChildStdio).
236
+ * @throws If exec mode is requested but no SQL source is available.
237
+ */
238
+ export async function runMysql(opts) {
239
+ const { spawn } = await import('node:child_process');
240
+ const mysqlBin = assertMysqlOnPath();
241
+ const { args, env } = buildMysqlInvocation({
242
+ fdPath: opts.fdPath,
243
+ database: opts.database,
244
+ passthrough: opts.passthrough,
245
+ });
246
+ if (opts.mode === 'connect') {
247
+ // Interactive: inherit std streams + the cnf fd at its own number.
248
+ const stdio = buildChildStdio(opts.fd, 'inherit');
249
+ const child = spawn(mysqlBin, args, { stdio, env });
250
+ return new Promise((resolve, reject) => {
251
+ child.on('error', (err) => { reject(err); });
252
+ child.on('close', (code) => { resolve(code ?? 1); });
253
+ });
254
+ }
255
+ // ── exec mode ──────────────────────────────────────────────────────────────
256
+ // stdin (index 0) is 'pipe' when we feed SQL ourselves (files / sql), and
257
+ // 'inherit' when we pass the parent's piped stdin through. The cnf fd (>= 3)
258
+ // is a separate, higher index — no collision with stdin.
259
+ if (opts.files && opts.files.length > 0) {
260
+ // Read + concatenate files in order, pipe the result.
261
+ const fsModule = await import('node:fs');
262
+ const chunks = opts.files.map((f) => fsModule.readFileSync(f));
263
+ const sqlBuf = Buffer.concat(chunks);
264
+ const stdio = buildChildStdio(opts.fd, 'pipe');
265
+ const child = spawn(mysqlBin, args, { stdio, env });
266
+ return new Promise((resolve, reject) => {
267
+ child.on('error', (err) => { reject(err); });
268
+ child.on('close', (code) => { resolve(code ?? 1); });
269
+ // stdin is always a Writable when stdio[0] is 'pipe'; cast to avoid TS
270
+ // optional-chaining warnings from the broad ChildProcess.stdin type.
271
+ child.stdin.end(sqlBuf);
272
+ });
273
+ }
274
+ if (opts.sql !== undefined) {
275
+ // Inline SQL string piped to stdin.
276
+ const sqlBuf = Buffer.from(opts.sql);
277
+ const stdio = buildChildStdio(opts.fd, 'pipe');
278
+ const child = spawn(mysqlBin, args, { stdio, env });
279
+ return new Promise((resolve, reject) => {
280
+ child.on('error', (err) => { reject(err); });
281
+ child.on('close', (code) => { resolve(code ?? 1); });
282
+ // stdin is always a Writable when stdio[0] is 'pipe'.
283
+ child.stdin.end(sqlBuf);
284
+ });
285
+ }
286
+ // No files / sql provided — check whether parent stdin is piped.
287
+ if (process.stdin.isTTY) {
288
+ throw new Error('znvault mysql exec: no SQL source provided. ' +
289
+ 'Pass --file <path>, --sql <sql>, or pipe SQL via stdin.');
290
+ }
291
+ // Parent stdin is piped — pass it through (inherit) while still inheriting
292
+ // the cnf fd at its own number.
293
+ const stdio = buildChildStdio(opts.fd, 'inherit');
294
+ const child = spawn(mysqlBin, args, { stdio, env });
295
+ return new Promise((resolve, reject) => {
296
+ child.on('error', (err) => { reject(err); });
297
+ child.on('close', (code) => { resolve(code ?? 1); });
298
+ });
299
+ }
300
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/mysql/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Types and constants for the `znvault mysql` command group.
3
+ */
4
+ /** Default lease TTL in seconds (spec F12 — may be capped by role maxTtl). */
5
+ export declare const DEFAULT_TTL_SECONDS = 600;
6
+ /** Options shared by exec and connect. */
7
+ export interface MysqlExecOptions {
8
+ /** Dynamic-secrets role name or ID to use for credential generation. */
9
+ role?: string;
10
+ /** Requested lease TTL in seconds (string from Commander, parsed to int). */
11
+ ttl?: string;
12
+ /** Database/schema to select as the default (overrides the credential's database). */
13
+ database?: string;
14
+ }
15
+ /** Options specific to `mysql exec`. */
16
+ export interface MysqlExecCmdOptions extends MysqlExecOptions {
17
+ /** SQL files to concatenate and feed to mysql via stdin (repeatable). */
18
+ file: string[];
19
+ /** Inline SQL string to feed to mysql via stdin. */
20
+ sql?: string;
21
+ }
22
+ /** Options for `mysql alias add`. */
23
+ export interface MysqlAliasAddOptions {
24
+ /** Connection name or ID to bind to the alias. */
25
+ connection: string;
26
+ /** Role name or ID to bind to the alias. */
27
+ role: string;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/mysql/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,7 @@
1
+ // src/commands/mysql/types.ts
2
+ /**
3
+ * Types and constants for the `znvault mysql` command group.
4
+ */
5
+ /** Default lease TTL in seconds (spec F12 — may be capped by role maxTtl). */
6
+ export const DEFAULT_TTL_SECONDS = 600;
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/mysql/types.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B;;GAEG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC"}
package/dist/index.js CHANGED
@@ -36,6 +36,7 @@ import { registerDynamicSecretsCommands } from './commands/dynamic-secrets.js';
36
36
  import { registerSSHCommands } from './commands/ssh/index.js';
37
37
  import { registerSSHCACommands } from './commands/ssh-ca.js';
38
38
  import { registerKmipCommands } from './commands/kmip/index.js';
39
+ import { registerMysqlCommands } from './commands/mysql/index.js';
39
40
  import { client } from './lib/client.js';
40
41
  import { setRuntimeProfile, getActiveProfileName, getConfig, getPlugins, getCredentials, hasApiKey, getStoredApiKeyInfo, } from './lib/config.js';
41
42
  import { cliBanner, helpHint, cliStatusDisplay, quickCommands } from './lib/visual.js';
@@ -139,6 +140,7 @@ registerDynamicSecretsCommands(program);
139
140
  registerSSHCommands(program);
140
141
  registerSSHCACommands(program);
141
142
  registerKmipCommands(program);
143
+ registerMysqlCommands(program);
142
144
  // Superadmin namespace (must come last so all referenced groups are loaded).
143
145
  registerSuperadminCommands(program);
144
146
  // Configure context-aware help (hides superadmin-only commands for regular users)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,iFAAiF;AACjF,qDAAqD;AACrD,uBAAuB,CAAC,OAAO,CAAC,SAAqE,CAAC,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAU5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;IAC1C,gFAAgF;IAChF,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,mFAAmF;KAClF,uBAAuB,EAAE;KACzB,OAAO,CAAC,UAAU,EAAE,CAAC;KACrB,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACzC,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC;KACzD,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;KAClE,MAAM,CAAC,SAAS,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,aAAa,EAAE,kEAAkE,CAAC;KACzF,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE;IAChD,uBAAuB;IACvB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAiB,CAAC;IAE/C,4CAA4C;IAC5C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,+DAA+D;IAC/D,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,gFAAgF;IAChF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,UAAU,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,IACE,OAAO,KAAK,SAAS;QACrB,UAAU,KAAK,KAAK;QACpB,aAAa,CAAC,IAAI,EAAE,CAAC,SAAS,KAAK,IAAI,EACvC,CAAC;QACD,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,gBAAgB,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEL,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,iDAAiD;AACjD,+DAA+D;AAC/D,kEAAkE;AAClE,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,mEAAmE;AACnE,+CAA+C;AAC/C,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,2BAA2B,CAAC,OAAO,CAAC,CAAC;AACrC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,8BAA8B,CAAC,OAAO,CAAC,CAAC;AACxC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,6EAA6E;AAC7E,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAEpC,kFAAkF;AAClF,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9B,6CAA6C;AAC7C,wBAAwB,EAAE,CAAC;AAE3B;;GAEG;AACH,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IAEzC,IAAI,UAAU,GAA8B,MAAM,CAAC;IACnD,IAAI,QAA4B,CAAC;IACjC,IAAI,UAA8B,CAAC;IACnC,IAAI,YAAgC,CAAC;IAErC,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,UAAU,GAAG,QAAQ,CAAC;QACtB,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,EAAE,WAAW,EAAE,CAAC;QACpC,UAAU,GAAG,KAAK,CAAC;QACnB,2CAA2C;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAwC,CAAC;YAC7G,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,eAAe,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,UAAU,EAAE;QACrB,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,GAAG;QACpB,UAAU;QACV,QAAQ;QACR,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC;AAED,yBAAyB;AACzB,KAAK,UAAU,IAAI;IACjB,mDAAmD;IACnD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6DAA6D;IAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,mBAAmB;IACnB,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;IACnC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC9C,aAAa,EACb,MAAM,EACN,SAAS,EACT,oBAAoB,CACrB,CAAC;YACF,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,WAAW;AACX,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ export interface Profile {
22
22
  sshUser?: string;
23
23
  sshIdentity?: string;
24
24
  sshBookmarks?: Record<string, SSHBookmark>;
25
+ mysqlAliases?: Record<string, {
26
+ connection: string;
27
+ role: string;
28
+ }>;
25
29
  }
26
30
  export interface SSHBookmark {
27
31
  host: 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;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"}
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;IAE3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zincapp/znvault-cli",
3
- "version": "4.7.1",
3
+ "version": "4.9.0",
4
4
  "description": "Official CLI for ZnVault administration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",