@zincapp/znvault-cli 4.7.1 → 4.8.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/types.d.ts +3 -0
- package/dist/commands/dynamic-secrets/types.d.ts.map +1 -1
- package/dist/commands/mysql/alias.d.ts +26 -0
- package/dist/commands/mysql/alias.d.ts.map +1 -0
- package/dist/commands/mysql/alias.js +56 -0
- package/dist/commands/mysql/alias.js.map +1 -0
- package/dist/commands/mysql/broker.d.ts +38 -0
- package/dist/commands/mysql/broker.d.ts.map +1 -0
- package/dist/commands/mysql/broker.js +171 -0
- package/dist/commands/mysql/broker.js.map +1 -0
- package/dist/commands/mysql/index.d.ts +33 -0
- package/dist/commands/mysql/index.d.ts.map +1 -0
- package/dist/commands/mysql/index.js +207 -0
- package/dist/commands/mysql/index.js.map +1 -0
- package/dist/commands/mysql/mycnf.d.ts +40 -0
- package/dist/commands/mysql/mycnf.d.ts.map +1 -0
- package/dist/commands/mysql/mycnf.js +136 -0
- package/dist/commands/mysql/mycnf.js.map +1 -0
- package/dist/commands/mysql/resolve.d.ts +18 -0
- package/dist/commands/mysql/resolve.d.ts.map +1 -0
- package/dist/commands/mysql/resolve.js +108 -0
- package/dist/commands/mysql/resolve.js.map +1 -0
- package/dist/commands/mysql/run.d.ts +156 -0
- package/dist/commands/mysql/run.d.ts.map +1 -0
- package/dist/commands/mysql/run.js +300 -0
- package/dist/commands/mysql/run.js.map +1 -0
- package/dist/commands/mysql/types.d.ts +29 -0
- package/dist/commands/mysql/types.d.ts.map +1 -0
- package/dist/commands/mysql/types.js +7 -0
- package/dist/commands/mysql/types.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config/types.d.ts +4 -0
- package/dist/lib/config/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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 @@
|
|
|
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":"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
|
|
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;
|
|
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"}
|