You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Indholdsfortegnelse

Se eksempel på udfyldelse på DDS: DDS - Guide til anvendere - NSP services - Global Site

Introduktion

Formål

Denne guide har som formål at give et overblik over GM-CMS, herunder dets funktionalitet, arkitektur, og hvordan det integreres med relaterede services.

Denne guide er tilegnet klienter til NSP, specielt dem, der skal udvikle aftagersystemer. Der vil blive givet referencer til relevante dokumenter for at skabe en bredere forståelse af komponentens omgivelser.

Beskrivelse

GM-CMS er en backend-service, der understøtter indholdshåndtering for applikationen "Min Graviditet".

Systemet tilbyder fleksible værktøjer til oprettelse, redigering og publicering af indhold såsom artikler, billeder og videoer.

Links til mere information

Grafisk fremstilling og sammenhængen

Følgende ses diagram over GM-CMS struktur og relationer til relaterede services (Min Graviditet-app, BFF, m.fl.)

Relevante use-cases

Der findes tre typer brugere i forhold til use cases:

  • Borgere: Brugere af app’en "Min Graviditet".
  • Redaktører: Brugere med indholdsredigeringsrettigheder i GM-CMS.
  • Systemadministratorer: Brugere med administratortilladelser i GM-CMS.

GM-CMS skal understøtte use cases for "Min Graviditet" appen ved at udstille data. I den efterfølgende parentes angives use case nummer jf. Appendix 1b fra tilbudsmateriale.

Use cases for "Min Graviditet" appen:

  • Borger skal kunne se vejledninger som er knyttet til specifikke graviditetsuger (artikler og videoma teriale) (UC11)
  • Borger skal kunne søge i vejledninger (UC12)
  • Borger skal kunne tilføje nye emner til tjeklisten (UC13)
  • Borger skal kunne se menupunktet “Mere”, som indeholder information omkring support, sikker hed, FAQ, privatslivspolitik, samtykke mm. (UC22)
  • Borger skal kunne tilgå information omkring privatlivspolitik (databeskyttelse, logning, etc) (UC25)

For at undersøtte disse use cases skal GM-CMS overholde følgende use cases.

  • Redaktør skal kunne oprette, redigere, publicere og slette indholdstyper, herunder kategorier, artikler, sektioner, tjeklister, tjeklistepunkter, forklaringer på fagtermer og ofte stillede spørgsmål (FAQs).
  • Det skal være muligt søge i artikler
  • Administrator skal kunne tilføje og administrere CMS-brugere
  • Redaktør skal kunne ændre eget kodeord
  • Alle brugere skal logge ind i CMS administrationspanel via 2-faktor. 
  • Redektører skal kunne filtrere indhold på udgivet og kladdeversioner samt sortere på dato og kategorier
  • Redaktøren skal kunne angive følgende per artikel: Titel, kategori, tags, angivelse af ugenumre, hvor artikel dermed vil blive vist på forsiden ved den pågældende graviditetsuge, angivelse af ugenumre, hvor artikel dermed vil blive vist på forsiden den pågældende efter fødsel er angivet, sektioner, hvorvidt artikel skal skjule på forside, samt tekst og medier.
  • På artikel skal forfatter og dato for udgivet/published eller sidst redigeret/modified sættes
  • Redaktører skal kunne eksportere alle tekster fra CMS’en til en samlet tekstfil

Læsevejledning og forudsætninger

Dette dokument er henvendt til udviklere og arkitekter, der skal anvende GM-CMS. Det forventes, at læseren har kendskab til RESTful API'er samt grundlæggende webteknologier.

Sikkerhed

Forudsætninger for anvendelse inkluderer:

Service udstil type

<Angiv typen, f.eks. DGWS, IDWS, ...>

Krævede adgange

<Angiv adgange som er nødvendige for anvendere for at kunne benytte servicen/komponenten>

Whitelisting

Whitelisting kræves for IP-adresser, der skal have adgang til GM-CMS.

Krævet sikkerhedsniveau

<Angiv krav til authentication for at kunne bruge servicen/komponenten>

Forudsætninger for anvendelse

<Angiv forudsæntninger som er nødvendige for at kunne bruge servicen/komponenten, eventuelle nødvendige kald til andre services, etc.>

Logning

<Angiv om og hvad der logges>

Definitioner og referencer

ReferenceBeskrivelse

CMS

Content Management System

GM

Graviditetsmappen

BFF

Backend for frontend

Adgang

<Beskrivelse af hvordan service/komponent bruges, snitflade(r), endpoints, og andet relevant>

Tilgængelig<Angiv på hvilke(n) NSP-installation(er) servicen/komponenten er tilgængelig>
Endpoint(s)

<Angiv udstillede endpoint(s), og hvad de hedder.>

WSDL

<Angiv henvisning til WSDL(er). For ekstern anvendbare services typisk på https://wsdl.nspop.dk/>

Beskrivelse af services

<Beskrivelser af service(s) / actions på endpoint(s). I lægmands termer beskrive hvad man kan forvente af de enkelte services.>

Namespaces etc<Angiv eventuelt Namespaces, eksterne typer, ..>

Brugertyper (roller)

I Strapi administrationpanelet arbejdes der med følgende brugertyper:

  • Systemadministrator: En bruger med overordnede rettigheder, der administrerer systemindstillinger og brugeradgange.
  • Redaktør: En administrator, der har ansvar for indholdsoprettelse og -vedligeholdelse i administrationsportalen.
  • Redaktør med brugeroprettelsesrettigheder: En administrator, der har ansvar for indholdsoprettelse og -vedligeholdelse i administrationsportalen, samt oprettelse og administration af brugere.

Snitfladebeskrivelse og brug

Følgende bekriver Strapi og Meilisearch snitfladerne. 

Strapi snitflade

Strapi CMS'en udstiller en række endpoints til at hente de definerede indholdstyper. Alle API-endpoints er offentligt tilgængelige, hvilket betyder, at det ikke er nødvendigt at sætte en authentication header på anmodningerne.

Indholdstyper

Jf. use cases skal følgende indholdstyper konfigureres i GM-CMS.

Indholdstype

Beskrivelse

Relation

id

Kategori

Indeholder titel og tilhørende artikler

Kategori “tilhører flere” artikler

category

Artikel

Indeholder titel, beskrivelse, tags, boolean til angivelse af om artikel skal skjules på forside, samt tilhørende kategorier og sektioner

Kategori ”har flere” artikler

Artikel “tilhører flere” sektioner

article

Sektion

Indeholder titel, tekst, liste af ugenumre i graviditet/efter fødsel hvor sektionen er relevant, samt tilhørende artikler

Artikel “har flere” sektioner

section

Tjekliste

Indeholder titel, beskrivelse, samt tilhørende tjektlistepunkter

Tjekliste ”tilhører flere” tjeklistepunkter

checklist

Tjeklistepunkt

Indeholder titel, beskrivelse, samt tilhørende tjektliste

Tjekliste “har flere” tjeklistepunkter

checklist-point

Ordforklaring

Indeholder ord og ordforklaring


glossary-term

Tekst

Indeholder titel, tekst, beskrivelse og unikt API-navn. Bruges til at oprette tekster om samtykkeerklæring, databeskyttelse osv.


text

FAQ

Indeholder spørgsmål og svar


faq

Strapi endpoints

Indholdstype

Endpoirt

Kategori

/api/categories

Artikel

/api/articles

Sektion

/api/sections

Tjekliste

/api/checklists

Tjeklistepunkt

/api/checklist-points

Ordforklaring

/api/glossary-terms

Tekst

/api/texts

FAQ

/api/faqs

 For at relationer mellem indholdstyperne inkluderes i responsen tilføjes:

?populate=*

Eksempelvis for at få alle artikler, samt relaterede kategorier og sektioner kaldes:

/api/articles?populate=*

 Eksempler på Strapi request/responses

Herunder ses eksempler på Strapi request/responses der foretages af GM-BFF:

RequestBeskrivelseRespons
api/articles?filters[Sektioner][UgenummreEfterFoedsel][$contains]={UGENUMMER_EFTER_FOEDSEL}&populate=*Returnerer alle sektioner (inkl. tilhørende artikler og kategorier) hvor parameter UGENUMMER_EFTER_FOEDSEL er i listen UgenummreEfterFoedsel. Anvendes til at finde relevante artikler til borger med angivet fødselsdato.
api/articles?filters[Sektioner][UgenumreUnderGraviditet][$contains]={UGENUMMER_UNDER_GRAVIDITET}&populate=*Returnerer alle sektioner (inkl. tilhørende artikler og kategorier) hvor parameter UGENUMMER_UNDER_GRAVIDITET er i listenUgenumreUnderGraviditet. Anvendes til at finde relevante artikler til borger med terminsdato.
"data": [
        {
            "id": 6,
            "documentId": "yl4fr112xq1wnjrmgq4c0hdk",
            "Titel": "Ammeassistenten",
            "Tags": null,
            "SkjulPaaForside": true,
            "Beskrivelse": "<p>Ammeassistenten.dk er et supplement til den hjælp, som forældre kan få fra sundhedsplejersker eller på fødestedet. Her kan du finde svar på mange af de spørgsmål, der måtte opstå i forbindelse med amning.</p>",
            "createdAt": "2025-03-13T11:47:23.616Z",
            "updatedAt": "2025-03-13T11:47:23.616Z",
            "publishedAt": "2025-03-13T11:47:23.642Z",
            "Kategori": {
                "id": 2,
                "documentId": "kh2fio7vc6dyoj368j94n4gw",
                "Titel": "Amning",
                "createdAt": "2025-03-13T11:37:55.157Z",
                "updatedAt": "2025-03-13T11:37:55.157Z",
                "publishedAt": "2025-03-13T11:37:55.180Z"
            },
            "Sektioner": [
                {
                    "id": 11,
                    "documentId": "ly4pavnpgqto6bpcs5qe8xgn",
                    "Titel": " Hvad kan Ammeassistenten hjælpe dig med?",
                    "Tekst": "<p>Kompetencecenter for Amning har i maj 2024 lanceret <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ammeassistenten.dk/\">Ammeassistenten.dk</a>, som er en ny hjemmeside, der tilbyder omfattende, forskningsbaseret viden om amning til både forældre og sundhedspersonale i hele Danmark. Hjemmesiden er udviklet som en del af et forskningsprojekt om amning i sundhedsplejen.</p><p>Platformen er designet til at støtte og informere om alle aspekter af amning - lige fra forberedelse til vedligeholdelse af amning på længere sigt. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ammeassistenten.dk/\">Ammeassistenten.dk</a> er i overensstemmelse med den nyeste viden om amning og Sundhedsstyrelsens anbefalinger.</p><p>Hjemmesiden tilbyder en række ressourcer, heriblandt:</p><ul><li>Vejledning om alle faser af amning</li><li>Emnesider med dybdegående information</li><li>Handlingsanvisende videofilm</li><li>Podcast om personlige fortællinger og ammeerfaringer</li></ul>",
                    "createdAt": "2025-03-13T11:38:21.068Z",
                    "updatedAt": "2025-04-07T13:21:20.596Z",
                    "publishedAt": "2025-04-07T13:21:20.610Z",
                    "UgenumreUnderGraviditet": "37, 38, 39",
                    "UgenummreEfterFoedsel": "1, 2",
                    "VisPaaForsideVedTerminsdatoIkkeSat": null
                }
            ]
        }
    ],
    "meta": {
        "pagination": {
            "page": 1,
            "pageSize": 25,
            "pageCount": 1,
            "total": 1
        }
    }
}


Meilisearch snitflade

Meilisearch anvendes til at søge i artikler CMS'en udstiller en række endpoints til at hente de definerede indholdstyper. Alle API-endpoints er offentligt tilgængelige, hvilket betyder, at det ikke er nødvendigt at sætte en authentication header på anmodningerne.

Generelle koder, værdier, etc.

Ikke relevant

Fejlbeskeder

Herunder er nogle af de mest almindelige fejlbeskeder og deres årsager.

Strapi - 401 Unauthorized

  • Mulige årsager: 
    • Der er sendt en authentication header med anmodningen. Selvom endpointet er offentligt vil enhver bearer token i headeren resultere i et ugyldigt kald.
    • Endpointet er konfigureret til, at anmoderen skal være authenticated. Dette er default konfigurationen i Strapi.
  • Løsninger: 
    • Gå til Strapi adminpanelet → SettingsUsers & Permissions pluginRolesPublic.
    • Tjek, at “Find” og “FindOne” er markeret for alle indholdstyper, som du ønsker at tilgå. Dette tillader offentlige brugere at få adgang til de angivne indholdstyper uden at være autentificeret.
    • Tjek, at authentication header ikke er sat.

Meilisearch - XXX

Test

Ikke relevant.

Dokument Historik

3/4 2025Martin Henriksen/SDSEtablering af dokumentation
10/4 2025Dikte Straadt/TriforkInitiel udfyldning af dokumentation


  • No labels