joao.herculano 8c26c93732 corrige CSRF quebrando toda request via patch em start-server-core
@tanstack/start-server-core cria o defaultCsrfMiddleware de forma
incondicional assim que o módulo carrega. Isso caía numa corrida de
inicialização com o import circular que o nitro gera nos chunks de
SSR (server-D-dARpA7.mjs <-> server-D-dARpA72.mjs), fazendo toda
requisição no build de produção falhar com "createCsrfMiddleware is
not a function".

Reproduzido de forma determinística tanto com preset node-server
quanto cloudflare-module, e com múltiplas versões do nitro — não é
regressão de versão, é a inicialização eager em si colidindo com a
ordem de avaliação do ciclo.

Patch (via patch-package, reaplicado no postinstall) adia a criação
do defaultCsrfMiddleware para dentro de uma função, eliminando a
corrida sem mudar nenhum comportamento. Validado com reinstalação
limpa de node_modules + build + smoke test em /healthz, / e /auth.
2026-08-06 13:52:13 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00
2026-08-06 11:13:33 -03:00

SLA Separacao

Aplicacao TanStack Start/Node.js para registro de coleta de pedidos, usando SQL Server.

Desenvolvimento local

npm install
npm run dev

Estrutura de deploy

Este repositorio ja possui a base para subir o app como servico separado:

Variaveis obrigatorias

O app precisa destas variaveis no ambiente de deploy:

  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • DB_ENCRYPT
  • DB_TRUST_SERVER_CERT
  • DB_SERVER_NAME
  • SESSION_SECRET

Antes do deploy

Voce precisa validar estes pontos no ambiente da empresa:

  1. O cluster/servidor consegue acessar 10.77.77.10:1433.
  2. O registry 10.77.77.41:5000 aceita push da nova imagem.
  3. O namespace ci-cd e o padrao de deploy pelo Jenkins continuam validos.
  4. A nodePort 30310 esta livre, ou voce vai trocar para outra.
  5. Existe uma forma de expor esse novo servico externamente depois do Service.

Observacoes

  • O app atual usa SQL Server direto, sem API intermediaria.
  • O deploy criado aqui e separado do app Django existente.
  • O repositório nao guarda o secret real de producao; ele deve ser criado no cluster.
S
Description
No description provided
Readme
562 KiB
Languages
TypeScript 96.2%
CSS 2.6%
JavaScript 0.5%
Shell 0.5%
Dockerfile 0.2%