Commit Graph

15 Commits

Author SHA1 Message Date
Jonas Pacheco ea58a45ea1 fix(engine-room): usa http.get em vez de fetch
O fetch do Node.js estava falhando com loopback.
Trocado para http.get nativo que é mais confiável.

Refs: engine-room, registry, fix
2026-04-08 11:53:08 -03:00
Jonas Pacheco b0a8e73f67 fix(engine-room): usa 127.0.0.1 e adiciona logs
- Troca localhost por 127.0.0.1 (mais confiável)
- Adiciona logs para debugar chamadas ao Registry

Refs: engine-room, registry, debug
2026-04-08 11:47:21 -03:00
Jonas Pacheco 202101f0e0 refactor(engine-room): simplifica Casa de Máquinas - apenas Registry
REMOVIDO:
- Presets ENGINES (hardcoded)
- Funções checkEngineHealth, getEngineHealthUrl
- Imports de kernel-adapter (não usados mais)
- Rotas de ação (start/stop/restart) - retornam 501
- Fallback para kernel-adapter

MANTIDO:
- /api/engine-room/status (apenas do Registry)
- /api/engine-room/engines (apenas do Registry)
- /api/engine-room/agents
- Rotas de agents (start/stop)

A Casa de Máquinas agora mostra APENAS serviços descobertos
pelo Registry (Docker/Coolify/XOS). Serviços não descobertos
não aparecem.

Refs: simplificacao, registry-only, casa-de-maquinas
2026-04-08 11:18:03 -03:00
Jonas Pacheco aa83dbdbce feat(engine-room): unifica Casa de Máquinas com Registry do Kernel
- Adiciona fetchRegistryServices() para consultar /api/registry/services
- Adiciona mapRegistryToEngine() para converter formato do Registry
- Modifica /api/engine-room/status para usar Registry como fonte primária
- Evita duplicação: se Registry tem serviços, não adiciona presets duplicados
- MetaSet só é adicionado se não houver bi-engine (evita 2 Motores BI)
- Fallback para kernel-adapter se Registry não disponível

Isso unifica a visão da Casa de Máquinas com o Discovery automático.

Refs: kernel, registry, casa-de-maquinas, unificacao
2026-04-08 10:51:19 -03:00
Jonas Pacheco 015273ffdd fix(engine-room): usa valores do preset ENGINES em vez de hardcoded
- Corrige MetaSet: usa type, displayName, category, description do preset
- Corrige Plus: usa valores do preset em vez de hardcoded
- Remove 'java' hardcoded que sobrescrevia o preset correto

Isso garante que as correções feitas no preset ENGINES
(type: python, porta: 8100) sejam refletidas na API.

Refs: metaset, casa-de-maquinas, engine-room
2026-04-08 10:01:29 -03:00
Jonas Pacheco 13abdbba3b fix(engine-room): corrige preset do MetaSet para apontar para serviço novo
- Atualiza porta: 8088 → 8100 (porta correta do container metaset)
- Atualiza tipo: java → python (Superset é Python)
- Atualiza host: SUPERSET_HOST → METASET_HOST
- Adiciona METASET_HOST e METASET_PORT no serviço app
- Atualiza descrição para refletir o MetaSet (fork Arcadia)

O preset estava apontando para o Apache Superset legado (porta 8088)
que só roda com perfil [bi]. Agora aponta corretamente para o
MetaSet novo (porta 8100) que é o serviço padrão.

Refs: metaset, casa-de-maquinas
2026-04-08 09:51:01 -03:00
Jonas Pacheco 465775ec99 feat(bi): MetaSet (Apache Superset fork) com branding ArcadiaSuite
- Rebuild completo do frontend React com branding MetaSet
- Substituição de textos 'Superset' -> 'MetaSet' em todo codebase
- Traduções atualizadas (en, pt_BR)
- Security Manager com JWT validation e RLS preparado
- Dockerfile multi-stage com assets locais
- Deploy em https://bi.onboardbi.com.br
- Banco de dados PostgreSQL migrado e inicializado
- Container Docker com rede coolify + extra_hosts IPv4
- BI-API Gateway em server/bi/index.ts (proxy manual Node.js)
- FDB-Bridge skeleton em server/bi/fdb-bridge/
- Kernel adapter atualizado para Registry integration
- .gitignore atualizado para excluir superset-src (3.7GB)
2026-04-07 16:04:09 -03:00
Jonas Pacheco 2916fb04ae fix: endpoint de health correto do Superset (/health não /api/health) 2026-04-03 18:15:45 -03:00
Jonas Pacheco d971d07327 debug: log URL em runtime para diagnosticar timeout 2026-04-03 18:07:33 -03:00
Jonas Pacheco 06fe8af1fb fix(engine-room): URLs corretas para health check de containers externos
- Adiciona getEngineHealthUrl() para resolver URLs dinamicamente
- MetaSet (Superset) usa SUPERSET_HOST ou 'superset' por padrão
- Plus usa PLUS_HOST ou 'localhost' por padrão
- Resolve problema de localhost:8088 falhar para Superset
2026-04-03 17:40:01 -03:00
Jonas Pacheco 80f9352a7e fix(kernel-adapter): variáveis de ambiente em runtime não build time
- Transforma SERVICE_URLS (objeto estático) em getServiceUrl() (função)
- Garante que process.env.CONTABIL_PYTHON_URL seja lida em runtime
- Resolve problema de URL 'bakeada' no build retornar valor errado
2026-04-03 17:38:45 -03:00
Jonas Pacheco 162bc4f943 force: rebuild docker cache [1775243617] 2026-04-03 16:13:37 -03:00
Jonas Pacheco 1fdeb72492 fix(engine-room): suporte a modo Docker para consultar serviços externos
- Modifica kernel-adapter.ts para detectar DOCKER_MODE
- Em modo Docker, consulta serviços via HTTP health check direto
- Em modo normal, continua usando Kernel local (porta 5001)
- Resolve problema de apenas 2 motores aparecendo em producao
2026-04-03 12:19:58 -03:00
Jonas Pacheco 2e76496ff4 feat(kernel): integração Engine Room com Arcadia Kernel
MIGRAÇÃO COMPLETA: Sistema antigo → Kernel Nativo (porta 5001)

📁 Arquivos alterados:
- server/engine-room/kernel-adapter.ts (NOVO)
- server/engine-room/routes.ts
- server/kernel/config/services.json

🔧 O que mudou no Kernel (services.json):
+ Adicionado: python-fisco (porta 8002)
+ Corrigido: node-communication (8006, era 9001)
+ Adicionado: node-core-api (9002)
+ Adicionado: node-worker (9003)
- Removido: java-metaset (gerenciado externamente)

Total: 6 → 7 serviços gerenciados pelo Kernel

🔄 Engine Room - Novo comportamento:
- Todas as rotas /api/engine-room/* agora usam Kernel Adapter
- Sistema antigo (managedServices) mantido em comentário para fallback
- Verificação automática se Kernel está disponível
- Retorna erro 503 se Kernel não responde na porta 5001

📊 Mapeamento de serviços:
Engine Room          → Kernel ID
────────────────────────────────────────
contabil             → python-contabil
bi-engine            → python-bi
automation-engine    → python-automation
fisco                → python-fisco
communication        → node-communication

🚫 Serviços externos (não gerenciados pelo Kernel):
- plus (PHP/Laravel, porta 8080)
- metaset (Java, porta 8088)

 Benefícios:
- Auto-restart configurável por serviço
- Health checks automáticos
- Logs centralizados com timestamps
- WebSocket para atualizações em tempo real
- Dashboard na porta 5001

⚠️ Pré-requisito:
KERNEL_ENABLED=true npm run dev

Refs: Semana 4 - Integração Kernel com Engine Room
Breaking Change: Engine Room requer Kernel rodando
2026-04-02 16:47:28 -03:00
jonaspachecoometas 065ab19a17 Arcadia Suite - Projeto completo 2026-02-09 17:46:40 -03:00