Integraciones Externas
BoostAPI se integra con tres sistemas externos principales.
Zauru ERP
Section titled “Zauru ERP”Zauru es el ERP principal y la dependencia externa mas importante. Proporciona:
- Validacion de usuarios (perfil, API keys)
- GraphQL API para datos operativos
- REST API para operaciones de escritura
- Gestion de membresias de entidad
Servicios internos
Section titled “Servicios internos”| Servicio | Funcion |
|---|---|
ZauruSessionService |
Gestiona credenciales cifradas por user+entity+client_kind. Lifecycle de sesion (reconcile, sync, clear). |
ZauruGraphqlService |
Ejecuta queries GraphQL contra el endpoint Hasura de Zauru |
ZauruAppService |
Llamadas REST para crear payees, facturas, pagos, pedidos, subir attachments |
ZauruRuntimeConfigService |
Resuelve URLs base segun ZAURU_ENV |
Datos que se resuelven desde Zauru
Section titled “Datos que se resuelven desde Zauru”| Dato | Metodo |
|---|---|
| Productos y bundles | GraphQL + cache Pulpito |
| Stock disponible | GraphQL en tiempo real |
| Facturas de clientes | GraphQL |
| Pagos recibidos | GraphQL |
| Info fiscal (payee) | REST |
| Monedas, departamentos, municipios | GraphQL + cache |
| Metodos de pago | GraphQL |
| Agencias | GraphQL |
| Perfiles de usuario | REST (/profile.json) |
| JWT de GraphQL | REST (/apps/graphql.json) |
Entornos de Zauru
Section titled “Entornos de Zauru”| Entorno BoostAPI | URL Zauru | Uso |
|---|---|---|
dev |
https://zauru.herokuapp.com |
Desarrollo local |
preview |
https://zauru.herokuapp.com |
Ambientes de preview |
prod |
https://app.zauru.com |
Produccion |
Cifrado de credenciales
Section titled “Cifrado de credenciales”Las sesiones de Zauru se almacenan cifradas:
- Algoritmo: AES-256-CBC
- Clave:
ZAURU_SESSION_ENCRYPTION_KEY(variable de entorno) - Scope: Por
user_id + entity_id + client_kind - Contenido cifrado: API key, GraphQL JWT, perfil
Cache de catalogo
Section titled “Cache de catalogo”Los datos de catalogo de Zauru se cachean en dos niveles:
- Pulpito L1 – Cache en memoria con stale-while-revalidate
- external_catalog_caches – Cache en BD con TTL configurable (
ZAURU_CATALOG_CACHE_TTL_DAYS)
Servicio de Communications
Section titled “Servicio de Communications”Microservicio externo que maneja la integracion con plataformas de mensajeria (Meta WhatsApp Business API, Instagram, Messenger).
Responsabilidades
Section titled “Responsabilidades”| Funcion | Descripcion |
|---|---|
| Autenticacion con Meta | Login, token management, token rotation |
| Recepcion de webhooks | Recibe eventos de Meta y los reenvia a BoostAPI |
| Envio de mensajes | Envia mensajes via las APIs de Meta |
| Gestion de entidades | Mapeo de entidades CRM -> entidades Communications |
Configuracion
Section titled “Configuracion”| Variable | Descripcion |
|---|---|
COMMUNICATIONS_BASE_URL |
URL base del servicio |
COMMUNICATIONS_API_KEY |
API key de autenticacion |
COMMUNICATIONS_ENTITY_ID_HARD |
Override de entity ID (testing) |
COMMUNICATIONS_PRIVILEGED_OPERATOR_EMAILS |
Emails autorizados para command palette |
COMMUNICATIONS_AUTO_LOGIN_ON_AUTH |
Auto-login al autenticarse en Boost |
Flujo de conexion
Section titled “Flujo de conexion”- BoostAPI se autentica con Communications via API key
- Se registra el webhook URL para recibir eventos
- Communications recibe eventos de Meta y los reenvia
- BoostAPI procesa los eventos y actualiza el estado local
AWS S3
Section titled “AWS S3”Almacenamiento de archivos para media del CRM.
Flujo de upload
Section titled “Flujo de upload”1. Frontend pide URL presignada: POST /api/media/presign-upload2. BoostAPI genera presigned URL con AWS SDK3. Frontend sube archivo directamente a S34. Frontend notifica finalizacion: POST /api/media/finalize-upload5. BoostAPI procesa el archivo: - Imagenes: optimizacion con sharp - Audio/Video: procesamiento con ffmpeg6. El archivo queda disponible via presigned download o URL publicaConfiguracion
Section titled “Configuracion”| Variable | Descripcion |
|---|---|
AWS_S3_BUCKET |
Nombre del bucket |
AWS_ACCES_KEY_ID_AOC |
Access key de AWS |
AWS_SECRET_ACCESS_KEY_AOC |
Secret key de AWS |
AWS_REGION |
Region del bucket (default: us-east-1) |
MEDIA_PUBLIC_BASE_URL |
URL base para media publica |
MEDIA_INLINE_WORKER_ENABLED |
Procesar media inline (no worker separado) |
Procesamiento de media
Section titled “Procesamiento de media”| Tipo | Procesamiento |
|---|---|
| Imagenes | Optimizacion con sharp (resize, formato, compresion) |
| Audio | Conversion con ffmpeg |
| Video | Conversion con ffmpeg |
| Documentos | Se almacenan sin procesamiento |
URLs de media
Section titled “URLs de media”- Presigned download: URLs temporales firmadas (para contenido privado)
- URL publica:
GET /api/media/public?key=...(para contenido publico, sirve version optimizada)
Referencia privada: Ver
BoostAPI/docs/zauru-session-auth.mdpara el flujo detallado de autenticacion con Zauru yBoostAPI/src/zauru/para la implementacion.
