@neetru/cli 2.29.0 → 2.32.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 +141 -0
- package/README.md +63 -17
- package/dist/cli-kit/choices.d.ts +33 -0
- package/dist/cli-kit/choices.js +32 -0
- package/dist/cli-kit/command-context.d.ts +98 -0
- package/dist/cli-kit/command-context.js +108 -0
- package/dist/cli-kit/errors.d.ts +79 -0
- package/dist/cli-kit/errors.js +94 -0
- package/dist/cli-kit/index.d.ts +8 -0
- package/dist/cli-kit/index.js +8 -0
- package/dist/cli-kit/suggest.d.ts +74 -0
- package/dist/cli-kit/suggest.js +207 -0
- package/dist/commands/admin/oidc-login.js +1 -1
- package/dist/commands/admin/sdk-credential.js +1 -1
- package/dist/commands/autocomplete.d.ts +1 -1
- package/dist/commands/autocomplete.js +1 -0
- package/dist/commands/bug.d.ts +59 -0
- package/dist/commands/bug.js +114 -2
- package/dist/commands/build.d.ts +24 -1
- package/dist/commands/build.js +195 -73
- package/dist/commands/chat.d.ts +94 -1
- package/dist/commands/chat.js +258 -26
- package/dist/commands/customers.js +1 -1
- package/dist/commands/db-move.js +3 -3
- package/dist/commands/db.js +17 -24
- package/dist/commands/deploy.d.ts +136 -2
- package/dist/commands/deploy.js +547 -69
- package/dist/commands/deployments.js +11 -6
- package/dist/commands/dev-context.js +15 -5
- package/dist/commands/dev-up.d.ts +7 -5
- package/dist/commands/dev-up.js +24 -23
- package/dist/commands/docs-produto.d.ts +90 -0
- package/dist/commands/docs-produto.js +384 -0
- package/dist/commands/doctor.js +36 -1
- package/dist/commands/domains.js +85 -4
- package/dist/commands/env.d.ts +9 -3
- package/dist/commands/env.js +23 -3
- package/dist/commands/infra-read.js +2 -2
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +14 -1
- package/dist/commands/login.js +35 -8
- package/dist/commands/logs.js +12 -4
- package/dist/commands/mobile.js +33 -9
- package/dist/commands/new.d.ts +31 -1
- package/dist/commands/new.js +94 -4
- package/dist/commands/open.js +16 -6
- package/dist/commands/ops.js +1 -1
- package/dist/commands/products-db.d.ts +1 -0
- package/dist/commands/products-db.js +41 -8
- package/dist/commands/products.d.ts +17 -3
- package/dist/commands/products.js +84 -16
- package/dist/commands/promote.js +30 -5
- package/dist/commands/secrets.d.ts +91 -0
- package/dist/commands/secrets.js +471 -0
- package/dist/commands/servers.js +6 -4
- package/dist/commands/status.js +2 -2
- package/dist/commands/support.js +5 -3
- package/dist/commands/tenants.js +28 -16
- package/dist/commands/upgrade.d.ts +9 -0
- package/dist/commands/upgrade.js +50 -1
- package/dist/commands/vm-memory.js +1 -0
- package/dist/commands/webhooks.d.ts +2 -0
- package/dist/commands/webhooks.js +9 -3
- package/dist/commands/workspaces.js +42 -11
- package/dist/index.js +142 -20
- package/dist/lib/api-client.d.ts +22 -1
- package/dist/lib/api-client.js +79 -8
- package/dist/lib/api-error.d.ts +14 -0
- package/dist/lib/api-error.js +107 -46
- package/dist/lib/build-targets.d.ts +127 -0
- package/dist/lib/build-targets.js +348 -0
- package/dist/lib/cli-error.d.ts +13 -0
- package/dist/lib/cli-error.js +24 -0
- package/dist/lib/cli-write.d.ts +43 -9
- package/dist/lib/cli-write.js +154 -45
- package/dist/lib/compose-generator.d.ts +13 -9
- package/dist/lib/compose-generator.js +28 -60
- package/dist/lib/config-schema.d.ts +36 -2
- package/dist/lib/config-schema.js +11 -0
- package/dist/lib/db-local/db-json.d.ts +1 -1
- package/dist/lib/db-local/db-json.js +13 -5
- package/dist/lib/db-local/env.d.ts +15 -3
- package/dist/lib/db-local/env.js +37 -10
- package/dist/lib/db-pipeline/build-deps.d.ts +5 -1
- package/dist/lib/db-pipeline/build-deps.js +23 -3
- package/dist/lib/db-pipeline/types.d.ts +6 -2
- package/dist/lib/db-pipeline/types.js +0 -18
- package/dist/lib/deploy-target-contract.d.ts +152 -0
- package/dist/lib/deploy-target-contract.js +411 -0
- package/dist/lib/env-file-do-build.d.ts +19 -0
- package/dist/lib/env-file-do-build.js +44 -0
- package/dist/lib/envs.d.ts +108 -0
- package/dist/lib/envs.js +127 -0
- package/dist/lib/fs-seguro.d.ts +63 -0
- package/dist/lib/fs-seguro.js +108 -0
- package/dist/lib/mobile-local/mobile-json.js +10 -4
- package/dist/lib/pickers.d.ts +44 -7
- package/dist/lib/pickers.js +60 -4
- package/dist/lib/product-docs/check.d.ts +62 -0
- package/dist/lib/product-docs/check.js +489 -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/dates.d.ts +17 -0
- package/dist/lib/product-docs/dates.js +41 -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/git.d.ts +16 -0
- package/dist/lib/product-docs/git.js +92 -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/ops.d.ts +133 -0
- package/dist/lib/product-docs/ops.js +975 -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/sync.d.ts +107 -0
- package/dist/lib/product-docs/sync.js +322 -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/templates.d.ts +53 -0
- package/dist/lib/product-docs/templates.js +245 -0
- package/dist/lib/public-secret-scan.d.ts +117 -0
- package/dist/lib/public-secret-scan.js +771 -0
- package/dist/lib/render.d.ts +16 -0
- package/dist/lib/render.js +34 -4
- package/dist/lib/segredo-produto.d.ts +124 -0
- package/dist/lib/segredo-produto.js +336 -0
- package/dist/lib/texto-utf8.d.ts +96 -0
- package/dist/lib/texto-utf8.js +196 -0
- package/package.json +2 -1
- package/dist/cli-kit/format.js.map +0 -1
- package/dist/cli-kit/glyphs.js.map +0 -1
- package/dist/cli-kit/index.js.map +0 -1
- package/dist/cli-kit/palette.js.map +0 -1
- package/dist/commands/add.js.map +0 -1
- package/dist/commands/admin/iam-check.js.map +0 -1
- package/dist/commands/admin/oidc-login.js.map +0 -1
- package/dist/commands/admin/sdk-credential.js.map +0 -1
- package/dist/commands/agent-release.js.map +0 -1
- package/dist/commands/agent-write.js.map +0 -1
- package/dist/commands/ai-models.js.map +0 -1
- package/dist/commands/ai.js.map +0 -1
- package/dist/commands/api-catalog.js.map +0 -1
- package/dist/commands/archive.js.map +0 -1
- package/dist/commands/artifact-registry.js.map +0 -1
- package/dist/commands/audit.js.map +0 -1
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/autocomplete.js.map +0 -1
- package/dist/commands/billing.js.map +0 -1
- package/dist/commands/bootstrap.js.map +0 -1
- package/dist/commands/bug.js.map +0 -1
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/chat-menu.js.map +0 -1
- package/dist/commands/chat.js.map +0 -1
- package/dist/commands/cloud-run.js.map +0 -1
- package/dist/commands/code.js.map +0 -1
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/customers.js.map +0 -1
- package/dist/commands/db-move.js.map +0 -1
- package/dist/commands/db.js.map +0 -1
- package/dist/commands/deploy.js.map +0 -1
- package/dist/commands/deployments.js.map +0 -1
- package/dist/commands/dev-context.js.map +0 -1
- package/dist/commands/dev-up.js.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/docs.js.map +0 -1
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/domains.js.map +0 -1
- package/dist/commands/dr.js.map +0 -1
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/hosting-write.js.map +0 -1
- package/dist/commands/infra-read.js.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/mobile.js.map +0 -1
- package/dist/commands/mocks.js.map +0 -1
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/open.js.map +0 -1
- package/dist/commands/ops.js.map +0 -1
- package/dist/commands/products-db.js.map +0 -1
- package/dist/commands/products.js.map +0 -1
- package/dist/commands/promote.js.map +0 -1
- package/dist/commands/publish.js.map +0 -1
- package/dist/commands/schema.js.map +0 -1
- package/dist/commands/servers.js.map +0 -1
- package/dist/commands/smoke.js.map +0 -1
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/support.js.map +0 -1
- package/dist/commands/surface-status.js.map +0 -1
- package/dist/commands/tenants.js.map +0 -1
- package/dist/commands/ui.js.map +0 -1
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/validate.js.map +0 -1
- package/dist/commands/vm-memory.js.map +0 -1
- package/dist/commands/vm.js.map +0 -1
- package/dist/commands/webhooks.js.map +0 -1
- package/dist/commands/whoami.js.map +0 -1
- package/dist/commands/workspaces.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/agent-artifact-url.js.map +0 -1
- package/dist/lib/agent-commands.js.map +0 -1
- package/dist/lib/ai/auth-discovery.js.map +0 -1
- package/dist/lib/ai/context.js.map +0 -1
- package/dist/lib/ai/orchestrator.js.map +0 -1
- package/dist/lib/api-client.js.map +0 -1
- package/dist/lib/api-error.js.map +0 -1
- package/dist/lib/auth.js.map +0 -1
- package/dist/lib/cli-read.js.map +0 -1
- package/dist/lib/cli-write.js.map +0 -1
- package/dist/lib/code-agent-budget.js.map +0 -1
- package/dist/lib/code-agent-files.js.map +0 -1
- package/dist/lib/code-agent-gateway.js.map +0 -1
- package/dist/lib/code-agent-git-tools.js.map +0 -1
- package/dist/lib/code-agent-protocol.js.map +0 -1
- package/dist/lib/code-agent-session.js.map +0 -1
- package/dist/lib/code-agent-settings.js.map +0 -1
- package/dist/lib/code-agent-skills.js.map +0 -1
- package/dist/lib/code-agent-subagents.js.map +0 -1
- package/dist/lib/code-agent-tools.js.map +0 -1
- package/dist/lib/code-agent-tui.js.map +0 -1
- package/dist/lib/code-agent-types.js.map +0 -1
- package/dist/lib/code-agent-ui.js.map +0 -1
- package/dist/lib/code-agent-web-tools.js.map +0 -1
- package/dist/lib/code-agent-write-tools.js.map +0 -1
- package/dist/lib/compose-generator.js.map +0 -1
- package/dist/lib/config-schema.js.map +0 -1
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/db-local/db-json.js.map +0 -1
- package/dist/lib/db-local/env.js.map +0 -1
- package/dist/lib/db-local/fingerprint.js.map +0 -1
- package/dist/lib/db-local/index.js.map +0 -1
- package/dist/lib/db-pipeline/build-deps.js.map +0 -1
- package/dist/lib/db-pipeline/errors.js.map +0 -1
- package/dist/lib/db-pipeline/index.js.map +0 -1
- package/dist/lib/db-pipeline/pipeline.js.map +0 -1
- package/dist/lib/db-pipeline/rehearse.js.map +0 -1
- package/dist/lib/db-pipeline/types.js.map +0 -1
- package/dist/lib/dev-local-context.js.map +0 -1
- package/dist/lib/iam-preflight.js.map +0 -1
- package/dist/lib/mobile-local/index.js.map +0 -1
- package/dist/lib/mobile-local/mobile-json.js.map +0 -1
- package/dist/lib/pickers.js.map +0 -1
- package/dist/lib/product-config.js.map +0 -1
- package/dist/lib/render.js.map +0 -1
- package/dist/lib/schema-cache.js.map +0 -1
- package/dist/lib/sse.js.map +0 -1
- package/dist/lib/telemetry.js.map +0 -1
- package/dist/lib/token-resolver.js.map +0 -1
- package/dist/lib/url-allowlist.js.map +0 -1
- package/dist/lib/version-check.js.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/logo.js.map +0 -1
- package/dist/utils/safe-exit.js.map +0 -1
- package/dist/utils/spinner-registry.js.map +0 -1
- package/dist/version.js.map +0 -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
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type RuntimeEnvironmentId } from '../lib/envs.js';
|
|
2
|
+
import { type BuildManifest } from './build.js';
|
|
3
|
+
import { type PublicSecretOverrideRecord } from '../lib/public-secret-scan.js';
|
|
1
4
|
/**
|
|
2
5
|
* bug_a5786e03 (2026-05-31): o Core/agente só conhecem os stacks canônicos
|
|
3
6
|
* `node|docker|php-apache|static` (PRODUCT_STACKS). `nextjs` é um alias de
|
|
@@ -88,29 +91,136 @@ export interface DeployOptions {
|
|
|
88
91
|
* pra prod (auditoria cli/v1 2026-09-29, M7). Ignorado em dev/staging.
|
|
89
92
|
*/
|
|
90
93
|
mfaToken?: string;
|
|
94
|
+
/**
|
|
95
|
+
* 2.30.0 — `--allow-public-secret "<motivo>"`: override de EMERGÊNCIA da
|
|
96
|
+
* varredura de segredo no pacote público. Motivo obrigatório (≥10 chars);
|
|
97
|
+
* fica registrado no deploy (`publicSecretOverride` no corpo enviado ao Core
|
|
98
|
+
* e na saída --json) — só caminho + tipo de padrão, nunca o valor.
|
|
99
|
+
*/
|
|
100
|
+
allowPublicSecret?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Protocolo de docs de produto v1: pula a checagem dos docs (que só avisa)
|
|
103
|
+
* e a publicação automática no fim do deploy de produção (`docs.publishOnDeploy`).
|
|
104
|
+
*/
|
|
105
|
+
semDocs?: boolean;
|
|
91
106
|
}
|
|
107
|
+
/** Resultado da varredura de segredo, anexado ao deploy. */
|
|
108
|
+
export interface PublicSecretGateResult {
|
|
109
|
+
/** `false` quando não deu pra varrer (artefato remoto / imagem pronta). */
|
|
110
|
+
scanned: boolean;
|
|
111
|
+
scannedFiles?: number;
|
|
112
|
+
reason?: string;
|
|
113
|
+
override?: PublicSecretOverrideRecord;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Valida o motivo do `--allow-public-secret` ANTES de qualquer build/upload.
|
|
117
|
+
* `undefined` = flag não passada.
|
|
118
|
+
*/
|
|
119
|
+
export declare function validateAllowPublicSecretReason(raw: string | undefined, json?: boolean): string | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* 2.30.0 — gate de segredo no pacote PÚBLICO (decisão do dono 2026-10-03: a
|
|
122
|
+
* credencial nrt_ é SÓ DE SERVIDOR). Roda ANTES do upload. Achou → falha
|
|
123
|
+
* FECHADO (exit 1, `public_secret_in_bundle`), a não ser que haja override com
|
|
124
|
+
* motivo — aí segue com aviso alto e devolve o registro pro corpo do deploy.
|
|
125
|
+
*/
|
|
126
|
+
export declare function runPublicSecretGate(source: {
|
|
127
|
+
kind: 'tar';
|
|
128
|
+
path: string;
|
|
129
|
+
} | {
|
|
130
|
+
kind: 'dir';
|
|
131
|
+
root: string;
|
|
132
|
+
}, ctx: {
|
|
133
|
+
cwd: string;
|
|
134
|
+
envFile?: string;
|
|
135
|
+
stack?: string;
|
|
136
|
+
allowReason?: string;
|
|
137
|
+
json?: boolean;
|
|
138
|
+
}): Promise<PublicSecretGateResult>;
|
|
139
|
+
/**
|
|
140
|
+
* bug_678ddc98 (elo que faltava): decide se este deploy precisa DIZER ao Core
|
|
141
|
+
* qual é o entrypoint, em vez de deixar o agente adivinhar.
|
|
142
|
+
*
|
|
143
|
+
* O #68 ensinou o `neetru build` a empacotar monorepo e a calcular o entrypoint
|
|
144
|
+
* aninhado (`apps/web/server.js`), mas a cadeia parava no `manifest.json`:
|
|
145
|
+
* `manifest.entrypoint` nunca foi lido por ninguém — era campo write-only.
|
|
146
|
+
* Num monorepo o tarball fica assim:
|
|
147
|
+
*
|
|
148
|
+
* <versionDir>/node_modules/… ← tracejado, na RAIZ
|
|
149
|
+
* <versionDir>/packages/ui/… ← pacotes internos do workspace
|
|
150
|
+
* <versionDir>/apps/web/server.js ← entrypoint REAL
|
|
151
|
+
* <versionDir>/apps/web/package.json ← o package.json DO APP mora aqui
|
|
152
|
+
*
|
|
153
|
+
* O agente (`neetru-agent-service-vm/src/lib/deploy-plan.ts:117-124`) infere o
|
|
154
|
+
* comando de start olhando SÓ a raiz do versionDir: `server.js` na raiz,
|
|
155
|
+
* `.next/` na raiz, `.next/standalone/server.js`, e `scripts.start` do
|
|
156
|
+
* `package.json` da raiz. Em monorepo os três primeiros não existem, e o
|
|
157
|
+
* quarto não ajuda: o Next.js escreve o package.json do app em
|
|
158
|
+
* `<appPrefix>/package.json` (`next/dist/build/utils.js:1197`), então o que
|
|
159
|
+
* houver na raiz é o package.json do WORKSPACE — que ou não tem `start`, ou
|
|
160
|
+
* tem um `start` de ferramenta de monorepo (`turbo start`), nunca
|
|
161
|
+
* `node apps/web/server.js`. Nos dois casos o agente erra: cai no fallback
|
|
162
|
+
* `'npm start'` (deploy-plan.ts:124) e o systemd entra em crash-loop.
|
|
163
|
+
*
|
|
164
|
+
* REGRA: só mandamos o entrypoint quando o agente NÃO consegue acertar sozinho,
|
|
165
|
+
* isto é quando o standalone está aninhado (`appPrefix` preenchido). Para app
|
|
166
|
+
* único o agente já resolve certo — e mandar `pkg.main`/`index.js` ali
|
|
167
|
+
* ATROPELARIA o `npm start` de produtos como o gestovendas, que dependem de
|
|
168
|
+
* `scripts.start`. Conserto que quebra o caso que funcionava não é conserto.
|
|
169
|
+
*
|
|
170
|
+
* Também não mandamos para stack não-node: ali `entrypoint` é `index.html` /
|
|
171
|
+
* `index.php` / referência de imagem, que não é "arquivo para o `node` rodar".
|
|
172
|
+
*
|
|
173
|
+
* ATENÇÃO — a cadeia ainda NÃO fecha só com isto: o Core descarta o campo hoje
|
|
174
|
+
* (`deployRequestSchema` não o declara, e objeto zod sem `.passthrough()` remove
|
|
175
|
+
* chave desconhecida em silêncio). Ver "o que falta no Core" na descrição do PR.
|
|
176
|
+
*/
|
|
177
|
+
export declare function entrypointParaDeploy(manifest: Pick<BuildManifest, 'entrypoint' | 'appPrefix' | 'stack'> | null | undefined): string | undefined;
|
|
92
178
|
/** `true` pra `prod`/`production` (o Core normaliza `production`→`prod`). */
|
|
93
179
|
export declare function isProdEnv(envName: string | undefined): boolean;
|
|
94
180
|
/**
|
|
95
181
|
* M7 (auditoria cli/v1 2026-09-29): `POST /api/cli/v1/deploy` com
|
|
96
182
|
* `environmentId` prod exige step-up MFA no Core (mesmo gate de `promote`).
|
|
97
|
-
* Resolve os headers (
|
|
183
|
+
* Resolve os headers (--mfa-token → sessão 1h → prompt TOTP; fail-closed em
|
|
98
184
|
* --json/--non-interactive/sem TTY) só quando o alvo é prod. Chamado logo
|
|
99
185
|
* antes do POST — depois do build/upload — pra o TOTP não vencer no meio.
|
|
100
186
|
*/
|
|
101
187
|
export declare function resolveDeployStepUpHeaders(opts: Pick<DeployOptions, 'mfaToken' | 'json'>, envName: string, nonInteractive: boolean): Promise<Record<string, string>>;
|
|
188
|
+
/**
|
|
189
|
+
* Mostra os `warnings[]` que o Core devolve no deploy.
|
|
190
|
+
*
|
|
191
|
+
* Medido em 2026-10-12: o Core devolve `warnings` nos TRES alvos e o comentario
|
|
192
|
+
* dele diz, literalmente, "`warnings[]` na resposta JSON (o CLI exibe pro
|
|
193
|
+
* operador)" (`cli/v1/deploy/route.ts:309`). `grep warnings` em `deploy.ts`
|
|
194
|
+
* devolvia ZERO — a promessa nunca foi cumprida.
|
|
195
|
+
*
|
|
196
|
+
* O caso que mais doia: a CLI manda o ambiente default e o Core normaliza, e o
|
|
197
|
+
* aviso de que `environmentId` foi ASSUMIDO disparava em todo deploy sem
|
|
198
|
+
* `--env` — e sumia 100% das vezes. O operador achava que tinha escolhido.
|
|
199
|
+
*
|
|
200
|
+
* Vai pro STDERR de proposito: em `--json` o stdout e contrato de maquina (uma
|
|
201
|
+
* linha JSON) e nao pode ser poluido. Quem le JSON ja recebe `warnings` no
|
|
202
|
+
* proprio corpo.
|
|
203
|
+
*/
|
|
204
|
+
export declare function mostrarAvisosDoCore(warnings: unknown, json?: boolean): void;
|
|
205
|
+
/**
|
|
206
|
+
* `--env` do deploy workspace/cloud-run: fora do vocabulário, encerra com exit
|
|
207
|
+
* 1 e os valores válidos da MESMA lista que validou (`invalid_env`, com `flag`,
|
|
208
|
+
* `value` e `valid` no JSON). Exportada para teste.
|
|
209
|
+
*/
|
|
210
|
+
export declare function validarAmbienteDoDeploy(envName: string, json: boolean | undefined): void;
|
|
102
211
|
/**
|
|
103
212
|
* Mapeia o `envName` do deploy ('dev' | 'staging' | 'prod' — vocabulário do
|
|
104
213
|
* `--env` deste comando) pro `targetEnv` que `neetru build` entende
|
|
105
214
|
* ('dev' | 'workspace' | 'prod' — vocabulário de `BuildOptions`/SDK).
|
|
106
215
|
* 'staging' vira 'workspace' (mesmo conceito de ambiente não-dev/não-prod).
|
|
107
216
|
* Valor desconhecido cai em 'prod' (mesmo default conservador de `runBuild`).
|
|
217
|
+
* P105: a correspondência sai de `VOCABULARIOS_DE_AMBIENTE`, não de `if`s.
|
|
108
218
|
*
|
|
109
219
|
* Fix (2026-07-22, achado da revisão adversarial): sem isso, todo build
|
|
110
220
|
* implícito de `neetru deploy --env dev`/`--env staging` (quando não há
|
|
111
221
|
* artifact em cache) forçava NEXT_PUBLIC_NEETRU_ENV=prod incondicionalmente.
|
|
112
222
|
*/
|
|
113
|
-
export declare function deployEnvToBuildTargetEnv(envName: string):
|
|
223
|
+
export declare function deployEnvToBuildTargetEnv(envName: string): RuntimeEnvironmentId;
|
|
114
224
|
/**
|
|
115
225
|
* bug_5b6bb0d7 — segredos NÃO podem viajar por env no deploy.
|
|
116
226
|
*
|
|
@@ -133,6 +243,30 @@ export declare function deployEnvToBuildTargetEnv(envName: string): 'dev' | 'wor
|
|
|
133
243
|
* saírem de sincronia, mas exige atualização manual dos dois lados.
|
|
134
244
|
*/
|
|
135
245
|
export declare const SECRET_ENVVAR_PATTERNS: RegExp[];
|
|
246
|
+
/**
|
|
247
|
+
* Aviso do segredo descartado no `--env-file` de um deploy VM.
|
|
248
|
+
*
|
|
249
|
+
* bug_8b85353b (Parte 3): até aqui a mensagem mandava "usar o Secret Manager e
|
|
250
|
+
* referenciar por nome na VM" — mecanismo que NÃO existia para segredo do
|
|
251
|
+
* próprio produto (era a 4ª cópia do padrão que o core#632 corrigiu nas outras
|
|
252
|
+
* três). O caminho real é `neetru secrets set`, que grava no registro
|
|
253
|
+
* `product_secrets` do Core com o valor direto no Secret Manager. `env` é o
|
|
254
|
+
* `--env` do deploy, para o comando sugerido já sair com o ambiente certo.
|
|
255
|
+
*
|
|
256
|
+
* Revisão do #81 (M1): o comando só é sugerido quando o Core o aceitaria.
|
|
257
|
+
* Chave reservada (o Core já a entrega ao app: credencial SDK/OIDC/CLI,
|
|
258
|
+
* módulo, unit) é recusada em `assertValidProductSecretKey`, e nome fora de
|
|
259
|
+
* CAIXA_ALTA é recusado pela própria CLI (`problemaNaChave`) — sugerir
|
|
260
|
+
* `neetru secrets set` nesses casos mandava o dev para um caminho que falha.
|
|
261
|
+
*/
|
|
262
|
+
export declare function avisoSegredoDescartadoNaVm(chave: string, env: string | undefined): string;
|
|
263
|
+
/**
|
|
264
|
+
* O aviso desta chave manda para `neetru secrets set`? Não manda quando o
|
|
265
|
+
* Core reserva a chave — aí o aviso de que o agente ainda não entrega
|
|
266
|
+
* segredos do produto também não cabe.
|
|
267
|
+
*/
|
|
268
|
+
export declare function segredoDescartadoApontaSecretsSet(chave: string): boolean;
|
|
269
|
+
export declare function pickTarget(opts: DeployOptions, nonInteractive: boolean, runtime?: string): Promise<'cloud-run' | 'vm' | 'workspace'>;
|
|
136
270
|
/** Verdicts de uma tentativa de probe. Só `healthy` é terminal-sucesso. */
|
|
137
271
|
export type HealthProbeVerdict = 'healthy' | 'degraded' | 'warming' | 'unreachable' | 'unverifiable';
|
|
138
272
|
export interface HealthProbeAttempt {
|