Saltar al contenido principal

API

La API de ChurchApps es un monolito modular -- un único código base que sirve seis módulos de datos, cada uno con su propia base de datos. Esta arquitectura te proporciona los beneficios organizacionales de los microservicios (límites claros, almacenes de datos independientes) con la simplicidad operacional de una única implementación.

Módulos

MóduloPropósito
MembershipPersonas, grupos, hogares, permisos
AttendanceServicios, sesiones, registros de check-in
ContentPáginas, secciones, elementos, transmisión
GivingDonaciones, fondos, procesamiento de pagos
MessagingConversaciones, notificaciones, correo
DoingTareas, planes, asignaciones

Stack Tecnológico

  • Runtime: Node.js 22.x con TypeScript (módulos ES)
  • Framework: Express
  • Inyección de Dependencias: Inversify (enrutamiento basado en decoradores)
  • Base de Datos: MySQL -- una base de datos por módulo, cada una con su propio grupo de conexiones
  • Auth: Autenticación basada en JWT vía CustomAuthProvider
  • Implementación: AWS Lambda vía Serverless Framework v3

Puertos

ProtocoloPuertoDescripción
HTTP8084API REST principal
WebSocket8087Conexiones de socket en tiempo real

Funciones Lambda

Cuando se implementa en AWS, la API se ejecuta como seis funciones Lambda:

  • web -- Maneja todas las solicitudes HTTP
  • socket -- Gestiona conexiones WebSocket
  • timer15Min -- Se ejecuta cada 30 minutos para notificaciones por correo (el nombre es histórico)
  • timerMidnight -- Se ejecuta diariamente para correos de resumen y tareas de mantenimiento
  • timerScheduledTasks -- Se ejecuta diariamente para automatizaciones vencidas y procesamiento de flujos de trabajo atrasados
  • timerWebhooks -- Se ejecuta cada minuto para entregar webhooks salientes en cola

Bibliotecas Compartidas

La API depende de dos paquetes compartidos de ChurchApps:

info

La API usa módulos ES ("type": "module" en package.json). Asegúrate de que tus importaciones usen la sintaxis de módulos ES.

En esta Sección