Architecture & Core01_backendAudit
2026 01 17_diagnosis_report
Diagnóstico Profundo do Sistema OBrain
Data: 17/01/2026 Auditor: Pipeline Antigravity
1. Diagnóstico em 10 Pontos (Fatos Observáveis)
- Infraestrutura Hardcoded: O endereço do scraper (
http://64.181.167.63...) está fixo no código (price-watch.ts), não em variáveis de ambiente.- Evidência:
backend-worker/src/services/agents/price-watch.ts:49
- Evidência:
- God Objects: Arquivos gigantes como
admin.ts(51KB) epublic-api.ts(35KB) concentram lógica de diversos domínios, dificultando manutenção.- Evidência:
ls -lh backend-worker/src/routes/
- Evidência:
- Configuração Incompleta: A interface
Bindings(types.ts) não declara explicitamente a URL do scraper, levando ao uso hardcoded.- Evidência:
backend-worker/src/types.ts
- Evidência:
- Componentes Desconectados: O serviço
deploy/vps-scraperexiste mas o processo de deploy dele é manual e desconectado do CI/CD principal.- Evidência:
deploy/vps-scraper/README.md(instruções manuais).
- Evidência:
- Tipagem "Any": Uso de
anyem lugares críticos (ex:AI: anyem Bindings) anula a segurança do TypeScript. - Documentação Fragmentada: Docs espalhados em
./README.md,backend-worker/audit_report.md,deploy/.../README.md. - Dependências Implícitas: O
root/package.jsonorquestra scripts mas não gerencia dependências compartilhadas (não é um workspace npm real). - Secrets Misturados: Chaves de diversos serviços (Stripe, ML, CJ) estão em um único objeto
Bindings, aumentando a superfície de ataque. - Lógica Cron Oculta: O agendamento de tarefas (
PriceWatch) está misturado noindex.tsem vez de ter um "Dispatcher" dedicado. - Tratamento de Erros: O
PriceWatchAgentengole erros comtry/catchgenéricos que apenas logam, dificultando alertas automáticos.
2. Por que estamos "apagando incêndios"?
O time vive em modo reativo porque a configuração do sistema é frágil e oculta.
Quando o IP da VPS muda (evento comum), o sistema de monitoramento de preços para de funcionar silenciosamente, pois o IP está "chumbado" no código (Ponto 1). Ninguém percebe até um usuário reclamar, pois o erro é apenas logado num console (Ponto 10), sem disparar um alerta real.
Além disso, cada mudança no Back-office (admin.ts) carrega o risco de quebrar outras partes, pois o arquivo é monolítico (Ponto 2). A falta de documentação centralizada (Ponto 6) obriga cada desenvolvedor a "redescobrir" como o sistema funciona a cada incidente.
3. Plano de Execução
L0 - Correções Imediatas (Baixo Risco)
- Config: Mover
VPS_SCRAPER_URLeVPS_SCRAPER_API_KEYparawrangler.toml(.env). - Docs: Criar estrutura
docs/_consolidatede mover arquivos.
L1 - Refatoração Segura
- Cron: Extrair lógica de
scheduleddoindex.tsparaservices/scheduler.ts. - Types: Tipar corretamente o objeto
AIe removeranydepublic-api.ts. - CI: Adicionar script de lint/typecheck no nível raiz.
L2 - Arquitetura (Futuro)
- Modularização: Quebrar
admin.tsemadmin/users.ts,admin/products.ts, etc. - Deploy: Criar GitHub Action para deploy automático do
vps-scraper(via SSH).
4. Plano de Consolidação de Documentos
Destino: docs/_consolidated/
00_overview/README.md(Original da raiz)ARCHITECTURE.md
01_backend/audit/(Relatórios antigos)TESTING_GUIDE.md
02_frontend/- (Docs específicos se houver)
03_infra/vps-scraper.md(Cópia/Link do README do deploy)ops-runbooks/*
99_archive/scraper.log(se não deletado).cron_results
Ação: Criar esta estrutura e mover os arquivos.