Skip to content

Integraciones Externas

BoostAPI se integra con tres sistemas externos principales.

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
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
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)
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

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

Los datos de catalogo de Zauru se cachean en dos niveles:

  1. Pulpito L1 – Cache en memoria con stale-while-revalidate
  2. external_catalog_caches – Cache en BD con TTL configurable (ZAURU_CATALOG_CACHE_TTL_DAYS)

Microservicio externo que maneja la integracion con plataformas de mensajeria (Meta WhatsApp Business API, Instagram, Messenger).

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
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
  1. BoostAPI se autentica con Communications via API key
  2. Se registra el webhook URL para recibir eventos
  3. Communications recibe eventos de Meta y los reenvia
  4. BoostAPI procesa los eventos y actualiza el estado local

Almacenamiento de archivos para media del CRM.

1. Frontend pide URL presignada: POST /api/media/presign-upload
2. BoostAPI genera presigned URL con AWS SDK
3. Frontend sube archivo directamente a S3
4. Frontend notifica finalizacion: POST /api/media/finalize-upload
5. BoostAPI procesa el archivo:
- Imagenes: optimizacion con sharp
- Audio/Video: procesamiento con ffmpeg
6. El archivo queda disponible via presigned download o URL publica
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)
Tipo Procesamiento
Imagenes Optimizacion con sharp (resize, formato, compresion)
Audio Conversion con ffmpeg
Video Conversion con ffmpeg
Documentos Se almacenan sin procesamiento
  • 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.md para el flujo detallado de autenticacion con Zauru y BoostAPI/src/zauru/ para la implementacion.