Saltar al contenido principal

Backend: integraciones y operacion

Integraciones externas

IntegracionUso principal
Firebase AdminAuth, Firestore, FCM y operaciones de usuario
FirestorePersistencia principal
Google Cloud TasksAutomatizaciones diferidas
Infobip WhatsApp APIMensajeria al cliente
Firebase Cloud MessagingPush web al equipo

Firebase Admin

Se usa para:

  • validar tokens
  • crear o eliminar usuarios de Auth
  • interactuar con Firestore
  • enviar push via FCM
  • apoyar ciertos flujos de limpieza

Dependencia critica:

  • FIREBASE_CREDENTIALS_PATH

Firestore

FirestoreService centraliza:

  • CRUD basico
  • consultas paginadas
  • subcolecciones
  • conversion de timestamps
  • logging de queries lentas

Google Cloud Tasks

Cloud Tasks soporta automatizaciones alrededor de appointments.

Hoy se documentan dos tasks por cita:

  • appointment-status-in-progress
  • appointment-status-finished

El objetivo es mover automaticamente una cita cuando llega su hora.

Infobip WhatsApp

Se usa para plantillas de mensajeria como:

  • confirmacion de cita
  • modificacion o cancelacion
  • cierre o finalizacion

Validaciones conocidas:

  • el telefono se normaliza a formato internacional
  • rechazos del proveedor se reportan como error controlado

Push web

El backend maneja suscripciones de dispositivos y puede enviar notificaciones al equipo.

Comportamientos documentados:

  • un deviceId no debe quedar asociado a multiples usuarios a la vez
  • tokens invalidos se limpian automaticamente
  • el link de destino se construye con FRONTEND_APP_BASE_URL

Variables de entorno

Base

  • PORT
  • FIREBASE_CREDENTIALS_PATH
  • ENV

WhatsApp / Infobip

  • INFOBIP_BASE_URL
  • INFOBIP_API_KEY
  • INFOBIP_WHATSAPP_SENDER
  • INFOBIP_TIMEOUT_MS

Cloud Tasks

  • CLOUD_TASKS_PROJECT_ID
  • CLOUD_TASKS_LOCATION
  • CLOUD_TASKS_QUEUE
  • CLOUD_TASKS_MAX_ATTEMPTS
  • CLOUD_TASKS_TARGET_BASE_URL
  • CLOUD_TASKS_INTERNAL_TOKEN

Frontend y push

  • FRONTEND_APP_BASE_URL
  • PUSH_NOTIFICATIONS_ENABLED

Flujos operativos importantes

Alta de booking

  1. validar negocio, cliente, sede, servicio y horario
  2. consumir cupo de booking
  3. crear booking y appointments
  4. recalcular metricas economicas
  5. programar tasks
  6. intentar WhatsApp y push

Finalizacion de cita

  1. actualizar estado
  2. sincronizar booking si aplica
  3. actualizar metricas
  4. limpiar tasks pendientes
  5. si el booking termina, intentar WhatsApp de finalizacion

Reconciliacion de usage

El endpoint interno POST /business/usage/reconcile-today sirve para:

  • activar o desactivar periodos de uso
  • corregir cupos restantes
  • recalcular subscriptionStatus

Comandos de operacion

Segun package.json del backend:

npm run dev
npm run typecheck
npm run build
npm run start

Existe ademas un script de despliegue de desarrollo con gcloud run deploy.

Riesgos operativos actuales

  • no hay suite automatizada de regresion
  • no hay healthcheck dedicado
  • el rate limit no es distribuido
  • varias automatizaciones dependen de que el token interno y la base URL de Cloud Tasks esten correctos

Documentos relacionados