@neetru/cli 2.28.8 → 2.29.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/CHANGELOG.md +74 -1
- package/README.md +2 -1
- package/dist/commands/admin/oidc-login.d.ts +18 -0
- package/dist/commands/admin/oidc-login.js +62 -0
- package/dist/commands/admin/oidc-login.js.map +1 -1
- package/dist/commands/agent-release.d.ts +2 -0
- package/dist/commands/agent-release.js +27 -2
- package/dist/commands/agent-release.js.map +1 -1
- package/dist/commands/agent-write.d.ts +1 -0
- package/dist/commands/agent-write.js +4 -0
- package/dist/commands/agent-write.js.map +1 -1
- package/dist/commands/code.js +10 -1
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/db-move.d.ts +50 -1
- package/dist/commands/db-move.js +137 -13
- package/dist/commands/db-move.js.map +1 -1
- package/dist/commands/db.js +17 -9
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.d.ts +15 -0
- package/dist/commands/deploy.js +76 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deployments.d.ts +7 -1
- package/dist/commands/deployments.js +59 -8
- package/dist/commands/deployments.js.map +1 -1
- package/dist/commands/doctor.js +12 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/ops.d.ts +17 -0
- package/dist/commands/ops.js +50 -18
- package/dist/commands/ops.js.map +1 -1
- package/dist/commands/products-db.d.ts +1 -0
- package/dist/commands/products-db.js +15 -15
- package/dist/commands/products-db.js.map +1 -1
- package/dist/commands/servers.d.ts +30 -3
- package/dist/commands/servers.js +130 -8
- package/dist/commands/servers.js.map +1 -1
- package/dist/commands/vm.d.ts +2 -0
- package/dist/commands/vm.js +8 -0
- package/dist/commands/vm.js.map +1 -1
- package/dist/index.js +90 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-artifact-url.d.ts +19 -0
- package/dist/lib/agent-artifact-url.js +48 -0
- package/dist/lib/agent-artifact-url.js.map +1 -0
- package/dist/lib/api-client.d.ts +11 -3
- package/dist/lib/api-client.js +55 -24
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/api-error.js +32 -1
- package/dist/lib/api-error.js.map +1 -1
- package/dist/lib/auth.d.ts +2 -9
- package/dist/lib/auth.js +34 -18
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/cli-write.d.ts +31 -0
- package/dist/lib/cli-write.js +51 -2
- package/dist/lib/cli-write.js.map +1 -1
- package/dist/lib/telemetry.d.ts +7 -0
- package/dist/lib/telemetry.js +9 -0
- package/dist/lib/telemetry.js.map +1 -1
- package/package.json +2 -1
package/dist/commands/servers.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import chalk from 'chalk';
|
|
10
10
|
import ora from 'ora';
|
|
11
|
-
import { apiRequest } from '../lib/api-client.js';
|
|
11
|
+
import { apiRequest, CliApiError } from '../lib/api-client.js';
|
|
12
12
|
import { requireToken, handleApiError } from '../lib/cli-read.js';
|
|
13
13
|
import { confirmDestructive, printWriteResult, resolveStepUp, } from '../lib/cli-write.js';
|
|
14
14
|
import { renderTable } from '../lib/render.js';
|
|
@@ -144,13 +144,10 @@ export async function runServersProvision(opts) {
|
|
|
144
144
|
(await promptText('Machine type:', { default: 'e2-small', json: opts.json }));
|
|
145
145
|
const role = opts.role ?? 'multi';
|
|
146
146
|
const isDbVm = !!opts.isDbVm;
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
// (GAP-M0-1)
|
|
150
|
-
|
|
151
|
-
const headers = isDbVm
|
|
152
|
-
? (await resolveStepUp({ mfaToken: opts.mfaToken, json: opts.json })).headers
|
|
153
|
-
: undefined;
|
|
147
|
+
// M6 (auditoria cli/v1 2026-09-29, revisão): o Core exige step-up MFA em
|
|
148
|
+
// TODA provisão — toda VM é faturada e a resposta traz token de registro de
|
|
149
|
+
// agente. Antes (GAP-M0-1) só `isDbVm=true` era gateado.
|
|
150
|
+
const { headers } = await resolveStepUp({ mfaToken: opts.mfaToken, json: opts.json });
|
|
154
151
|
const displayName = name || `(auto snee-NNN-${role})`;
|
|
155
152
|
const spinner = opts.json
|
|
156
153
|
? null
|
|
@@ -499,6 +496,131 @@ export async function runServersDispatch(id, commandType, opts) {
|
|
|
499
496
|
}
|
|
500
497
|
printWriteResult({ commandId: res.commandId }, `Comando enfileirado: ${res.commandId}`, opts.json);
|
|
501
498
|
}
|
|
499
|
+
/** Guia PT-BR (o que significa + o que fazer) pras recusas 409 da trava lógica. */
|
|
500
|
+
const PGBOUNCER_SYNC_REFUSAL_GUIDANCE = {
|
|
501
|
+
no_active_databases: 'Não há banco Postgres ATIVO nesta VM — nada para sincronizar no PgBouncer. Confira ' +
|
|
502
|
+
`${chalk.cyan('neetru servers describe <serverId>')} (bancos hospedados).`,
|
|
503
|
+
replace_incomplete: "mode 'replace' recusado: a lista calculada AGORA não é a completa da VM (a mensagem " +
|
|
504
|
+
'acima já lista os motivos — banco em status bloqueante, migração de banco em curso ou ' +
|
|
505
|
+
"papel fora do formato). Resolva o bloqueio, ou use o padrão 'merge' (sem --replace), que " +
|
|
506
|
+
'só faz upsert dos papéis esperados.',
|
|
507
|
+
};
|
|
508
|
+
/**
|
|
509
|
+
* `neetru servers pgbouncer sync-userlist <serverId>` — re-sincroniza o
|
|
510
|
+
* userlist do PgBouncer da VM (`agent.db.pgbouncer.sync_userlist`, Core PR
|
|
511
|
+
* #539): o agente relê o hash SCRAM do `pg_shadow` de cada papel Postgres
|
|
512
|
+
* ATIVO da VM e reescreve as linhas — remediação de SASL sem SSH e sem
|
|
513
|
+
* rotacionar senha. A lista de papéis é montada pelo Core a partir de
|
|
514
|
+
* `product_databases` (nunca vem do cliente). `merge` (padrão) só faz upsert;
|
|
515
|
+
* `--replace` reescreve o arquivo INTEIRO e é recusado (`replace_incomplete`)
|
|
516
|
+
* se a lista não for a COMPLETA da VM (banco bloqueado, migração de banco
|
|
517
|
+
* ativa ou papel fora do formato).
|
|
518
|
+
*
|
|
519
|
+
* MFA INCONDICIONAL — diferente da maioria das rotas com dry-run deste CLI: a
|
|
520
|
+
* rota do Core chama `requireCliStepUpMfa` ANTES de ler `dryRun`, então
|
|
521
|
+
* `--dry-run` aqui NÃO pula o step-up (fecha o bypass que dry-run
|
|
522
|
+
* representaria). Por isso este comando NUNCA repassa `opts.dryRun` pro
|
|
523
|
+
* `resolveStepUp` padrão (que pularia o header MFA) — resolve o MFA sempre e
|
|
524
|
+
* anexa `?dryRun=true` à parte.
|
|
525
|
+
*/
|
|
526
|
+
export async function runServersPgbouncerSyncUserlist(serverId, opts = {}) {
|
|
527
|
+
if (!opts.json)
|
|
528
|
+
log.banner();
|
|
529
|
+
if (!serverId || !/^[a-zA-Z0-9_-]{1,64}$/.test(serverId)) {
|
|
530
|
+
const msg = 'serverId inválido.';
|
|
531
|
+
if (opts.json)
|
|
532
|
+
console.log(JSON.stringify({ ok: false, error: 'invalid_param', message: msg }));
|
|
533
|
+
else
|
|
534
|
+
log.error(msg);
|
|
535
|
+
safeExit(1);
|
|
536
|
+
}
|
|
537
|
+
const mode = opts.replace ? 'replace' : 'merge';
|
|
538
|
+
// Espelho client-side de `reason_required` — o Core TAMBÉM isenta em
|
|
539
|
+
// dry-run (só preview; nada é aplicado, então o motivo ainda não importa).
|
|
540
|
+
if (mode === 'replace' && !opts.dryRun && (!opts.reason || opts.reason.trim().length < 10)) {
|
|
541
|
+
const msg = "--replace reescreve o userlist INTEIRO da VM — exige --reason com pelo menos 10 " +
|
|
542
|
+
'caracteres (vai pro audit).';
|
|
543
|
+
if (opts.json)
|
|
544
|
+
console.log(JSON.stringify({ ok: false, error: 'reason_required', message: msg }));
|
|
545
|
+
else
|
|
546
|
+
log.error(msg);
|
|
547
|
+
safeExit(1);
|
|
548
|
+
}
|
|
549
|
+
await requireToken(opts.json);
|
|
550
|
+
if (mode === 'replace' && !opts.dryRun) {
|
|
551
|
+
await confirmDestructive(`Reescrever (REPLACE) o userlist do PgBouncer na VM ${serverId}? A lista completa ` +
|
|
552
|
+
'calculada AGORA substitui TODAS as linhas — qualquer papel fora dela é removido. O ' +
|
|
553
|
+
'Core recusa (replace_incomplete) se a lista não for a completa da VM.', { yes: opts.yes, json: opts.json });
|
|
554
|
+
}
|
|
555
|
+
const { headers } = await resolveStepUp({
|
|
556
|
+
mfaToken: opts.mfaToken,
|
|
557
|
+
json: opts.json,
|
|
558
|
+
yes: opts.yes,
|
|
559
|
+
});
|
|
560
|
+
const body = {};
|
|
561
|
+
if (mode === 'replace')
|
|
562
|
+
body.mode = 'replace';
|
|
563
|
+
if (opts.reason)
|
|
564
|
+
body.reason = opts.reason.trim();
|
|
565
|
+
const spinner = opts.json
|
|
566
|
+
? null
|
|
567
|
+
: ora({
|
|
568
|
+
text: opts.dryRun
|
|
569
|
+
? 'Calculando o plano do PgBouncer (dry-run)…'
|
|
570
|
+
: 'Sincronizando o userlist do PgBouncer…',
|
|
571
|
+
color: 'blue',
|
|
572
|
+
}).start();
|
|
573
|
+
let resp;
|
|
574
|
+
try {
|
|
575
|
+
resp = await apiRequest(`/api/cli/v1/servers/${encodeURIComponent(serverId)}/pgbouncer/sync-userlist${opts.dryRun ? '?dryRun=true' : ''}`, { method: 'POST', body, headers });
|
|
576
|
+
spinner?.stop();
|
|
577
|
+
}
|
|
578
|
+
catch (err) {
|
|
579
|
+
spinner?.fail('Falha ao sincronizar o userlist do PgBouncer.');
|
|
580
|
+
// 409 = recusa da TRAVA LÓGICA (não erro de transporte) — guidance PT-BR
|
|
581
|
+
// específica por código, igual ao padrão de `db move decommission`.
|
|
582
|
+
if (err instanceof CliApiError && err.status === 409) {
|
|
583
|
+
const guidance = PGBOUNCER_SYNC_REFUSAL_GUIDANCE[err.code];
|
|
584
|
+
if (opts.json) {
|
|
585
|
+
console.log(JSON.stringify({ ok: false, error: err.code, message: err.message, guidance: guidance ?? null }));
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
588
|
+
log.error(guidance ? `${err.message}\n ${guidance}` : err.message);
|
|
589
|
+
}
|
|
590
|
+
safeExit(1);
|
|
591
|
+
}
|
|
592
|
+
handleApiError(err, opts.json);
|
|
593
|
+
}
|
|
594
|
+
if (opts.json) {
|
|
595
|
+
console.log(JSON.stringify({ ok: true, ...resp }));
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
const plan = 'wouldApply' in resp ? resp.wouldApply : resp;
|
|
599
|
+
if ('wouldApply' in resp) {
|
|
600
|
+
log.warn(`[dry-run] Nada foi aplicado — plano calculado (mode ${plan.mode}):`);
|
|
601
|
+
}
|
|
602
|
+
else {
|
|
603
|
+
log.success(`Userlist do PgBouncer sincronizado na VM ${resp.serverId} (mode ${resp.mode}).`);
|
|
604
|
+
}
|
|
605
|
+
renderTable([
|
|
606
|
+
{ header: 'DB', value: (r) => r.dbId, maxWidth: 24 },
|
|
607
|
+
{ header: 'PAPÉIS', value: (r) => r.roles.join(', '), maxWidth: 50 },
|
|
608
|
+
], plan.databases);
|
|
609
|
+
if (plan.skipped.length > 0) {
|
|
610
|
+
log.heading('Bancos deixados de fora (papel fora do formato)');
|
|
611
|
+
renderTable([
|
|
612
|
+
{ header: 'DB', value: (r) => r.dbId, maxWidth: 24 },
|
|
613
|
+
{ header: 'MOTIVO', value: (r) => r.reason, maxWidth: 50 },
|
|
614
|
+
], plan.skipped);
|
|
615
|
+
}
|
|
616
|
+
if ('wouldApply' in resp)
|
|
617
|
+
return;
|
|
618
|
+
log.dim(` Papéis enviados ao agente: ${resp.users.join(', ')}`);
|
|
619
|
+
log.success(`commandId: ${resp.commandId}`);
|
|
620
|
+
log.info('O agente aplica de forma assíncrona — acompanhe com: ' +
|
|
621
|
+
`${chalk.cyan(`neetru servers logs ${serverId} --source audit`)} ou pelo próximo ` +
|
|
622
|
+
`heartbeat (${chalk.cyan(`neetru servers describe ${serverId}`)}).`);
|
|
623
|
+
}
|
|
502
624
|
/**
|
|
503
625
|
* `neetru servers fleet decisions approve <id>` — aprova uma fleet_decision proposed.
|
|
504
626
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/commands/servers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/commands/servers.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/vm.d.ts
CHANGED
package/dist/commands/vm.js
CHANGED
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
* Fluxo de Ambientes Fase 2. Mostra a spec + custo estimado, pede confirmação
|
|
5
5
|
* (regra: nunca cria infra silenciosamente) e dispara o provisionamento.
|
|
6
6
|
* A regra "1 VM única" é imposta no servidor.
|
|
7
|
+
*
|
|
8
|
+
* Auditoria cli/v1 2026-09-29 (M6): cada chamada cria uma VM FATURADA — o Core
|
|
9
|
+
* exige step-up MFA (sessão 1h via `neetru auth mfa-session` → `--mfa-token` →
|
|
10
|
+
* prompt TOTP), resolvido depois da confirmação de custo.
|
|
7
11
|
*/
|
|
8
12
|
import inquirer from 'inquirer';
|
|
9
13
|
import { apiRequest } from '../lib/api-client.js';
|
|
10
14
|
import { handleApiError } from '../lib/api-error.js';
|
|
15
|
+
import { resolveStepUp } from '../lib/cli-write.js';
|
|
11
16
|
import { log } from '../utils/logger.js';
|
|
12
17
|
import { safeExit } from '../utils/safe-exit.js';
|
|
13
18
|
// handleApiError unificado em ../lib/api-error.js (auditoria qualidade 2026-06-20).
|
|
@@ -55,10 +60,13 @@ export async function runVmProvision(opts) {
|
|
|
55
60
|
safeExit(0);
|
|
56
61
|
}
|
|
57
62
|
}
|
|
63
|
+
// M6: VM paga exige step-up MFA (a chave sozinha não gera custo).
|
|
64
|
+
const { headers } = await resolveStepUp({ mfaToken: opts.mfaToken, nonInteractive });
|
|
58
65
|
let res;
|
|
59
66
|
try {
|
|
60
67
|
res = await apiRequest('/api/cli/v1/vm/provision', {
|
|
61
68
|
method: 'POST',
|
|
69
|
+
headers,
|
|
62
70
|
body: { machineType: opts.machineType, zone: opts.zone, confirmed: true },
|
|
63
71
|
});
|
|
64
72
|
}
|
package/dist/commands/vm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/commands/vm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vm.js","sourceRoot":"","sources":["../../src/commands/vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAyBjD,oFAAoF;AAEpF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,GAAG,CAAC,MAAM,EAAE,CAAC;IAEb,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,WAAW;QAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,IAAI;QAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE5B,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAS,sBAAsB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,GAAG,CAAC,OAAO,CAAC,iCAAiC,IAAI,CAAC,YAAY,kBAAkB,CAAC,CAAC;QAClF,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IACxD,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,uBAAuB,iBAAiB,CAAC,CAAC;IAE1E,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAChF,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAkB;YACpD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,+CAA+C;gBACxD,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACvC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAErF,IAAI,GAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,UAAU,CAAsB,0BAA0B,EAAE;YACtE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SAC1E,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,WAAW,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IACrF,GAAG,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IACtF,QAAQ,CAAC,CAAC,CAAC,CAAC;AACd,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { log } from './utils/logger.js';
|
|
|
4
4
|
import { CLI_VERSION } from './version.js';
|
|
5
5
|
import { installTelemetryFlushHook, markCommandStart, markCommandEnd, } from './lib/telemetry.js';
|
|
6
6
|
import { safeExit, isSafeExitHalt } from './utils/safe-exit.js';
|
|
7
|
+
import { CliApiError } from './lib/api-client.js';
|
|
7
8
|
// UV_HANDLE_CLOSING no Windows (bug_818cf6d): o double-destroy de stdin (handler
|
|
8
9
|
// 'exit' redundante) foi removido em 2026-07-15 (ddd479f), MAS isso não bastou
|
|
9
10
|
// — a causa dominante é o `uv_async_t` do undici (fetch) ainda vivo quando o
|
|
@@ -30,6 +31,11 @@ function handleFatalSignal(err) {
|
|
|
30
31
|
return; // saída já agendada dentro do safeExit
|
|
31
32
|
try {
|
|
32
33
|
log.error(err instanceof Error ? (err.stack ?? err.message) : String(err));
|
|
34
|
+
// LABS #6 (2026-09-28): se o erro carrega o x-correlation-id do Core, mostra
|
|
35
|
+
// no rodapé pra o usuário informar ao suporte — fecha o loop de debug de campo.
|
|
36
|
+
if (err instanceof CliApiError && err.correlationId) {
|
|
37
|
+
log.error(`ref: ${err.correlationId} — informe ao suporte`);
|
|
38
|
+
}
|
|
33
39
|
}
|
|
34
40
|
catch {
|
|
35
41
|
/* logger indisponível — segue direto pro exit deferido */
|
|
@@ -438,6 +444,7 @@ program
|
|
|
438
444
|
.option('--build-local', 'forçar docker build local em vez de Cloud Build remoto (exige Docker instalado). (target=cloud-run)')
|
|
439
445
|
.option('--env-file <file>', 'arquivo .env com vars passadas pro deploy')
|
|
440
446
|
.option('--env <env>', 'ambiente alvo: dev | staging | prod', 'dev')
|
|
447
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (só --env prod; ou use `neetru auth mfa-session`)')
|
|
441
448
|
.option('--local-artifact', 'F-11: NÃO faz upload pra GCS — manda file:// pro Core (só funciona se o agent compartilha FS com este CLI)')
|
|
442
449
|
.option('--non-interactive', 'falha em vez de perguntar (modo CI)')
|
|
443
450
|
.option('--force', 'ignora o gate de schema e prossegue mesmo com divergência de fingerprint')
|
|
@@ -466,6 +473,7 @@ program
|
|
|
466
473
|
nonInteractive: !!opts.nonInteractive,
|
|
467
474
|
force: !!opts.force,
|
|
468
475
|
skipHealthProbe: !!opts.skipHealthProbe,
|
|
476
|
+
mfaToken: opts.mfaToken,
|
|
469
477
|
json: !!opts.json,
|
|
470
478
|
});
|
|
471
479
|
});
|
|
@@ -709,10 +717,10 @@ serversCmd
|
|
|
709
717
|
.option('--zone <zone>', 'zona GCP (ex: us-central1-a)')
|
|
710
718
|
.option('--machine-type <type>', 'machine type GCP (ex: e2-small)')
|
|
711
719
|
.option('--role <role>', 'multi (default) | db | app | worker — role da VM (nome/metadado)')
|
|
712
|
-
.option('--is-db-vm', 'postura de rede de VM de banco: sem IP público + tag neetru-db-vm
|
|
720
|
+
.option('--is-db-vm', 'postura de rede de VM de banco: sem IP público + tag neetru-db-vm')
|
|
713
721
|
.option('--tenant <tenantId>', 'tenant associado')
|
|
714
722
|
.option('--customer <customerId>', 'customer associado')
|
|
715
|
-
.option('--mfa-token <code>', 'código TOTP para step-up MFA (
|
|
723
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
|
|
716
724
|
.option('--json', 'saída em JSON')
|
|
717
725
|
.action(async (opts) => {
|
|
718
726
|
const { runServersProvision } = await import('./commands/servers.js');
|
|
@@ -848,6 +856,34 @@ serversCmd
|
|
|
848
856
|
json: !!opts.json,
|
|
849
857
|
});
|
|
850
858
|
});
|
|
859
|
+
// ── neetru servers pgbouncer ─────────────────────────────────────────────
|
|
860
|
+
// Remediação SASL sem SSH (Core PR #539): re-sincroniza o userlist do
|
|
861
|
+
// PgBouncer da VM relendo o hash SCRAM do pg_shadow de cada papel. MFA
|
|
862
|
+
// INCONDICIONAL — a rota do Core exige step-up MESMO em --dry-run (fecha o
|
|
863
|
+
// bypass que dry-run representaria em outras rotas).
|
|
864
|
+
const serversPgbouncerCmd = serversCmd
|
|
865
|
+
.command('pgbouncer')
|
|
866
|
+
.description('Operações de PgBouncer da VM (userlist)');
|
|
867
|
+
serversPgbouncerCmd
|
|
868
|
+
.command('sync-userlist <serverId>')
|
|
869
|
+
.description('Re-sincronizar o userlist do PgBouncer da VM (POST /api/cli/v1/servers/[id]/pgbouncer/sync-userlist — exige MFA mesmo em --dry-run)')
|
|
870
|
+
.option('--replace', "mode 'replace' — reescreve o userlist INTEIRO da VM (exige --reason ≥10 chars fora de --dry-run)")
|
|
871
|
+
.option('--reason <text>', 'motivo do replace (vai pro audit)')
|
|
872
|
+
.option('--dry-run', 'só calcula e mostra o plano, sem despachar (ainda exige MFA)')
|
|
873
|
+
.option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
|
|
874
|
+
.option('-y, --yes', 'pula a confirmação interativa do --replace (modo script)')
|
|
875
|
+
.option('--json', 'saída em JSON')
|
|
876
|
+
.action(async (serverId, opts) => {
|
|
877
|
+
const { runServersPgbouncerSyncUserlist } = await import('./commands/servers.js');
|
|
878
|
+
await runServersPgbouncerSyncUserlist(serverId, {
|
|
879
|
+
replace: !!opts.replace,
|
|
880
|
+
reason: opts.reason,
|
|
881
|
+
dryRun: !!opts.dryRun,
|
|
882
|
+
mfaToken: opts.mfaToken,
|
|
883
|
+
yes: !!opts.yes,
|
|
884
|
+
json: !!opts.json,
|
|
885
|
+
});
|
|
886
|
+
});
|
|
851
887
|
// ── neetru workspaces ─────────────────────────────────────────────────
|
|
852
888
|
const workspacesCmd = program
|
|
853
889
|
.command('workspaces')
|
|
@@ -1313,10 +1349,15 @@ adminDatabaseCmd
|
|
|
1313
1349
|
.command('set-status [id] [status]')
|
|
1314
1350
|
.description('[Staff] ESCRITA — forçar status do ciclo de vida de um banco (active/failed/archived/…)')
|
|
1315
1351
|
.option('--reason <text>', 'motivo da mudança de status')
|
|
1352
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (exigido se o banco está active/degraded)')
|
|
1316
1353
|
.option('--json')
|
|
1317
1354
|
.action(async (id, status, opts) => {
|
|
1318
1355
|
const { runDbSetStatus } = await import('./commands/products-db.js');
|
|
1319
|
-
await runDbSetStatus(id, status, {
|
|
1356
|
+
await runDbSetStatus(id, status, {
|
|
1357
|
+
reason: opts.reason,
|
|
1358
|
+
mfaToken: opts.mfaToken,
|
|
1359
|
+
json: !!opts.json,
|
|
1360
|
+
});
|
|
1320
1361
|
});
|
|
1321
1362
|
adminDatabaseCmd
|
|
1322
1363
|
.command('retry [id]')
|
|
@@ -1454,6 +1495,23 @@ adminOidcLoginCmd
|
|
|
1454
1495
|
json: !!opts.json,
|
|
1455
1496
|
});
|
|
1456
1497
|
});
|
|
1498
|
+
adminOidcLoginCmd
|
|
1499
|
+
.command('rotate <clientId>')
|
|
1500
|
+
.description('[Staff] Rotacionar o client_secret de um login-client OIDC (exige MFA). ' +
|
|
1501
|
+
'O secret novo NÃO é exibido — o próximo deploy o injeta server-side.')
|
|
1502
|
+
.requiredOption('--product-id <id>', 'ID (ou slug) do produto dono do client')
|
|
1503
|
+
.option('--immediate', 'revoga o secret anterior NA HORA (vazamento) — o login do produto cai até o próximo deploy')
|
|
1504
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
|
|
1505
|
+
.option('--json', 'saída em JSON')
|
|
1506
|
+
.action(async (clientId, opts) => {
|
|
1507
|
+
const { runOidcLoginRotate } = await import('./commands/admin/oidc-login.js');
|
|
1508
|
+
await runOidcLoginRotate(clientId, {
|
|
1509
|
+
productId: opts.productId,
|
|
1510
|
+
immediate: !!opts.immediate,
|
|
1511
|
+
mfaToken: opts.mfaToken,
|
|
1512
|
+
json: !!opts.json,
|
|
1513
|
+
});
|
|
1514
|
+
});
|
|
1457
1515
|
adminOidcLoginCmd
|
|
1458
1516
|
.command('list')
|
|
1459
1517
|
.description('[Staff] Listar login-clients OIDC de um produto (mascarado)')
|
|
@@ -1617,12 +1675,14 @@ vmCmd
|
|
|
1617
1675
|
.option('--machine-type <type>', 'machine type GCP (default e2-medium)')
|
|
1618
1676
|
.option('--zone <zone>', 'zona GCP (default southamerica-east1-a)')
|
|
1619
1677
|
.option('-y, --yes', 'confirma o custo recorrente sem prompt')
|
|
1678
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
|
|
1620
1679
|
.action(async (opts) => {
|
|
1621
1680
|
const { runVmProvision } = await import('./commands/vm.js');
|
|
1622
1681
|
await runVmProvision({
|
|
1623
1682
|
machineType: opts.machineType,
|
|
1624
1683
|
zone: opts.zone,
|
|
1625
1684
|
yes: !!opts.yes,
|
|
1685
|
+
mfaToken: opts.mfaToken,
|
|
1626
1686
|
});
|
|
1627
1687
|
});
|
|
1628
1688
|
// ── neetru vm memory ──────────────────────────────────────────────────
|
|
@@ -2143,14 +2203,18 @@ dbMoveCmd
|
|
|
2143
2203
|
});
|
|
2144
2204
|
});
|
|
2145
2205
|
// ── neetru db move decommission ───────────────────────────────────────
|
|
2146
|
-
// Comando SEPARADO e explícito que
|
|
2147
|
-
// (fecha a janela de rollback). É o único caminho que destrói a
|
|
2148
|
-
// gated por MFA e recusado client-side se o ledger ainda não aponta
|
|
2149
|
-
// destino (espelho da INV-DESTROY). O Core é a autoridade final
|
|
2206
|
+
// Comando SEPARADO e explícito que DESPACHA o drop da ORIGEM de um move JÁ
|
|
2207
|
+
// concluído (fecha a janela de rollback). É o único caminho que destrói a
|
|
2208
|
+
// origem — gated por MFA e recusado client-side se o ledger ainda não aponta
|
|
2209
|
+
// pro destino (espelho da INV-DESTROY). O Core é a autoridade final (checa
|
|
2210
|
+
// também o período de observação de 7 dias após o `done`). O drop é
|
|
2211
|
+
// ASSÍNCRONO: este comando só confirma o despacho — acompanhe o desfecho com
|
|
2212
|
+
// `db move status`. `--retry` só é aceito depois de uma tentativa `failed`.
|
|
2150
2213
|
dbMoveCmd
|
|
2151
2214
|
.command('decommission <migrationId>')
|
|
2152
|
-
.description('
|
|
2215
|
+
.description('Despachar o drop (DESCOMISSIONAR) da origem de um move concluído — assíncrono, fecha o rollback (POST /api/cli/v1/db/relocate/[id]/decommission — exige MFA)')
|
|
2153
2216
|
.requiredOption('--reason <text>', 'motivo do descomissionamento (vai pro audit)')
|
|
2217
|
+
.option('--retry', 'nova tentativa explícita — só aceita depois de uma tentativa anterior "failed"')
|
|
2154
2218
|
.option('-y, --yes', 'pula a confirmação interativa (modo script)')
|
|
2155
2219
|
.option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
|
|
2156
2220
|
.option('--json', 'saída em JSON')
|
|
@@ -2158,6 +2222,7 @@ dbMoveCmd
|
|
|
2158
2222
|
const { runDbMoveDecommission } = await import('./commands/db-move.js');
|
|
2159
2223
|
await runDbMoveDecommission(migrationId, {
|
|
2160
2224
|
reason: opts.reason,
|
|
2225
|
+
retry: !!opts.retry,
|
|
2161
2226
|
yes: !!opts.yes,
|
|
2162
2227
|
mfaToken: opts.mfaToken,
|
|
2163
2228
|
json: !!opts.json,
|
|
@@ -2320,6 +2385,7 @@ agentCmd
|
|
|
2320
2385
|
.option('--binary <arch=path>', 'binário local (sha256+size computados, URL canônica GCS auto-derivada). Repetível.', (val, prev = []) => [...prev, val])
|
|
2321
2386
|
.option('--artifact <arch=URL@sha256@sizeBytes>', 'artifact com URL/sha256/size explícitos (não toca FS). Repetível.', (val, prev = []) => [...prev, val])
|
|
2322
2387
|
.option('--dry-run', 'imprime payload sem enviar')
|
|
2388
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
|
|
2323
2389
|
.action(async (opts) => {
|
|
2324
2390
|
const { runAgentRelease } = await import('./commands/agent-release.js');
|
|
2325
2391
|
await runAgentRelease({
|
|
@@ -2330,6 +2396,7 @@ agentCmd
|
|
|
2330
2396
|
binary: opts.binary,
|
|
2331
2397
|
artifact: opts.artifact,
|
|
2332
2398
|
dryRun: !!opts.dryRun,
|
|
2399
|
+
mfaToken: opts.mfaToken,
|
|
2333
2400
|
});
|
|
2334
2401
|
});
|
|
2335
2402
|
agentCmd
|
|
@@ -2357,11 +2424,12 @@ const agentCanaryCmd = agentCmd
|
|
|
2357
2424
|
.description('Controlar canary rollout de releases do agente');
|
|
2358
2425
|
agentCanaryCmd
|
|
2359
2426
|
.command('start <version>')
|
|
2360
|
-
.description('Iniciar canary rollout de uma release (phase1 5%)')
|
|
2427
|
+
.description('Iniciar canary rollout de uma release (phase1 5%) — exige MFA')
|
|
2428
|
+
.option('--mfa-token <code>', 'código TOTP para step-up MFA (ou use `neetru auth mfa-session`)')
|
|
2361
2429
|
.option('--json', 'saída em JSON')
|
|
2362
2430
|
.action(async (version, opts) => {
|
|
2363
2431
|
const { runAgentCanaryStart } = await import('./commands/agent-write.js');
|
|
2364
|
-
await runAgentCanaryStart(version, { json: !!opts.json });
|
|
2432
|
+
await runAgentCanaryStart(version, { json: !!opts.json, mfaToken: opts.mfaToken });
|
|
2365
2433
|
});
|
|
2366
2434
|
agentCanaryCmd
|
|
2367
2435
|
.command('rollback <version>')
|
|
@@ -2949,7 +3017,18 @@ mobileCmd
|
|
|
2949
3017
|
registerChatCommand(program);
|
|
2950
3018
|
}
|
|
2951
3019
|
// ── parse ─────────────────────────────────────────────────────────────
|
|
2952
|
-
if (
|
|
3020
|
+
if (process.argv[2] === '--version' || process.argv[2] === '-v') {
|
|
3021
|
+
// B3 (LABS 2026-09-28): `.version(CLI_VERSION, '-V')` liberou `--version` pros
|
|
3022
|
+
// subcomandos que o usam como opção própria (build/deploy/workspaces advance/
|
|
3023
|
+
// deployments create/api-catalog/agent release), mas removeu a long flag do
|
|
3024
|
+
// ROOT — `neetru --version` e `neetru -v` passaram a dar "unknown option".
|
|
3025
|
+
// Reintroduz AMBAS só no TOPO (primeiro token = argv[2]); o `--version <valor>`
|
|
3026
|
+
// dos subcomandos vem sempre DEPOIS do nome do comando, nunca como argv[2],
|
|
3027
|
+
// então não colide.
|
|
3028
|
+
console.log(CLI_VERSION);
|
|
3029
|
+
safeExit(0);
|
|
3030
|
+
}
|
|
3031
|
+
else if (!process.argv.slice(2).length) {
|
|
2953
3032
|
if (process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== 'true') {
|
|
2954
3033
|
const { runTerminalUi } = await import('./commands/ui.js');
|
|
2955
3034
|
await runTerminalUi();
|