Fastcomm — Antes vs Depois

Comparativo lado a lado do cenário baseline contra o estado pós-remediação — 7 repositórios, 6 fases

Baseline20 Fev 2026
Pós-Correção03 Mar 2026
Duração12 dias · 6 fases · 38 tarefas
Escopo82 commits · 481 arquivos
1

Números-Chave

Vulnerabilidades
48 identificadas
59 corrigidas
+ 24 encontradas durante
Críticas npm
12
0
100% eliminadas
npm audit Total
260
87
-67%
Testes Failing
21
0
+124 novos criados
Testes Total
1.029
1.153
+12% · 125 suites
CI Pipelines
0 / 7
7 / 7
GitHub Actions
Health Checks
0 / 7
7 / 7
@nestjs/terminus
Documentação
0 páginas
25 páginas
Outline Wiki
2

Segurança

Antes — Baseline

  • Chave RSA privada no repositório Exposta
  • RCE via new Function() 2 pontos
  • SQL Injection via literal() 8 pontos
  • JWT decode sem verify 4 pontos
  • Secrets hardcoded 21 secrets
  • POCs com credenciais reais 18 arquivos
  • CORS aberto (qualquer origem) 2 repos
  • Rotas sem autenticação 10 rotas
  • Cookies sem Secure/SameSite 4 cookies
  • Nginx sem headers segurança 0 headers
  • TLS desabilitado por default 7 pontos
  • Race conditions singletons 9 services
  • Credenciais em logs 8+ locais
  • Rate limiting Zero

Depois — 14 Controles Ativos

  • Chave RSA Deletada · env var
  • RCE → Sandbox node:vm Isolado
  • SQL Injection → bind params Corrigido
  • JWT verify-before-decode + HS256 Corrigido
  • Secrets → env vars 0 hardcoded
  • POCs deletados -18 arquivos
  • CORS restritivo + fail-closed 4 repos
  • Todas as rotas protegidas 3 guard types
  • Cookies Secure + SameSite=Lax 4 cookies
  • 6 headers segurança (HSTS, CSP…) Nginx
  • TLS verificação por default + CUSTOM_CA
  • Singletons stateless 9 corrigidos
  • Logs sanitizados sanitize-log
  • Rate limit 100/10/30 req/min 3 camadas
3

npm audit

RepositórioAntesDepoisReduçãoCríticas
engine (NestJS)50 (2C, 29H)15 (0C, 2H)-70%2→0
engine (Legacy)56 (2C, 41H)17 (0C, 16H)-70%2→0
orquestrator63 (4C, 29H)23 (0C, 5H)-63%4→0
executor44 (1C, 29H)10 (0C, 0H)-77%1→0
front47 (3C, 16H)22 (0C, 4H)-53%3→0
TOTAL26087-67%12→0
4

Testes e CI/CD

RepoTests AntesFailing AntesTests DepoisFailing DepoisStmts%
engine3319601.93%*
executor98320983097.27%
orquestrator0039027.52%
infosec0022015.92%
cron00000%
cronjob20205.81%
front110110
TOTAL1.029211.1530

Antes

  • GitHub Actions CI 0 / 7
  • Pre-commit hooks 0 / 7
  • Pre-push type check 0 / 7
  • Testes E2E integração 0
  • Coverage thresholds Nenhum

Depois

  • GitHub Actions CI 7 / 7 verde
  • Husky + lint-staged 7 / 7
  • Pre-push tsc --noEmit 6 / 6
  • Testes E2E engine 15 testes
  • Coverage por arquivo crítico 80%+
5

Qualidade de Código

Antes

  • TypeScript strict mode 0 / 7
  • new Promise() anti-pattern 107
  • toPromise() deprecated 17+
  • buildWhereOptions duplicado 3 cópias
  • Error handlers duplicados 29 blocks
  • Resize handler duplicado 7 × 10 lin
  • productsTextsConfig.js 1.872 linhas
  • ErrorBoundary.vue Não usado
  • useTimeout.js Dead code
  • Deprecações (7 padrões) Não auditado

Depois

  • TypeScript strict mode 6 / 7
  • new Promise() 0 (eliminados)
  • firstValueFrom() 0 deprecated
  • buildWhereOptions 1 central + testes
  • handleServiceError() 1 utilitário
  • resizeHandler mixin 1 mixin
  • 3 módulos focados 308 entradas
  • ErrorBoundary Integrado App.vue
  • useTimeout.js Deletado
  • 7 padrões auditados 0 encontradas
Erros TypeScript
~611
0
strict mode
Anti-patterns
107
0
async/await
Catch duplicados
29
1 util
centralizado
Mixin monolítico
1.872 lin
3 módulos
separado por produto
6

Infraestrutura e Resiliência

MétricaAntesDepois
Health checks padronizados0 / 77 / 7
Circuit breakers05 circuits · 3 repos
Logging JSON estruturado1 / 7 (executor)7 / 7 (nestjs-pino)
RequestId tracking (X-Request-Id)0 / 77 / 7
Multi-stage Docker build3 / 77 / 7
npm ci --omit=dev no runtime1 / 77 / 7
USER node (non-root container)0 / 76 / 6 NestJS
.dockerignore1 / 77 / 7
Graceful shutdown (SIGTERM)0 / 77 / 7
stop_grace_period Docker0 / 88 / 8 (30s)
Base images otimizadasnode:18/22 fullalpine / bullseye-slim
Startup scriptsnpm start (watch mode)node dist/main
7

Frontend UX + Documentação

Antes

  • Ações destrutivas (excluir) Sem confirmação
  • Erros HTTP ao usuário Silenciados
  • Timeout notificações 2s fixo (curto)
  • READMEs dos repos Boilerplate NestJS
  • Documentação arquitetura Inexistente
  • Wiki / base conhecimento Inexistente

Depois

  • 7 ações com ConfirmDialog danger type
  • Error handling por status code 403-503
  • Timeout 5s success / 10s error Diferenciado
  • 8 READMEs completos Stack, env, API
  • 5 documentos Mermaid Arquitetura
  • 25 páginas Outline 3 tópicos
8

Performance (branch separada)

ServiçoTipoAntesDepoisGanho
core-serviceDB QueryO(N) queries/clientO(1) batch Op.inN-1 eliminadas
engineAlgorítmicoO(n²) find() loopO(n) batch + MapQuadr→Linear
orchestratorCache~50-200ms/req HTTP~1ms cache hit50-200×
frontBundlemoment.js + lodashdayjs + lodash-es-80KB+ gzip
cronMemoryTimer leak + retry ∞Set tracking + MAX=100 leak
engine + executorObservabilitySem métricasPrometheus histogramsGET /metrics
Load test k6 — executor-api sob stress (100 VUs concorrentes)

p95 = 22.95ms · p99 = 32.52ms · max = 77.96ms · throughput = 99.5 req/s · event loop lag p99 = 11ms · heap ~88MB estável · 0 circuit breaker triggers

9

Score Consolidado — Antes vs Depois

DimensãoAntes (Baseline)Depois (Pós-Correção)Fase
Vulnerabilidades de código24 identificadas (4 Críticas)59 corrigidas · 7 pendentesF1-F2
Vulnerabilidades npm260 total · 12 Críticas87 total · 0 CríticasF2.6
Autenticação10 rotas expostas · JWT fraco14 controles · 3 guard typesF1.5-F1.6
TypeScriptstrict: false em todosstrict: true em 6/7F3.1-F3.3
Testes1.029 (21 failing) · 4 repos sem1.153 (0 failing) · guards 100%F4
CI/CDZero pipelines · zero hooks7/7 GH Actions · 7/7 HuskyF4.3-F4.4
Health checksInconsistentes · 0 padrão7/7 padronizados + DockerF5.1
Resiliência0 circuit breakers · 0 shutdown5 circuits · graceful shutdownF5.2-F5.5
Loggingconsole.* / texto livreJSON pino · requestId · OTelF5.3
DockerSingle-stage · root · full imageMulti-stage · USER node · alpineF5.4
Frontend UXDelete sem confirm · erros mudosConfirmDialog · error handlerF6.1-F6.2
DocumentaçãoREADMEs boilerplate · 0 docs8 READMEs · 5 arch · 25 OutlineF6.3-F6.5
PerformanceN+1 queries · O(n²) · no cacheBatch · O(n) · LRU · Prometheusperf