1. Indholdsfortegnelse
2. Introduktion
2.1. Formål
Denne guide har som formål at give et overblik over Digital Post Adapter (DPA). Formålet med dokumentet er at give anvendere et overblik over løsningen, samt en oversigt over, hvilke User Stories der er understøttet af DPA og hvordan disse er implementeret.
2.2. Beskrivelse
Digital Post Adapter står for at videresende breve til Digital Post Komponent. Dette gøres asynkront via en kø, således at brevene vil blive sendt før eller senere, selv hvis DPK er utilgængelig.
2.3. Links til mere information
Dokumentationen for DPK kan findes her: https://github.com/trifork/dpk-docs/wiki
Det er kaldet SendPDF der bliver brugt af DPA.
2.4. Grafisk fremstilling og sammenhængen
DPA modtager breve fra andre services og sender dem videre til DPK, som omdanner dem til PDF og sender dem videre.
2.5. Læsevejledning og forudsætninger
Dette dokument er henvendt til udviklere og arkitekter, der skal anvende Digital Post Adapter .
Det forventes at læseren har kendskab til SOAP WebService, Den Gode WebService (DGWS) og Sercurity Token Service (STS).
2.6. Sikkerhed
| Service udstil type | DGWS |
| Krævet sikkerhedsniveau | VOCES eller FOCES certifikat |
| Logning | Der logges svar fra DPK, i de tilfælde hvor DPK melder fejl |
2.7. Definitioner og referencer
| Reference | Beskrivelse |
|---|---|
| DPA | Digital Post Adapter |
| DPK | Digital Post Komponent. Komponent som leverer digital post til Digital Post og Strålfors |
3. Adgang, brug og snitflader
3.1. Adgang
| Endpoint(s) |
På <serverurl>/digitalpost/2024/05/29/send findes endpointet http://nspop.dk/digitalpost/2024/05/29/#send |
| WSDL | |
| Beskrivelse af services | Afsendelse af brev til Digital Post, både digitalt og (hvis relevant) fysisk. |
| Namespaces etc | http://nspop.dk/digitalpost/2024/05/29/ |
3.2. Snitfladebeskrivelse og brug
3.3. SendDigitalPost
SendDigitalPost kaldet sætter et Digital Post brev på en kø, som afvikles med jævne mellemrum. Hvis et brev succesfuldt sendes til DPK fjernes det fra køen, men hvis kaldet mod DPK fejler beholdes brevet i køen og forsøges afsendt igen senere og supporten får vha. is-alive kald besked om at der er et brev som er fejlet.
3.3.1. SendDigitalPostRequest
| SendDigitalPostRequest | ||
|---|---|---|
| Element | Beskrivelse | Påkrævet |
| message-id | UUID version 4 som unikt udpeger genne beske | X |
| recipient-id | ID-nummer for modtager af brevet. På nuværende tidspunkt understøttes kun CPR-numre | X |
| recipient-id-source | OID for ID-nummeret. På nuværende tidspunkt understøttes kun 1.2.208.176.1.2 | X |
| template-physical | ID for den fysiske skabelon der skal udfyldes. |
|
| template-digital | ID for den digitale skabelon der skal udfyldes. | X |
| recipient-details | Key-value liste over modtager-specifikke detaljer der skal erstattes ind i skabelonen | Nogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details |
| template-details | Key-value liste over skabelon-specifikke detaljer der skal erstattes ind i skabelonen | Nogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details |
3.3.2. SendDigitalPostResponse
| SendDigitalPostResponse | ||
|---|---|---|
| Element | Beskrivelse | Påkrævet |
| message-id | Samme message-id som blev sendt ind vil blive returneret. Dette betyder ikke at brevet er sendt succesfuldt afsted, men at det er blevet sat i køen og vil blive forsøgt afsendt snarest | X |
3.4. Generelle koder, værdier, etc.
Disse Identifiers kan angives som template i requestet, og sender de tilsvarende Identifiers til DPK. Substitutions-nøglerne kan enten tilføjes som recipient-details eller som template-details. Hvis en substitutions-nøgle er angivet som både recipient-details og template-details vil recipient-details værdien blive valgt.
| Identifiers hos DPK | Obligatoriske substitutions-nøgler | Valgfri substitutions-nøgler |
|---|---|---|
|
fgvhr/20241218/digital/BekraeftelseRegistreringFravalg fgvhr/20241218/physical/BekraeftelseRegistreringFravalg |
|
|
|
fgvhr/20241218/digital/BekraeftelseFortrydelseFravalg fgvhr/20241218/physical/BekraeftelseFortrydelseFravalg |
|
|
|
fgvhr/20241218/digital/PaamindelseRegistreringFravalg fgvhr/20241218/physical/PaamindelseRegistreringFravalg |
|
|
3.5. Fejlbeskeder
I fejl-scenarier vises disse fejlkoder:
| Fejlkode | Scenarie |
|---|---|
| system-validation-error | Fejl i sikkerheds-billet valideringen |
| invalid-oid-error |
Hvis der angives en anden recipient-id-source end understøttet. På nuværende tidspunkt understøttes kun 1.2.208.176.1.2 |
| invalid-uuid-error |
Hvis message-id ikke er en UUID version 4 |
3.6. failed-endpoints
Som anvender (afsendersystem) kan du via /failed-endpointet selv se hvilke af dine breve der er fejlet mellem DPA og DPK, og med hvilken fejlbesked. Dermed kan du afgøre om et brev er fejlet, og om muligt rette fejlen (fx forkert templatenavn, ulovlige templateværdier, forkerte flettefeltnavne eller duplikeret brev-id) og sende igen.
Bemærk: Funktionaliteten er kun tilgængelig i testmiljøer. I produktion svarer endpointet 404 Not Found.
3.6.1. GET /failed
Returnerer brev-UUID'erne (svarende til message_id) for de breve der aktuelt er fejlet — ét UUID pr. linje.
Eksempel:
De forskellige response du kan ramme:
| Statuskode | Betydning |
|---|---|
| 200 OK | Liste returneret (tom liste [] hvis ingen fejlede breve). |
| 404 Not Found | Endpointet er ikke aktivt i miljøet. |
| 500 Internal Server Error | Uventet fejl ved opslag. |
3.6.2. GET /failed/{uuid}
Returnerer fejlbeskeden (den fulde stacktrace DPK har returneret) for et konkret brev, som ren tekst.
Eksempel:
De forskellige response du kan ramme:
| tatuskode | Betydning |
|---|---|
200 OK |
Fejlbesked returneret. |
400 Bad Request |
{uuid} har ikke et gyldigt UUID-format. |
404 Not Found |
Ukendt brev-UUID (intet fejlet brev med dette UUID), eller endpointet er ikke aktivt i miljøet. |
500 Internal Server Error |
Uventet fejl ved opslag. |
3.6.3. Levetid på fejlposter
Fejlposter opbevares i en konfigurerbar periode (se driftsvejledningen). Gamle poster ryddes automatisk, så et brev der har været fejlet længe end perioden ikke længere vil fremgå af /failed.
4. Eksempler på request/response
Eksempler på request og response til de operationer der udstilles. De enkelte elementer er beskrevet under snitfladebeskrivelse. Klient proxier kan genereres udfra WSDL'en.
4.1. Eksempel på SendDigitalPostRequest/Response
5. Eksempel kode
5.1. Eksempel kode
Denne eksempel-kode gør brug af nsp-test-idp biblioteket til håndtering af SOAP og SEAL.
6. Dokument Historik
| 3/4 2025 | Martin Henriksen/SDS | Etablering af dokumentation |
| 4/6 2025 | Markus Andreassen/Trifork | Udfyldelse af dokumentation |
| 27/7 2025 | Markus Andreassen/Trifork | Udvidelse af dokumentation ifbm. QA |
