1. Indholdsfortegnelse
2. Introduktion
2.1. Formål
Formålet med dette dokument er at beskrive systemarkitekturen for GM-CMS, som er designet til at understøtte og servicere appen "Min Graviditet" gennem CMS BFF’en.
2.2. Læsevejledning
Dokumentet er tiltænkt udviklere og IT-arkitekter med interesse i GM-CMS og dens opbygning.
2.3. Definitioner og referencer
| CMS |
Content Management System |
| GM | Graviditetsmappen |
| BFF |
Backend for frontend |
3. Overblik over GM-CMS
GM-CMS er en CMS-løsning, som servicerer MinGraviditet-appen med indhold gennem CMS BFF’en.
GM-CMS gør det muligt for sundhedsfaglige at administrere og distribuere relevant indhold som artikler, billeder og videoer uden behov for udviklerinvolvering.
3.1. Løsningens afhængigheder
GM-CMS benytter sig af tredjepartsbiblioteker, som understøtter funktionaliteten i systemet.
GM-CMS anvender følgende biblioteker:
- Strapi: Open-source headless CMS, der tillader fleksibel indholdshåndtering.
- Meilisearch: Plugin-søgeværktøj til effektiv søgning i indholdet i CMS’et.
- CKEditor 5: HTML-editor plugin til indholdsredigering.
- Import Export 5: Plugin til indholdsmigrering.
- PostgreSQL: Relational database, der bruges til opbevaring af indhold.
- Docker: Containerization til projektopsætning og deployment.
- GitHub: Versionskontrol og projektstyring, herunder workflows.
3.2. Løsningens arkitektur
Nedenstående diagram viser opbygningen af GM-CMS, hvor forskellige komponenter og deres interaktioner er illustreret. Diagrammet indeholder elementer som Strapi backend, Meilisearch-service samt relation til CMS BFF og “Min Graviditet”-appen, som trækker på de API'er, der stilles til rådighed af GM-CMS gennem BFF.
3.3. Sikkerhed
Strapi Admin Portalen er sikret bag 2-faktor login, via en keycloak oauth proxy. Alle Strapi brugere skal derfor oprettes både i Keycloak og i Strapi.
Adgangen til Strapi Admin Portalen og til Keycloak brugeradministration er yderligere sikret ved IP-whitlisting.
Strapi's indre API'er, som anvendes af CMS BFF, er yderligere sikret via en JWT systemnøgle. Det konfigureres i Strapi, hvilken nøgle den accepterer, og denne nøgle sendes med i rest kald som bearer token fra BFF'en.
4. Dokument Historik
| 3/4 2025 | Martin Henriksen/SDS | Etablering af dokumentation |
| 9/4 2025 |
Dikte Straadt/Trifork |
Initiel udfyldning af dokumentation |
| 18/9 2025 |
Anders Ringsmose/Trifork |
Afsnit om sikkerhed tilføjet |
