Page History
...
Dette dokument beskriver installation og konfiguration af Organdonorregister-servicen (ODR) samt tilhørende migreringsværktøj. Konfiguration af tilhørende DGWS/IDWS Proxy er også beskrevet.
Organdonorregister-servicen består af 2 komponenter følgende komponent (war-arkiverarkiv), der skal konfigureres og deployes på en applikationsserver:
- odr-migration: Komponent til migrering af data. Anvendes kun ved initial migrering af data fra den gamle løsning. War-arkiv. Servlet-baseret webservice pakket specifikt til Wildfly.
Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle unit-tests.Udover normalt tilgængelige Maven dependencies, afhænger projektet også af interne artefakter. Hvis disse artefakter ikke er udgivet (released) i den påkrævede version i NSP's Nexus repository, skal man selv udtjekke og bygge dem fra NSP's Subversion i den pågældende version. Artefakternes forskellige versioner vil være tilgængelige under et Subversion-tag. Disse artefakter er:
- cpr-subscriber (Maven identifier: dk.sds:cprsubscriber)
For at bygge disse interne artefakter, henvises der til artefakternes dokumentation.
| Info |
|---|
Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe. |
...
Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
1.0.1 | 2018-08-20 | Initialt dokument | Trifork |
| 1.0.2 | 2018-08-31 | Ny release | Trifork |
| 1.0.3 | 2018-09-11 | Ændret databasedriver til MySQL | Trifork |
| 1.0.11 | 2019-08-19 | Opdateret default value for property "minlog.read-activity-text". Tilføjet SQL-script. | Trifork |
| 1.0.13 | 2019-25-09 | Ajourført | Trifork |
| 1.0.16 | 2020-05-25 | Opdateret properties til slettejob | KIT |
| 1.0.17 | 2021-12-07 | Opdateret ifm inaktive cpr numre afvises | KvalitetsIT |
| 1.0.18 | 2022-10-24 | SDS-5679: validering af alder | KvalitetsIT |
| 1.0.19 | 2023-09-26 | SDS-6386: ODR - oprydningsjob genbesøg | KvalitetsIT |
Byggevejledning
For at bygge projektet og dets deployables (war-filer) uden at køre unit-tests og integrationstests, anvendes følgende Maven kommando:
...
- odr/V1__create_OrganDonorRegistration.sql
- odr/V2__create_Properties.sql
- odr/V3__add_PersonIdentifier_index.sql
- odr/V4__create_Notification_tables.sql
(Replikeret) Stamdata-database
- stm/R__create_v2_Person_Simplified_view.sql
| Info |
|---|
Scriptet R__create_v2_Person_Simplified_view.sql opretter et view, som afhænger af eksistensen af tabellen v2_Person. Dette er tabellen, der indeholder CPR-ændringer, og den skal man selv stå for at levere. Under afvikling af unit-tests bliver en testudgave af denne tabel automatisk oprettet vha. et SQL-script i compose/database/db/test. |
...
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
odr-service-wildfly og odr-migration konfigureres ved hjælp hver deres Wildfly-modul, der indholder indholder de nødvendige konfigurationsfiler til valg af datasources, brugerdefinerede parametre, logning, mm. WildflyWildfly-modulet er integreret i komponentens Docker image.
...
Herunder beskrives properties i odr-service-wildfly komponentens konfigurationsfiler.
application.properties
...
Properties er her opdelt i to tabeller. Den første tabel indeholder anvendte Spring Boot-properties. Den anden tabel indeholder properties, der er specifikt defineret til brug i servicen. Begge typer af properties er defineret i samme konfigurationsfil.
Spring Boot-properties
...
JTA transaktioner. Det er påkrævet at denne er false, således at Spring Boot i stedet anvender dens egen håndtering af transaktioner. (true/false)
...
og operations.properties
Properties for servicen ses i tabellen herunder. Det er angivet hvilken property fil de er relevante for. Operations filen anvendes af komponentens baggrundsjobs.
| Property | Fil |
|---|
Komponentspecifikke-properties
| Beskrivelse | Default | ||
|---|---|---|---|
| datasource.odr.jndi-name | application | Angiver navnet på en JNDI datasource til Organdonorregister-databasen | java:jboss/datasources/ODR-DS |
| datasource.stamdata.jndi-name | application | Angiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-database | java:jboss/datasources/STM-DS |
| dcc.endpoint | application | Angiver det endpoint, som DCC'en skal kalde. Dette kommer til at fremgå af den XML, der returneres i /dksconfig. Bør ændres før produktion. | http://test1.fsk.netic.dk:8080/odr/odr |
| minlog.read-activity-text | application | Angiver den tekst der registreres i MinLog, når der bliver læst Organdonorregistering-data for et CPR-nummer | L\u00e6sning af Organdonorregistrering |
minlog. |
Angiver om responses skal schema-valideres (true/false)
Angiver om en kald skal returnere fejl, hvis response ikke er schema-valid (true/false)
create-activity-text | application | Angiver den tekst der registreres i MinLog, når der bliver oprettet Organdonorregistering-data for et CPR-nummer | Oprettelse af Organdonorregistrering |
minlog.delete-activity-text | application | Angiver den tekst der registreres i MinLog, når der bliver slettet Organdonorregistering-data for et CPR-nummer | Sletning af Organdonorregistrering |
minlog.update-activity-text | application | Angiver den tekst der registreres i MinLog, når der bliver opdateret Organdonorregistering-data for et CPR-nummer | Opdatering af Organdonorregistrering |
| jobs.delete.cpr-max-results | application | Slettejob: Angiver maksimum antal rækker med opdateringer i cpr-registry der skal læses ad gangen | 25 |
| jobs.delete.cpr-max-loops | application | Slettejob: Angiver maksimum antal batches der skal behandles pr. jobeksekvering | 2 |
| cprexists.validationlevel | application | Valideringsniveau for CPR validering Eksempel: WARNING, REJECT, OFF | |
| cprexists.url | application | URL for CPR exist service Eksempel: http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-cprexists | null |
| cprexists.maxTotalConnections | application | Konfiguration af client pool til kald af CPRExists service | 200 |
| cprexists.defaultMaxConnectionsPerRoute | application | Konfiguration af client pool til kald af CPRExists service | 20 |
| cprexists.inactive.status | application | Konfiguration af inaktive status, liste adskilt af komma | 30,50,60 |
| cprexists.minage | application | Aldersgrænse for oprettelse af organdonation | 15 |
| whitelisted.level3.cvrs | application | Komma separeret liste af cvr numre, der må kalde servicen med niveau 3 id kort | |
| allowed.idws.audience | application | Det tilladte audience på indkommende idws requests | |
| nas.app.name | application | Applikationsnavn til sla-logning ved NAS-kald | organdonorregister |
| nas.app.shortname | application | Kort applikationsnavn til sla-logning ved NAS-kald. | odr |
| nas.connect.timeout.millis | application | Grænse for hvor lang tid det må tage at oprette forbindelse til NAS (i ms.). | 20000 |
| nas.max.total.connections | application | Maksimalt antal samtidige NAS-forbindelser. | 200 |
| nas.default.max.connections.per.route | application | Maksimalt antal NAS-forbindelser per rute. | 20 |
| nas.service.url | application | NAS Endpoint | http://test1.ekstern-test.nspop.dk:8080/nas2/notificationbroker/service |
| nas.topic | application | NAS topic | http://sundhedsdatastyrelsen.dk/OrganDonation/2022/05/05:OrganDonationUpdated |
| sts.idcard.subject.id.type | application operations | Subjecttype for IDKort til ekstern komponent kald. | medcom:cvrnumber |
| sts.idcard.subject.id | application operations | SubjectId for IDKort til ekstern komponent kald. | 46837428 |
| sts.idcard.subject.name | application operations | Subjectname for IDKort til ekstern komponent kald. | Funktionssignatur til testmiljø (funktionscertifikat) |
| sts.idcard.level | application operations | Sikkerhedsniveau for IDKort til ekstern komponent kald. | 3 |
| sts.idcard.system.name | application operations | Systemnavn i IDKort til ekstern komponent kald. | itsystem |
| sts.endpoint | application operations | Endpointet, hvor komponenten trækker sit SOSI IDkort på baggrund af sts.keystore | http://test2.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService |
| sts.test.mode | application operations | Boolsk værdi, der angiver om der anvendes test- eller produktions SOSIFederation | true |
| sts.keystore | application operations | sti til keystore, der indeholder certifikat til at trække Idkort til kald af eksterne komponenter. | Statens_Serum_Institut_FOCES.jks |
| sts.keystore.password | application operations | Password til sts.keystore | n/a |
| jobs.delete.max.time | application | Angiver den maksimale udførelsestid for baggrundsjobbet. Angives som Duration i ISO-8601 formattet. Default værdien er på 20 sekunder. | PT20S |
| personinformation.* | operations | Disse er beskrevet i driftsvejledningen | |
| deletion.* | operations | Disse er beskrevet i driftsvejledningen | |
| digitalpost.* | Disse er beskrevet i driftsvejledningen | ||
minlogclient.properties
ODR anvender MinLogProvider til at registrere logninger i MinLog2, og i den forbindelse skal Kafka properties for Min Log 2 konfigureres.
| Property | Beskrivelse |
|---|---|
| kafka.producer.bootstrap.servers | Kafka endpoint, som anvendes i forbindelse med kald til MinLog2 |
| kafka.producer.client.id | Navnet som ODR vil fremgå med i listen af Producers på et Kafka Cluster. |
| kafka.producer.key.serializer | Serializer key for Kafka producer |
| kafka.producer.key.value.serializer | Serializer value for Kafka producer |
| kafka.topic | Kafka topic som anvendes i forbindelse med kald til MinLog2 |
...
nsp-role-mapping.properties
ODR anvender denne property fil til at mappe hvilken rolle (role), der kommer ned i minlog registreringen.
Property filen vedligeholdes her: https://git.nspop.dk/projects/TOOL/repos/nsp-role-mapping/browse/nsp-role-mapping.properties
| Property | Beskrivelse |
|---|---|
| citizen.user | Bestemmer hvilken rolle står beskrevet i minlog ved kald til ODR for borger Eksempel på værdi: borger |
| healthcareprofessional.unknown.user | Bestemmer hvilken rolle står beskrevet i minlog ved kald til ODR for sundhedfarlig, hvor der ikke kunne bestemmes en rolle. Eksempel på værdi: unverified role |
<Uddannelseskoder> | Der angives en række uddannelseskoder med kode=læsbar tekst Eksempler er: C511=Ambulancebehandler Når der logges til minlog, og rollen er en uddannelseskode, laves der mapning mellem kode og læsbar tekst. Findes koden ikke som mapning anvendes den oprindelige kode. |
| <Nationale Roller (NSP)> | Der angives en række nationale roller med rolle=læsbar tekst Eksempler er: urn:dk:healthcare:national-federation-role:code:41001:value:SundAssistR1=Sundhedsstamkort-Læser Når der logges til minlog, og rollen er en national rolle, laves der mapning mellem rolle og læsbar tekst. Findes rollen ikke som mapning anvendes den oprindelige rolle. |
log4j.xml
Konfigurerer logning for servicen.
Der benyttes en rolling file appender, hvor størrelsen af log filerne og antallet af gemte log filer konfigureres med de to environment variable: LOG_MAX_FILE_SIZE og LOG_MAX_BACKUP_INDEX.
Standardværdierne angiver nogle brugbare niveauer for anvendelse i produktion. Se Driftsvejledningen for uddybet beskrivelse af logning.
Se den officielle Log4j 2 dokumentation for alternativ konfiguration.
...
Der henvises til accesshandlerens dokumentation for yderligere detaljer om konfiguration af security-api'et.
Konfiguration af
...
application.properties
Spring Boot-properties
...
JTA transaktioner. Det er påkrævet at denne er false, således at Spring Boot i stedet anvender dens egen håndtering af transaktioner. (true/false)
...
datasources
...
...
PersonData.csv
...
migration.organDonorFileName
...
OrganDonorData.csv
log4j2.xml
Konfigurerer logning for migreringskomponenten.
Standardværdierne angiver nogle brugbare niveauer for anvendelse til migrering i produktion. Se migeringsvejledningen for uddybet beskrivelse af logning.
Se den officielle Log4j 2 dokumentation for alternativ konfiguration.
Konfiguration af datasources
odr-service-wildfly komponenten kræver adgang til 2 JNDI datasources. Disse skal opsættes i Wildfly og refereres til i servicens application.properties.
...
Filnavn når deployet | Beskrivelse | Kilde | |||
|---|---|---|---|---|---|
odr-service-wildfly.war | ODR servicen | odr-service-wildfly-<version>.war | |||
odr- | migrationoperations.war | ODR | migeringsværktøj. Deployes kun når migrering skal foretages.baggrundsjob | odr- | migration-<version>operations.war |
Se driftsvejledningen for yderligere information.
...