Ir al contenido

Visión general de la arquitectura

Fetchpier separa el shell de escritorio de la capa de negocio para que la app y la CLI ejecuten los mismos formatos y pipeline.

Renderer (React) -> puente IPC validado -> proceso principal -> @fetchpier/core
^
CLI fp -------------------------------------------------+
v
archivos + APIs remotas

El renderer es Chromium bajo sandbox del sistema operativo, sin Node.js ni acceso directo a disco o red. Un preload expone operaciones tipadas y estrechas. El proceso principal valida, maneja ventanas y diálogos nativos, y delega al core. Los contratos IPC usan datos serializables.

@fetchpier/core controla descubrimiento e inicialización de workspaces, parseo/serialización .http, entornos, valores locales y secretos, cookies, TLS, pipeline HTTP, historial, importación y sandbox. Recibe adaptadores de filesystem, transporte, claves y eventos: Electron y la CLI aportan los suyos.

@fetchpier/cli resuelve contexto, expande paths, ejecuta secuencialmente, genera reportes y traduce resultados a códigos de salida. Comparte el workspace, no el estado privado de la app; por eso no ve certificados globales ni el entorno elegido en el escritorio.

No hay base embebida. Los archivos son la fuente de verdad y las escrituras del workspace se reemplazan atómicamente. IDs estables mantienen relaciones a través de renombres.

Las conexiones del core surgen de solicitudes, importaciones por URL o la comprobación opcional de actualizaciones. CSP, guards, tests y auditorías impiden contenido remoto en el renderer. Ver Privacidad y acceso a la red.

Las extensiones públicas son scripts fp.*, la CLI/API programática y los archivos .http/JSON. No hay sistema de plugins; cualquier ampliación interna debe conservar las invariantes de procesos, filesystem y red.