Commit Graph

9 Commits

Author SHA1 Message Date
Jonas Pacheco 4fd0e9d893 fix(superset): corrigir erro fetch failed no guest-token
- Adiciona AbortSignal.timeout(8s) em todas as chamadas fetch ao Superset
- Limpa cache de token automaticamente em caso de erro (clearTokenCache)
  para que próxima requisição force novo login ao invés de usar token stale
- Reduz TTL do cache de 50 para 45 min como margem de segurança
- Força iframe do SupersetDashboard a 100% width/height via classe CSS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:18:44 -03:00
Jonas Pacheco 4214a2561c fix(superset): corrige embedding de dashboards via guest token
- superset_config.py: adiciona FLASK_APP_MUTATOR que seta g.user a partir
  do Bearer JWT quando o usuário está como anônimo (necessário porque o
  papel Public com can_read on Dashboard faz protect() pular verificação JWT)
- superset_config.py: TALISMAN_ENABLED=False, X_FRAME_OPTIONS=ALLOWALL
  para permitir embedding cross-origin via iframe
- routes.ts: adiciona session cookie nas chamadas de busca do dashboard
  além de incluir X-CSRFToken + Cookie no guest token request
- SupersetDashboard.tsx: usa bi.onboardbi.com.br como supersetDomain,
  tela de unavailable com UI adequada (sem iframe de fallback)
- BiWorkspace.tsx: link "Abrir em Nova Aba" aponta para bi.onboardbi.com.br
- docker-compose.prod.yml: labels HTTP→HTTPS redirect para Superset

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:30:40 -03:00
Jonas Pacheco a1ba3b4b02 fix(superset): corrigir dependência fetchGuestToken → fetchTokenData no useCallback
Referência ao nome antigo causava ReferenceError no runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:09:35 -03:00
Jonas Pacheco 275b589765 fix(soe): corrigir caminhos de import do db/index nos arquivos SOE
db/index.ts está na raiz do projeto, não dentro de server/.
- server/soe/event-bus.ts: ../db → ../../db
- server/soe/handlers/*: ../../db → ../../../db
- server/soe/rule-engine/index.ts: ../../db → ../../../db

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:02:53 -03:00
Jonas Pacheco 023451e000 fix(superset): resolver slug → UUID antes de gerar guest token e embeddar
O SDK do Superset exige o UUID do embedded config (não o slug) tanto no
embedDashboard quanto no guest token. Agora o backend resolve:
  slug → dashboard ID → embedded UUID → guest token com UUID
E retorna { token, embeddedId } para o frontend usar no embedDashboard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:55:36 -03:00
Jonas Pacheco 6e8a3261bb fix(superset): corrigir health check do init.sh e criar banco superset
init.sh tentava conectar ao banco 'superset' (inexistente) para o health
check, causando loop infinito. Agora usa banco 'postgres' para verificar
se o PostgreSQL está disponível, depois cria o banco 'superset' antes de
rodar as migrações.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:25:55 -03:00
Jonas Pacheco 953567fa47 feat(bi): migração MetaSet → Apache Superset (Fase 1–4 completas)
- BiWorkspace: tab Advanced substituída por SupersetDashboard (financial-overview)
- Financeiro: nova tab "Análise BI" com SupersetDashboard (financial-overview)
- Contabil: nova tab "Análise BI" com SupersetDashboard (dre-mensal)
- SOE: card Arcádia Insights no dashboard (executive-summary)
- Home: seção full-width Arcádia Insights (executive-summary)
- docker-compose.yml dev: serviço superset adicionado com profile [bi]
- .env.example: documentadas variáveis SUPERSET_* e remoção de METABASE_*
- server/superset/routes.ts: corrigido payload RLS (removido type:"BASE_ROLE" inválido)

Arquivos metaset/metabase mantidos: ainda usados por server/manus e server/autonomous.
Próximos passos: subir container, criar dashboards base, testar health/guest-token.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:08:03 -03:00
Jonas Pacheco 4ecc8846bf feat(soe): integrar Rule Engine em pedidos de venda e emissão NF-e
Aplica soeRuleEngine.apply() antes de inserir sales orders e antes
de emitir NF-e, validando e enriquecendo o payload via motor de regras.
Retorna 422 com detalhes de validação se regras SOE falharem.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:07:26 -03:00
Jonas Pacheco e2c482a67d Suite Arcádia — estado atual do servidor (arcadia_merged)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 13:11:28 -03:00