Skip to content

FAQ General Boost CRM

Es un monorepo que contiene el CRM web, la app móvil y paquetes compartidos para contratos, cliente API y base de UI.

Para compartir contratos/lógica, reducir duplicación y mantener trazabilidad transversal entre plataformas.

En docs/internal para operación completa. apps/docs es la publicación externa saneada.

proxy.ts, configuración de sesión/auth, y límites de paquetes en turbo.json y workspaces.


Es el backend del CRM, construido con NestJS 11 + TypeScript + MySQL 8 (TypeORM). Se despliega en Render como web service independiente del monorepo frontend. No renderiza UI; solo expone una API REST consumida por el frontend via BFF.

  1. El usuario hace login via Zauru OAuth en el frontend.
  2. El frontend envía email + password + entity_id a POST /api/auth/login en BoostAPI.
  3. BoostAPI verifica credenciales (bcrypt) y devuelve un JWT con 8 horas de expiración.
  4. El JWT contiene: user id, email, role, entity_id, employee_id, permisos (se re-resuelven en cada request).

Tres capas de suscripción (employee, user-entity, user-global). 44 permisos organizados en 5 módulos: Cartera, Registros, Catálogo, Configuración, Administración. Los permisos se verifican en cada request re-consultando la BD (no se cachean en el JWT). El decorador @Authentication('permiso.codigo') combina JWT guard + verificación de permiso en un solo paso.

BoostAPI recibe webhooks del servicio externo de Communications (que a su vez recibe de Meta). Los mensajes se proyectan a estado local (MySQL), se emiten via WebSocket (Socket.IO namespace /interactions) y se distribuyen a agentes via round-robin con colas y filtros de routing.

¿Dónde veo la API interactiva (Swagger)?

Section titled “¿Dónde veo la API interactiva (Swagger)?”

En {BOOST_API_URL}/api. En desarrollo local: http://localhost:3003/api. Swagger documenta todos los endpoints con schemas de request/response.

Es el módulo de cache en memoria de BoostAPI. Implementa stale-while-revalidate, singleflight (deduplicación de fetches concurrentes) e invalidación por tags. Se usa principalmente para cachear datos de catálogo de Zauru y evitar queries repetitivas al ERP.

¿Cómo se comunica el frontend con BoostAPI?

Section titled “¿Cómo se comunica el frontend con BoostAPI?”

El frontend (Next.js) NO llama a BoostAPI directamente desde el browser. Usa una capa BFF (Backend For Frontend) server-side que hace las llamadas a BoostAPI, agrega caché corta, deduplicación y traducción de errores browser-safe. La app nativa (Expo) también pasa por el BFF web.

En Render como web service. Build: yarn build:render, Start: yarn start:render. Tres modos de runtime: dev (local), preview (staging con Zauru Heroku forzado), prod (producción con Zauru real). Render inyecta RENDER_EXTERNAL_URL automáticamente.

¿Cuál es el flujo de desarrollo típico en backend?

Section titled “¿Cuál es el flujo de desarrollo típico en backend?”
  1. Clonar el repo BoostAPI (separado del monorepo).
  2. yarn install + cp .env.template .env + configurar variables.
  3. yarn start:dev para hot-reload.
  4. yarn seed:dev:all para datos de desarrollo.
  5. Swagger en localhost:3003/api para testing.
  6. Para webhooks en dev: activar COMMUNICATIONS_DEV_TUNNEL_ENABLED=true (Cloudflare Quick Tunnel).