@neetru/cli 2.28.10 → 2.31.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 +92 -1
- package/README.md +61 -17
- 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 +45 -0
- package/dist/commands/deploy.js +181 -2
- 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/dev-up.d.ts +7 -5
- package/dist/commands/dev-up.js +24 -23
- package/dist/commands/dev-up.js.map +1 -1
- package/dist/commands/docs-produto.d.ts +65 -0
- package/dist/commands/docs-produto.js +322 -0
- package/dist/commands/docs-produto.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +7 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/new.d.ts +2 -0
- package/dist/commands/new.js +2 -0
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/servers.d.ts +28 -0
- package/dist/commands/servers.js +126 -1
- package/dist/commands/servers.js.map +1 -1
- package/dist/index.js +110 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +8 -1
- package/dist/lib/api-client.js +20 -2
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/compose-generator.d.ts +13 -9
- package/dist/lib/compose-generator.js +28 -60
- package/dist/lib/compose-generator.js.map +1 -1
- package/dist/lib/config-schema.d.ts +40 -6
- package/dist/lib/config-schema.js +11 -0
- package/dist/lib/config-schema.js.map +1 -1
- package/dist/lib/product-docs/check.d.ts +62 -0
- package/dist/lib/product-docs/check.js +489 -0
- package/dist/lib/product-docs/check.js.map +1 -0
- package/dist/lib/product-docs/config.d.ts +66 -0
- package/dist/lib/product-docs/config.js +234 -0
- package/dist/lib/product-docs/config.js.map +1 -0
- package/dist/lib/product-docs/dates.d.ts +17 -0
- package/dist/lib/product-docs/dates.js +41 -0
- package/dist/lib/product-docs/dates.js.map +1 -0
- package/dist/lib/product-docs/frontmatter.d.ts +43 -0
- package/dist/lib/product-docs/frontmatter.js +302 -0
- package/dist/lib/product-docs/frontmatter.js.map +1 -0
- package/dist/lib/product-docs/git.d.ts +16 -0
- package/dist/lib/product-docs/git.js +92 -0
- package/dist/lib/product-docs/git.js.map +1 -0
- package/dist/lib/product-docs/markdown.d.ts +27 -0
- package/dist/lib/product-docs/markdown.js +98 -0
- package/dist/lib/product-docs/markdown.js.map +1 -0
- package/dist/lib/product-docs/ops.d.ts +133 -0
- package/dist/lib/product-docs/ops.js +975 -0
- package/dist/lib/product-docs/ops.js.map +1 -0
- package/dist/lib/product-docs/structure.d.ts +61 -0
- package/dist/lib/product-docs/structure.js +239 -0
- package/dist/lib/product-docs/structure.js.map +1 -0
- package/dist/lib/product-docs/sync.d.ts +101 -0
- package/dist/lib/product-docs/sync.js +313 -0
- package/dist/lib/product-docs/sync.js.map +1 -0
- package/dist/lib/product-docs/taxonomy.d.ts +46 -0
- package/dist/lib/product-docs/taxonomy.js +163 -0
- package/dist/lib/product-docs/taxonomy.js.map +1 -0
- package/dist/lib/product-docs/templates.d.ts +53 -0
- package/dist/lib/product-docs/templates.js +245 -0
- package/dist/lib/product-docs/templates.js.map +1 -0
- package/dist/lib/public-secret-scan.d.ts +76 -0
- package/dist/lib/public-secret-scan.js +446 -0
- package/dist/lib/public-secret-scan.js.map +1 -0
- package/package.json +2 -1
- package/templates/dev/Dockerfile.agent +0 -39
- package/templates/dev/agent-entrypoint.sh +0 -41
- package/templates/dev/docker-compose.dev.yml +0 -63
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';
|
|
@@ -496,6 +496,131 @@ export async function runServersDispatch(id, commandType, opts) {
|
|
|
496
496
|
}
|
|
497
497
|
printWriteResult({ commandId: res.commandId }, `Comando enfileirado: ${res.commandId}`, opts.json);
|
|
498
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
|
+
}
|
|
499
624
|
/**
|
|
500
625
|
* `neetru servers fleet decisions approve <id>` — aprova uma fleet_decision proposed.
|
|
501
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/index.js
CHANGED
|
@@ -157,6 +157,7 @@ program
|
|
|
157
157
|
.option('--force', 'sobrescreve arquivos existentes em conflito (cuidado!)')
|
|
158
158
|
// -y padronizado com bootstrap (`-y, --yes`) — muscle-memory (auditoria UX 2026-09).
|
|
159
159
|
.option('-y, --yes', 'modo non-interactive (assume defaults, sai com erro se conflito sem flag)')
|
|
160
|
+
.option('--sem-docs', 'não cria o docs/ do produto (o padrão é rodar `neetru docs init`)')
|
|
160
161
|
.action(async (name, opts) => {
|
|
161
162
|
const { runInit } = await import('./commands/init.js');
|
|
162
163
|
await runInit({
|
|
@@ -166,6 +167,7 @@ program
|
|
|
166
167
|
path: opts.path,
|
|
167
168
|
force: opts.force,
|
|
168
169
|
yes: opts.yes,
|
|
170
|
+
semDocs: !!opts.semDocs,
|
|
169
171
|
});
|
|
170
172
|
});
|
|
171
173
|
// ── neetru new (macro end-to-end) ─────────────────────────────────────
|
|
@@ -181,6 +183,7 @@ program
|
|
|
181
183
|
.option('--open', 'abre o browser após criar o workspace (opt-in)')
|
|
182
184
|
.option('--skip-open', '(obsoleto — browser não abre por default; use --open para abrir)')
|
|
183
185
|
.option('--skip-db-init', 'pula o 5º passo de inicialização do banco de dados')
|
|
186
|
+
.option('--sem-docs', 'não cria o docs/ do produto no scaffold')
|
|
184
187
|
.option('--json', 'saída em JSON (machine-readable)')
|
|
185
188
|
.action(async (name, opts) => {
|
|
186
189
|
const { runNewMacro } = await import('./commands/new.js');
|
|
@@ -193,6 +196,7 @@ program
|
|
|
193
196
|
open: !!opts.open,
|
|
194
197
|
skipOpen: !!opts.skipOpen,
|
|
195
198
|
skipDbInit: !!opts.skipDbInit,
|
|
199
|
+
semDocs: !!opts.semDocs,
|
|
196
200
|
json: !!opts.json,
|
|
197
201
|
});
|
|
198
202
|
});
|
|
@@ -309,11 +313,11 @@ program
|
|
|
309
313
|
// ── neetru dev ────────────────────────────────────────────────────────
|
|
310
314
|
// `neetru dev` (sem subcomando) = banco local Docker + watch de schema (M1
|
|
311
315
|
// GAP-M1-4) — comportamento legado preservado (action + options intactos).
|
|
312
|
-
// `neetru dev up` =
|
|
316
|
+
// `neetru dev up` = banco do produto em container via Docker Compose.
|
|
313
317
|
// Subcomando aditivo: a action de `dev` só dispara quando nenhum subcomando casa.
|
|
314
318
|
const devCmd = program
|
|
315
319
|
.command('dev')
|
|
316
|
-
.description('Ambiente de dev local — banco Docker (default) ou
|
|
320
|
+
.description('Ambiente de dev local — banco Docker + watch de schema (default) ou só o banco (`dev up`)')
|
|
317
321
|
.option('--db <name>', 'banco alvo do .neetru/db.json (default: único registrado)')
|
|
318
322
|
.option('--schema <path>', 'caminho do arquivo de schema (default: db/schema.ts)')
|
|
319
323
|
.action(async (opts) => {
|
|
@@ -322,8 +326,8 @@ const devCmd = program
|
|
|
322
326
|
});
|
|
323
327
|
devCmd
|
|
324
328
|
.command('up')
|
|
325
|
-
.description('Sobe o
|
|
326
|
-
.option('--core-port <port>', 'porta do app
|
|
329
|
+
.description('Sobe o banco do produto em container (Docker Compose) e mostra a conexão')
|
|
330
|
+
.option('--core-port <port>', 'porta do app local mostrada nas instruções (default 3000)')
|
|
327
331
|
.action(async (opts) => {
|
|
328
332
|
const { runDevUp } = await import('./commands/dev-up.js');
|
|
329
333
|
await runDevUp({
|
|
@@ -449,6 +453,9 @@ program
|
|
|
449
453
|
.option('--non-interactive', 'falha em vez de perguntar (modo CI)')
|
|
450
454
|
.option('--force', 'ignora o gate de schema e prossegue mesmo com divergência de fingerprint')
|
|
451
455
|
.option('--skip-health-probe', 'NÃO faz o GET de saúde a https://<domain>/api/health?deep=1 pós-deploy (default: sempre faz; use só em serviço sem HTTP)')
|
|
456
|
+
.option('--allow-public-secret <motivo>', 'EMERGÊNCIA: deploya mesmo com segredo (nrt_/npk_/chave privada/env pública sensível) no pacote público. ' +
|
|
457
|
+
'Motivo obrigatório; fica registrado no deploy. Rotacione a chave depois.')
|
|
458
|
+
.option('--sem-docs', 'pula a checagem dos docs (só aviso) e a publicação automática (docs.publishOnDeploy)')
|
|
452
459
|
.option('--json', 'saída em JSON estruturado (implica --non-interactive)')
|
|
453
460
|
.action(async (opts) => {
|
|
454
461
|
const { runDeploy } = await import('./commands/deploy.js');
|
|
@@ -474,6 +481,8 @@ program
|
|
|
474
481
|
force: !!opts.force,
|
|
475
482
|
skipHealthProbe: !!opts.skipHealthProbe,
|
|
476
483
|
mfaToken: opts.mfaToken,
|
|
484
|
+
allowPublicSecret: opts.allowPublicSecret,
|
|
485
|
+
semDocs: !!opts.semDocs,
|
|
477
486
|
json: !!opts.json,
|
|
478
487
|
});
|
|
479
488
|
});
|
|
@@ -856,6 +865,34 @@ serversCmd
|
|
|
856
865
|
json: !!opts.json,
|
|
857
866
|
});
|
|
858
867
|
});
|
|
868
|
+
// ── neetru servers pgbouncer ─────────────────────────────────────────────
|
|
869
|
+
// Remediação SASL sem SSH (Core PR #539): re-sincroniza o userlist do
|
|
870
|
+
// PgBouncer da VM relendo o hash SCRAM do pg_shadow de cada papel. MFA
|
|
871
|
+
// INCONDICIONAL — a rota do Core exige step-up MESMO em --dry-run (fecha o
|
|
872
|
+
// bypass que dry-run representaria em outras rotas).
|
|
873
|
+
const serversPgbouncerCmd = serversCmd
|
|
874
|
+
.command('pgbouncer')
|
|
875
|
+
.description('Operações de PgBouncer da VM (userlist)');
|
|
876
|
+
serversPgbouncerCmd
|
|
877
|
+
.command('sync-userlist <serverId>')
|
|
878
|
+
.description('Re-sincronizar o userlist do PgBouncer da VM (POST /api/cli/v1/servers/[id]/pgbouncer/sync-userlist — exige MFA mesmo em --dry-run)')
|
|
879
|
+
.option('--replace', "mode 'replace' — reescreve o userlist INTEIRO da VM (exige --reason ≥10 chars fora de --dry-run)")
|
|
880
|
+
.option('--reason <text>', 'motivo do replace (vai pro audit)')
|
|
881
|
+
.option('--dry-run', 'só calcula e mostra o plano, sem despachar (ainda exige MFA)')
|
|
882
|
+
.option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
|
|
883
|
+
.option('-y, --yes', 'pula a confirmação interativa do --replace (modo script)')
|
|
884
|
+
.option('--json', 'saída em JSON')
|
|
885
|
+
.action(async (serverId, opts) => {
|
|
886
|
+
const { runServersPgbouncerSyncUserlist } = await import('./commands/servers.js');
|
|
887
|
+
await runServersPgbouncerSyncUserlist(serverId, {
|
|
888
|
+
replace: !!opts.replace,
|
|
889
|
+
reason: opts.reason,
|
|
890
|
+
dryRun: !!opts.dryRun,
|
|
891
|
+
mfaToken: opts.mfaToken,
|
|
892
|
+
yes: !!opts.yes,
|
|
893
|
+
json: !!opts.json,
|
|
894
|
+
});
|
|
895
|
+
});
|
|
859
896
|
// ── neetru workspaces ─────────────────────────────────────────────────
|
|
860
897
|
const workspacesCmd = program
|
|
861
898
|
.command('workspaces')
|
|
@@ -1620,7 +1657,7 @@ program
|
|
|
1620
1657
|
.option('--channel <channel>', 'filtrar por channel (stdout | stderr | app)')
|
|
1621
1658
|
.option('--correlation-id <id>', 'filtrar por correlationId (UUID)')
|
|
1622
1659
|
.option('--json', 'saída em JSON (NDJSON linha a linha, útil para pipes)')
|
|
1623
|
-
.option('--local [path]', 'ler NDJSON local do
|
|
1660
|
+
.option('--local [path]', 'ler NDJSON local (coletor do Core local) em vez do Core; default .neetru/dev/logs.ndjson')
|
|
1624
1661
|
.action(async (opts) => {
|
|
1625
1662
|
const { runLogs } = await import('./commands/logs.js');
|
|
1626
1663
|
await runLogs({
|
|
@@ -2175,14 +2212,18 @@ dbMoveCmd
|
|
|
2175
2212
|
});
|
|
2176
2213
|
});
|
|
2177
2214
|
// ── neetru db move decommission ───────────────────────────────────────
|
|
2178
|
-
// Comando SEPARADO e explícito que
|
|
2179
|
-
// (fecha a janela de rollback). É o único caminho que destrói a
|
|
2180
|
-
// gated por MFA e recusado client-side se o ledger ainda não aponta
|
|
2181
|
-
// destino (espelho da INV-DESTROY). O Core é a autoridade final
|
|
2215
|
+
// Comando SEPARADO e explícito que DESPACHA o drop da ORIGEM de um move JÁ
|
|
2216
|
+
// concluído (fecha a janela de rollback). É o único caminho que destrói a
|
|
2217
|
+
// origem — gated por MFA e recusado client-side se o ledger ainda não aponta
|
|
2218
|
+
// pro destino (espelho da INV-DESTROY). O Core é a autoridade final (checa
|
|
2219
|
+
// também o período de observação de 7 dias após o `done`). O drop é
|
|
2220
|
+
// ASSÍNCRONO: este comando só confirma o despacho — acompanhe o desfecho com
|
|
2221
|
+
// `db move status`. `--retry` só é aceito depois de uma tentativa `failed`.
|
|
2182
2222
|
dbMoveCmd
|
|
2183
2223
|
.command('decommission <migrationId>')
|
|
2184
|
-
.description('
|
|
2224
|
+
.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)')
|
|
2185
2225
|
.requiredOption('--reason <text>', 'motivo do descomissionamento (vai pro audit)')
|
|
2226
|
+
.option('--retry', 'nova tentativa explícita — só aceita depois de uma tentativa anterior "failed"')
|
|
2186
2227
|
.option('-y, --yes', 'pula a confirmação interativa (modo script)')
|
|
2187
2228
|
.option('--mfa-token <code>', 'código TOTP step-up MFA (ou use `neetru auth mfa-session`)')
|
|
2188
2229
|
.option('--json', 'saída em JSON')
|
|
@@ -2190,6 +2231,7 @@ dbMoveCmd
|
|
|
2190
2231
|
const { runDbMoveDecommission } = await import('./commands/db-move.js');
|
|
2191
2232
|
await runDbMoveDecommission(migrationId, {
|
|
2192
2233
|
reason: opts.reason,
|
|
2234
|
+
retry: !!opts.retry,
|
|
2193
2235
|
yes: !!opts.yes,
|
|
2194
2236
|
mfaToken: opts.mfaToken,
|
|
2195
2237
|
json: !!opts.json,
|
|
@@ -2736,7 +2778,7 @@ drCmd
|
|
|
2736
2778
|
// entrada pra quem quer LER docs, não publicar.
|
|
2737
2779
|
const docsCmd = program
|
|
2738
2780
|
.command('docs')
|
|
2739
|
-
.description('
|
|
2781
|
+
.description('Docs do produto (init/new/check/sync) + registry de docs do Core em gs://neetru-docs');
|
|
2740
2782
|
docsCmd
|
|
2741
2783
|
.command('open [topic]')
|
|
2742
2784
|
.description('Abrir documentação no browser (ex: sdk, cli, db, webhooks, auth)')
|
|
@@ -2804,6 +2846,63 @@ docsCmd
|
|
|
2804
2846
|
json: !!opts.json,
|
|
2805
2847
|
});
|
|
2806
2848
|
});
|
|
2849
|
+
// ── neetru docs init|new|check|sync — docs do PRODUTO ─────────────────
|
|
2850
|
+
// PROTOCOLO_DOCS_PRODUTOS_SAAS v1 (2026-10-03). Os subcomandos acima são o
|
|
2851
|
+
// control plane dos docs do Core; estes cuidam do `docs/` do repo do produto.
|
|
2852
|
+
docsCmd
|
|
2853
|
+
.command('init')
|
|
2854
|
+
.description('Criar o mínimo do primeiro dia do docs/ do produto (idempotente; nunca sobrescreve)')
|
|
2855
|
+
.option('--com-api', 'inclui docs/api/API_V1.md (produto expõe /api/v1) e grava docs.api=true')
|
|
2856
|
+
.option('--migrar', 'repo que já tem docs: só acrescenta frontmatter inferido + relatório (não move nem renomeia nada)')
|
|
2857
|
+
.option('--dry-run', 'mostra o que faria, sem escrever')
|
|
2858
|
+
.option('--json', 'saída em JSON')
|
|
2859
|
+
.action(async (opts) => {
|
|
2860
|
+
const { runDocsInit } = await import('./commands/docs-produto.js');
|
|
2861
|
+
await runDocsInit({ comApi: !!opts.comApi, migrar: !!opts.migrar, dryRun: !!opts.dryRun, json: !!opts.json });
|
|
2862
|
+
});
|
|
2863
|
+
docsCmd
|
|
2864
|
+
.command('new <tipo> <titulo>')
|
|
2865
|
+
.description('Criar doc a partir do modelo (guia|referencia|arquitetura|adr|runbook|norma|plano|relatorio|incidente|ata|rfc|spec|politica|ameacas)')
|
|
2866
|
+
.option('--categoria <categoria>', 'categoria da taxonomia (ex.: "Integrações")')
|
|
2867
|
+
.option('--subcategoria <subcategoria>', 'subcategoria da categoria (ex.: marketplaces)')
|
|
2868
|
+
.option('--audience <audience>', 'dev-produto | staff | publico (padrão: o da pasta)')
|
|
2869
|
+
.option('--descricao <frase>', 'description (uma frase de 40 a 200 caracteres)')
|
|
2870
|
+
.option('--data <AAAA-MM-DD>', 'data do registro (relatório, incidente, ata); padrão hoje')
|
|
2871
|
+
.option('--dry-run', 'mostra o que faria, sem escrever')
|
|
2872
|
+
.option('--json', 'saída em JSON')
|
|
2873
|
+
.action(async (tipo, titulo, opts) => {
|
|
2874
|
+
const { runDocsNew } = await import('./commands/docs-produto.js');
|
|
2875
|
+
await runDocsNew(tipo, titulo, {
|
|
2876
|
+
categoria: opts.categoria,
|
|
2877
|
+
subcategoria: opts.subcategoria,
|
|
2878
|
+
audience: opts.audience,
|
|
2879
|
+
descricao: opts.descricao,
|
|
2880
|
+
data: opts.data,
|
|
2881
|
+
dryRun: !!opts.dryRun,
|
|
2882
|
+
json: !!opts.json,
|
|
2883
|
+
});
|
|
2884
|
+
});
|
|
2885
|
+
docsCmd
|
|
2886
|
+
.command('check')
|
|
2887
|
+
.description('Validar os docs do produto (offline; mesmos códigos do Core + PR001–PR004)')
|
|
2888
|
+
.option('--changed', 'só os arquivos alterados contra a branch principal (catraca)')
|
|
2889
|
+
.option('--strict', 'aviso também falha')
|
|
2890
|
+
.option('--offline', 'não consulta a taxonomia do Core (usa a embutida)')
|
|
2891
|
+
.option('--json', 'saída em JSON')
|
|
2892
|
+
.action(async (opts) => {
|
|
2893
|
+
const { runDocsCheck } = await import('./commands/docs-produto.js');
|
|
2894
|
+
await runDocsCheck({ changed: !!opts.changed, strict: !!opts.strict, offline: !!opts.offline, json: !!opts.json });
|
|
2895
|
+
});
|
|
2896
|
+
docsCmd
|
|
2897
|
+
.command('sync')
|
|
2898
|
+
.description('Publicar os docs do produto no Core (só os sem erro; nada é apagado)')
|
|
2899
|
+
.option('--dry-run', 'mostra o que enviaria, sem enviar')
|
|
2900
|
+
.option('--offline', 'checa com a taxonomia embutida (o envio continua precisando do Core)')
|
|
2901
|
+
.option('--json', 'saída em JSON')
|
|
2902
|
+
.action(async (opts) => {
|
|
2903
|
+
const { runDocsSync } = await import('./commands/docs-produto.js');
|
|
2904
|
+
await runDocsSync({ dryRun: !!opts.dryRun, offline: !!opts.offline, json: !!opts.json });
|
|
2905
|
+
});
|
|
2807
2906
|
// ── neetru webhooks ──────────────────────────────────────────────────
|
|
2808
2907
|
// Produtos SaaS registram endpoints de webhook pra receber eventos do Core.
|
|
2809
2908
|
const webhooksCmd = program
|