Pular para o conteúdo

Visão geral da arquitetura

O Fetchpier separa o shell desktop da camada de negócio para que app e CLI usem os mesmos formatos e pipeline.

Renderer (React) -> ponte IPC validada -> processo principal -> @fetchpier/core
^
CLI fp -------------------------------------------------+
v
arquivos + APIs remotas

O renderer é Chromium no sandbox do sistema, sem Node.js ou acesso direto a disco/rede. Um preload expõe operações tipadas e restritas. O processo principal valida, gerencia janelas e diálogos e delega ao core. Contratos IPC usam dados serializáveis.

@fetchpier/core controla descoberta/inicialização de workspaces, parse/serialização .http, ambientes, valores locais e secretos, cookies, TLS, pipeline HTTP, histórico, importação e sandbox. Recebe adaptadores de filesystem, transporte, chaves e eventos; Electron e CLI fornecem os seus.

@fetchpier/cli resolve contexto, expande paths, executa em sequência, gera relatórios e mapeia resultados para códigos de saída. Compartilha o workspace, não o estado privado do app; por isso não vê certificados globais nem o ambiente selecionado no desktop.

Não há banco embutido. Arquivos são a fonte de verdade e escritas do workspace usam substituição atômica. IDs estáveis preservam relações em renomes.

Conexões surgem de requisições, importações por URL ou verificação opcional de atualizações. CSP, guards, testes e auditorias impedem conteúdo remoto no renderer. Veja Privacidade e acesso à rede.

Extensões públicas são scripts fp.*, CLI/API e arquivos .http/JSON. Não há plugins; ampliações internas devem preservar as invariantes de processos, filesystem e rede.