Arquitetura tecnica
Camadas
- Frontend estatico:
index.html, assets JS e modulos empages/. - Shell de autenticacao: Supabase Auth no
index.html. - Estado global:
STATE, alimentado por DataHub, caches e geradores demo. - Modulos iframe: paginas independentes que recebem contexto do shell.
- Backend/Proxy:
cloudflare-worker.jspara integracoes, cache e tarefas agendadas. - Banco: Supabase, com migracoes em
supabase/migrations. - ETL: scripts em
tools/etlpara backfill, normalizacao e preflight.
Autenticacao entre shell e modulos
O shell monta um OPERIX_AUTH_CONTEXT com usuario, permissao, licenca e sessao. Esse contexto e enviado aos iframes via postMessage. Modulos protegidos podem bloquear acesso direto quando o contexto nao existe ou nao autoriza o modulo.
Dados
O desenho atual combina:
- dados carregados manualmente;
- demo sintetico;
- caches de recursos operacionais;
- Worker Cloudflare como fronteira segura para leituras/escritas;
- Supabase como persistencia e autenticacao.
Workers
cloudflare-worker.js centraliza chamadas que nao devem ficar no navegador, como tokens de APIs externas, secrets de sincronizacao e leituras cacheadas. O wrangler.toml define crons para sincronizacoes periodicas.
PWA
O app possui manifest, icones e service worker (sw.js). Em testes automatizados da Wiki, o Service Worker foi bloqueado para evitar recarregamento durante capturas.