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


  • No labels