Hopp til hovedinnhold

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

ModulFormål
MembershipPersoner, grupper, husholdninger, tillatelser
AttendanceGudstjenester, økter, innsjekkingsregistreringer
ContentSider, seksjoner, elementer, strømming
GivingDonasjoner, fond, betalingsbehandling
MessagingSamtaler, varsler, e-post
DoingOppgaver, 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

ProtokollPortBeskrivelse
HTTP8084Hoved-REST-API
WebSocket8087Sanntids socket-tilkoblinger

Lambda-funksjoner

Når API-et distribueres til AWS, kjører det som seks Lambda-funksjoner:

  • web -- Håndterer alle HTTP-forespørsler
  • socket -- Administrerer WebSocket-tilkoblinger
  • timer15Min -- Kjører hvert 30. minutt for e-postvarsler (navnet er historisk)
  • timerMidnight -- Kjører daglig for sammendrags-e-poster og vedlikeholdsoppgaver
  • timerScheduledTasks -- Kjører daglig for forfalte automatiseringer og behandling av forsinkede arbeidsflyter
  • timerWebhooks -- Kjører hvert minutt for å levere utgående webhooks i kø

Delte biblioteker

API-et er avhengig av to delte ChurchApps-pakker:

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