API
A API ChurchApps é um monólito modular -- uma única base de código que serve seis módulos distintos, cada um com seu próprio banco de dados. Essa arquitetura oferece a você os benefícios organizacionais dos microsserviços (limites claros, armazenamentos de dados independentes) com a simplicidade operacional de uma única implantação.
Módulos
| Módulo | Propósito |
|---|---|
| Membership | Pessoas, grupos, residências, permissões |
| Attendance | Serviços, sessões, registros de check-in |
| Content | Páginas, seções, elementos, streaming |
| Giving | Doações, fundos, processamento de pagamento |
| Messaging | Conversas, notificações, email |
| Doing | Tarefas, planos, atribuições |
Stack de Tecnologia
- Runtime: Node.js 22.x com TypeScript (módulos ES)
- Framework: Express
- Injeção de Dependência: Inversify (roteamento baseado em decorador)
- Banco de Dados: MySQL -- um banco de dados por módulo, cada um com seu próprio pool de conexão
- Auth: Autenticação baseada em JWT via
CustomAuthProvider - Deployment: AWS Lambda via Serverless Framework v3
Portas
| Protocolo | Porta | Descrição |
|---|---|---|
| HTTP | 8084 | API REST Principal |
| WebSocket | 8087 | Conexões de socket em tempo real |
Funções Lambda
Quando implantado no AWS, a API é executada como quatro funções Lambda:
web-- Lida com todas as solicitações HTTPsocket-- Gerencia conexões WebSockettimer15Min-- Executa a cada 15 minutos para notificações de emailtimerMidnight-- Executa diariamente para emails de resumo e tarefas de manutenção
Bibliotecas Compartilhadas
A API depende de dois pacotes ChurchApps compartilhados:
@churchapps/helpers-- Utilitários base (DateHelper, ApiHelper, etc.)@churchapps/apihelper-- Utilitários de servidor Express incluindo autenticação, auxiliares de banco de dados e integrações AWS
Info
A API usa módulos ES ("type": "module" em package.json). Certifique-se de que suas importações usam a sintaxe de módulo ES.
Nesta Seção
- Configuração Local -- Clone, configure e execute a API localmente
- Banco de Dados -- Arquitetura de banco de dados por módulo, scripts de schema e padrões de acesso a dados
- Estrutura do Módulo -- Controladores, repositórios, modelos e autenticação
- Chaves de API -- Tokens de acesso pessoal para scripts e conectores
- Aplicativos Conectados (OAuth) -- Fluxo OAuth multi-locatário para aplicativos de terceiros
- Webhooks -- Notificações de eventos push para sistemas externos
- Servidor MCP -- Endpoint do Model Context Protocol que expõe a API a assistentes de IA
- Referência de Endpoint -- Documentação completa da API REST para todos os módulos