API
ChurchApps-API-et er en modulær monolitt -- en enkelt kodebase som betjener seks datamoduler, hver med sin egen database. Denne arkitekturen gir deg de organisatoriske fordelene til mikrotjenester (klare grenser, uavhengige datalagre) med den operasjonelle enkelheten til en enkelt distribusjon.
Moduler
| Modul | Formål |
|---|---|
| Membership | Personer, grupper, husholdninger, tillatelser |
| Attendance | Gudstjenester, økter, innsjekkingsregistreringer |
| Content | Sider, seksjoner, elementer, strømming |
| Giving | Donasjoner, fond, betalingsbehandling |
| Messaging | Samtaler, varsler, e-post |
| Doing | Oppgaver, planer, tildelinger |
Teknologistack
- Kjøretid: Node.js 22.x med TypeScript (ES-moduler)
- Rammeverk: Express
- Dependency Injection: Inversify (dekoratørbasert ruting)
- Database: MySQL -- én database per modul, hver med sin egen tilkoblingspool
- Autentisering: JWT-basert autentisering via
CustomAuthProvider - Distribusjon: AWS Lambda via Serverless Framework v3
Porter
| Protokoll | Port | Beskrivelse |
|---|---|---|
| HTTP | 8084 | Hoved-REST-API |
| WebSocket | 8087 | Sanntids socket-tilkoblinger |
Lambda-funksjoner
Når API-et distribueres til AWS, kjører det som seks Lambda-funksjoner:
web-- Håndterer alle HTTP-forespørslersocket-- Administrerer WebSocket-tilkoblingertimer15Min-- Kjører hvert 30. minutt for e-postvarsler (navnet er historisk)timerMidnight-- Kjører daglig for sammendrags-e-poster og vedlikeholdsoppgavertimerScheduledTasks-- Kjører daglig for forfalte automatiseringer og behandling av forsinkede arbeidsflytertimerWebhooks-- Kjører hvert minutt for å levere utgående webhooks i kø
Delte biblioteker
API-et er avhengig av to delte ChurchApps-pakker:
@churchapps/helpers-- Grunnleggende verktøy (DateHelper, ApiHelper, osv.)@churchapps/apihelper-- Express-serververktøy inkludert autentisering, databasehjelpere og AWS-integrasjoner
Info
API-et bruker ES-moduler ("type": "module" i package.json). Sørg for at importene dine bruker ES-modulsyntaks.
I denne seksjonen
- Lokalt oppsett -- Klon, konfigurer og kjør API-et lokalt
- Database -- Database-per-modul-arkitektur, skjemaskript og datatilgangsmønstre
- Modulstruktur -- Kontrollere, repositorier, modeller og autentisering
- API-nøkler -- Personlige tilgangstokener for skript og koblinger
- Tilkoblede apper (OAuth) -- Flerleietaker-OAuth-flyt for tredjepartsapper
- Webhooks -- Push varselhendelser til eksterne systemer
- MCP-server -- Model Context Protocol-endepunkt som eksponerer API-et for AI-assistenter
- Endepunktreferanse -- Fullstendig REST-API-dokumentasjon for alle moduler