Page History
...
Dette dokument beskriver installation og konfiguration af Det Fælles Stamkort-servicen (FSK) samt den tilhørende konfiguration af dokumentdelingsservicen (DDS).
FSK-servicen består af én komponent to komponenter (war-arkivarkiver), der skal konfigureres og deployes på en applikationsserver:
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:
- cprsecurity-subscriber api (Maven identifierMaven identifier: dkdk.sds:cprsubscriber)security-api (Maven identifier: dk.sds.nsp.security:security-api)
...
Datamodellen styres vha. inkrementelle SQL-scripts, der kan findes under compose/database/db/migration/fsk og indeholder ddl og indeholder scripts til at køre på servicens database.
| Info |
|---|
Scripterne er udformet til at blive kørt med databasemigreringsværktøjet FlywayLiquibase, og afvikles automatisk under Maven-byg. |
I produktion anvendes scripterne manuelt og skal køres på databasen i inkrementel rækkefølge baseret på versionsnummeret i filnavnet (først V1__(...).sql, dernæst V2__(...).sql, osv.). Hvert script må aldrig køres mere end én gang; der gælder dog en undtagelse for ikke-versionerede scripter, hvis filnavne begynder med R, som står for Repeatable. Disse Repeatable scripter skal køres hver gang deres indhold (checksum) er blevet ændret, men de må først køres efter alle versionerede scripter er blevet kørt.
Ved initial installation af servicen vil det således være følgende scripter, der skal køres i den nedenstående rækkefølge:
Servicens database
- fsk/V2__create_RegistryIndex.sql
(Replikeret) Stamdata-database
- stm/R__create_v2_Person_Simplified_view.sql
- stm/R__create_Yderregister_v3_Simplified_view.sql
| Info |
|---|
Scripterne R__create_v2_Person_Simplified_view.sql og R__create_Yderregister_v3_Simplified_view.sql opretter views, som afhænger af eksistensen af tabellerne v2_Person og Yderregister_v3. Disse tabeller 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. |
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
fsk-service konfigureres ved hjælp af et Wildfly-modul, der indholder de nødvendige konfigurationsfiler til valg af datasources, brugerdefinerede parametre, logning, mm. Wildfly-modulet er integreret i komponentens Docker image.
| Info |
|---|
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet. |
Konfiguration af servicen
Herunder beskrives properties i fsk komponentens konfigurationsfiler.
application.properties
Følgende tabel indeholder properties, der er specifikt defineret til brug i servicen. Komponentspecifikke-properties
:
|
Database-ændringer til servicen i produktion køres på med Liquibase. Dette gøres i praksis ved at køre "release/docker-compose-db.yml" med kommandoen:
docker-compose -f compose/release/docker-compose-db.yml up --build
Bemærk, at "compose/configuration/liquibase.properties" skal indeholde de relevante database-credentials.
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
fsk-service konfigureres ved hjælp af et Wildfly-modul, der indholder de nødvendige konfigurationsfiler til valg af datasources, brugerdefinerede parametre, logning, mm. Wildfly-modulet er integreret i komponentens Docker image.
| Info |
|---|
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet. |
Konfiguration af servicen
Herunder beskrives properties i fsk komponentens konfigurationsfiler.
application.properties
Følgende tabel indeholder properties, der er specifikt defineret til brug i servicen. Komponentspecifikke-properties
| Property | Beskrivelse | Forslået værdi | Default | |||
|---|---|---|---|---|---|---|
| health.certificate-expires-warning | Angiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel. | 30 | ||||
| author.institution.root | Angiver author institution root id ved oprettelse af stamkort i fsk. | 1.2.208.176.1.1 | 1.2.208.176.1.1 | |||
| author.institution.extension | Angiver author institution extension ved oprettelse af stamkort i fsk. | 1126211000016009 | 1126211000016009 | |||
| author.institution.assigningAuthorityName | Angiver author institution autorityname ved oprettelse af stamkort i fsk. | SOR | SOR | |||
| author.institution.name | Angiver navn på author institution ved oprettelse af stamkort i fsk. | Fælles Stamkort udstedelse | Fælles Stamkort udstedelse | |||
| datasource-fsk.jndi-name | Angiver navnet på den primære JNDI datasource | java:jboss/datasources/FSK-DS | ||||
| sts.endpoint | Adresse på NSP'ens SecurityTokenService. | http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService | ||||
| sts | ||||||
| Property | Beskrivelse | Forslået værdi | Default | whitelisted.level3.cvrs | En komma-separeret liste af CVR-numre, som tillades at kalde FSKs DocumentProviderWS service med et level 3 ID-kort. Denne løsning findes af hensyn til sundhed.dk's kald gennem DDS. Sundhed.dk kalder igennem med CVR-nr. 31908574. På testmiljøer vil der (af testhensyn) typisk også være åbent for Trifork's CVR-nr. 20921897. | 31908574 | health.certificate-expires-warning | Angiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel. | 30 |
| author.institution.root | Angviver author institution root id ved oprettelse af stamkort i fsk. | 1.2.208.176.1.1 | 1.2.208.176.1.1 | |||
| author.institution.extension | Angviver author institution extension ved oprettelse af stamkort i fsk. | 1126211000016009 | 1126211000016009 | |||
| author.institution.assigningAuthorityName | Angviver author institution autorityname ved oprettelse af stamkort i fsk. | SOR | SOR | |||
| author.institution.name | Angviver navn på author institution ved oprettelse af stamkort i fsk. | Fælles Stamkort udstedelse | Fælles Stamkort udstedelse | datasource-fsk.jndi-name | Angiver navnet på den primære JNDI datasource | java:jboss/datasources/FSK-DS | datasource-stamdata.jndi-name | Angiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-database | java:jboss/datasources/STM-DS | spring.flyway.enabled | Angiver om servicen selv sørger for opgradering af databasen (hvilket kræver at “fsk-service”-brugeren har privilegier til DDL, samt at inkrementelle SQL-scripts er tilgængelige i WAR-filen). Bør være false. | false | sts.endpoint | Adresse på NSP'ens SecurityTokenService. | http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService | client.keystore.filesystem.path | Angiver hvilken keystore, ser anvendes til DGWS kald til SCES og DDS. | test1/Statens_Serum_Institut_FOCES.jks | client.keystore.password | Password til ovennævnte keystore. | Test1234 | client.org.id | Organisationsid i form af CVR-nummer. | 46837428 | client.org.name | Organisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i client.org.id | Statens Serum Institut |
| minLog.readActivity.text | Angiver den tekst der registreres i MinLog, når DDS'en henter et dokument et kald til On-Demand-webservicen | Opslag i Stamkort | Opslag i Det Fælles Stamkort | minlog.on.idcard.level3.enabled | Angiver, om FSK skal minlogge, når der kaldes med SOSI Idkort niveau 3 | true |
| sces.enable | Enable/disable SCES integration | true | true | sces.endpoint | Endpoint til CPR-Enkeltopslag | http://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4 |
| sces.connect.timeout.millis | Connect-timeout mod CPR-enkeltopslag (ms) | 2000 | 5000 | |||
| sces.read.timeout.millis | Read-timeout mod CPR-enkeltopslag (ms) | 7000 | 10000 | |||
| odr.enable | Enable/disable integration til organdonorregistret | true | true | odr.endpoint | Endpoint til organdonorregister | http://localhost:8080/odr/odr |
| odr.connect.timeout.millis | Connect-timeout mod organdonorregistret (ms) | 2000 | 5000 | |||
| odr.read.timeout.millis | Read-timeout mod organdonorregistret (ms) | 7000 | 10000 | |||
| ltr.enable | Enable/disable integration til livstestamenteregistret | true | true | ltr.endpoint | Endpoint til livstestamenteregister | http://localhost:8080/ltr-btr/ltr |
| ltr.connect.timeout.millis | Connect-timeout mod livstestamenteregistret (ms) | 2000 | 5000 | |||
| ltr.read.timeout.millis | Read-timeout mod livstestamenteregistret (ms) | 7000 | 10000 | |||
| btr.startdatetime | Tidspunkt for, hvornår FSK servicen begynder at foretage kald til behandlingstestamenteregisterservicen (såfremt integrationen er enabled). Dette angives som et dato/klokkeslæt i lokal tid på format yyyy-MM-dd HH:mm:ss. | 2019-01-01 00:00:00 | 2019-01-01 00:00:00 | |||
| btr.enable | Enable/disable integration til behandlingstestamenteregistret | true | true | |||
| btr.endpoint | Endpoint til behandlingstestamenteregister | http://localhost:8080/ltr-btr/btr | btr.connect.timeout.millis | Connect-timeout mod behandlingstestamenteregistret STS (ms) | 2000 | |
| 5000 | btrsts.read.timeout.millis | Read-timeout mod behandlingstestamenteregister STS (ms) | 7000 | 10000 | ||
| skr.enable | Enable/disable integration til stamkortregistret | true | true | skr.endpoint | Endpoint til stamkortregister | http://localhost:8080/skr/skr |
| skr.connect.timeout.millis | Connect-timeout mod stamkortregistret (ms) | 2000 | 5000 | |||
| skr.read.timeout.millis | Read-timeout mod stamkortregistret (ms) | 7000 | 10000 | syes.endpoint | Endpoint til Stamdata Yder EnkeltopslagsService | http://localhost:8080/syes/syes |
| syes.connect.timeout.millis | Connect-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 2000 | 5000 | |||
| syes.read.timeout.millis | Read-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 7000 | 10000 | dds.registry.endpoint.prefix | URL der benyttes som præfix for DDS registry endpoints, således at denne ikke behøver gentagelse for hvert registry endpoint (se fx dds.registryupdate.service.endpoint). Udpeger ikke DDS, men dens bagved liggende OpenText registry, som normalt ikke er åbent tilgængeligt som DDS | https://test1-cnsp.ekstern-test.nspop.dk:8443/registry/services | dds.registerondemand.service.endpoint | URL til dokumentdelingsservicens registrering af "on demand"-dokumenter | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistry | dds.registryupdate.service.endpoint | URL til OpenText registry's opdateringsservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties | ${dds.registry.endpoint.prefix}/xds-iti57 | dds.registrystoredquery.service.endpoint | URL til OpenText registry's søgeservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties | ${dds.registry.endpoint.prefix}/xds-iti18 | dds.repository.unique.id | FSK's "RepositoryUniqueId" som konfigureret i DDS. Er miljøafhængig på følgende måde: TEST1: 1.2.208.176.43210.8.10.12 | Se oversigt til venstre | dds.home.community.id | FSK's "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer. | 1.2.208.176.8.1.12 | dds.type.code | LOINC "type code" for FSKs dokumenter. Sættes til 52460-3 (LOINC "Patient Information", se evt. https://s.details.loinc.org/LOINC/52460-3.html?sections=Comprehensive) | 52460-3 |
| dds.connect.timeout.millis | Connect-timeout mod dokumentdelingsservicen (ms) | 2000 | 5000 | |||
| dds.read.timeout.millis | Read-timeout mod dokumentdelingsservicen (ms) | 7000 | 10000 | dgwsclient.pool.size | Antal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. | 50 | dgwsclient.timeout.millis | Timeout (ms) for tråde, der anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. Bør være større end de read-timeout-millis, der kan angives for de enkelte services. | 10000 |
| isProduction | Angiver om denne service er til test eller produktion | false | false | |||
| ignoreInvalidIdcardInTestMode | Angiver denne om DGWS certifikater afvises hvis de er udløbet. Denne property anvendes kun når isProduction er false | true | true | call.sces.status.30 | Fejl der returneres når CPR-nummeret har status 30 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.50 | Fejl der returneres når CPR-nummeret har status 50 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.60 | Fejl der returneres når CPR-nummeret har status 60 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.90 | Fejl der returneres når CPR-nummeret har status 90 | Det er ikke muligt at hente stamkortet, da borgeren er afgået ved døden for mere end 1 år siden |
log4j.xml
Konfigurerer logning for servicen.
Standardværdierne angiver nogle brugbare niveauer for anvendelse i produktion. Se Driftsvejledningen for uddybet beskrivelse af logning.
Se den officielle Log4j dokumentation for alternativ konfiguration.
minlogclient.properties
FSK anvender MinLogProvider til at registrere logninger i MinLog2, og i den forbindelse skal Kafka properties for Min Log 2 konfigureres.
...
Property
...
Beskrivelse
...
Kafka topic som anvendes i forbindelse med kald til MinLog2
| sts.keystore | Angiver hvilken keystore, ser anvendes til at trække systemidkort (til anvendelse ved DGWS kald til samarbejdende services). | NSP_Service_Consumer_sds.p12 | |
| sts.keystore.password | Password til ovennævnte keystore. | Test1234 | |
| sts.idcard.subject.id | Organisationsid i form af CVR-nummer. | 33257872 | |
| sts.idcard.subject.name | Organisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i sts.idcard.subject.id | Sundhedsdatastyrelsen | |
| sts.idcard.system.name | Systemnavn til indlejring i systemidkort | FSK | |
| dgwsclient.pool.size | Antal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. | 50 | |
| dgwsclient.timeout.millis | Timeout (ms) for tråde, der anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. Bør være større end de read-timeout-millis, der kan angives for de enkelte services. | 10000 | |
| sces.enable | Enable/disable SCES integration | true | true |
| sces.endpoint | Endpoint til CPR-Enkeltopslag | http://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4 | |
| sces.connect.timeout.millis | Connect-timeout mod CPR-enkeltopslag (ms) | 2000 | 5000 |
| sces.read.timeout.millis | Read-timeout mod CPR-enkeltopslag (ms) | 7000 | 10000 |
| odr.enable | Enable/disable integration til organdonorregistret | true | true |
| odr.endpoint | Endpoint til organdonorregister | http://localhost:8080/odr/odr | |
| odr.connect.timeout.millis | Connect-timeout mod organdonorregistret (ms) | 2000 | 5000 |
| odr.read.timeout.millis | Read-timeout mod organdonorregistret (ms) | 7000 | 10000 |
| ltr.enable | Enable/disable integration til livstestamenteregistret | true | true |
| ltr.endpoint | Endpoint til livstestamenteregister | http://localhost:8080/ltr-btr/ltr | |
| ltr.connect.timeout.millis | Connect-timeout mod livstestamenteregistret (ms) | 2000 | 5000 |
| ltr.read.timeout.millis | Read-timeout mod livstestamenteregistret (ms) | 7000 | 10000 |
| btr.startdatetime | Tidspunkt for, hvornår FSK servicen begynder at foretage kald til behandlingstestamenteregisterservicen (såfremt integrationen er enabled). Dette angives som et dato/klokkeslæt i lokal tid på format yyyy-MM-dd HH:mm:ss. | 2019-01-01 00:00:00 | 2019-01-01 00:00:00 |
| btr.enable | Enable/disable integration til behandlingstestamenteregistret | true | true |
| btr.endpoint | Endpoint til behandlingstestamenteregister | http://localhost:8080/ltr-btr/btr | |
| btr.connect.timeout.millis | Connect-timeout mod behandlingstestamenteregistret (ms) | 2000 | 5000 |
| btr.read.timeout.millis | Read-timeout mod behandlingstestamenteregister (ms) | 7000 | 10000 |
| skr.enable | Enable/disable integration til stamkortregistret | true | true |
| skr.endpoint | Endpoint til stamkortregister | http://localhost:8080/skr/skr | |
| skr.connect.timeout.millis | Connect-timeout mod stamkortregistret (ms) | 2000 | 5000 |
| skr.read.timeout.millis | Read-timeout mod stamkortregistret (ms) | 7000 | 10000 |
| syes.endpoint | Endpoint til Stamdata Yder EnkeltopslagsService | http://localhost:8080/syes/syes | |
| syes.connect.timeout.millis | Connect-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 2000 | 5000 |
| syes.read.timeout.millis | Read-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 7000 | 10000 |
| call.sces.status.30 | Fejl der returneres når CPR-nummeret har status 30 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
| call.sces.status.50 | Fejl der returneres når CPR-nummeret har status 50 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
| call.sces.status.60 | Fejl der returneres når CPR-nummeret har status 60 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
| call.sces.status.90 | Fejl der returneres når CPR-nummeret har status 90 | Det er ikke muligt at hente stamkortet, da borgeren er afgået ved døden for mere end 1 år siden | |
| deletion.fsk.batchsize | Angiver den maksimale antal cpr numre, som behandles per gang | ||
| desired.execution.duration | Angiver den maksimale udførelsestid for baggrundsjobbet. Angives som Duration i ISO-8601 formattet. | ||
| deletion.save.deceased | Angiver period på, hvor længe en person minimum skal være død for at blive slettet af slettet jobbet. Formatet er D for dage, M for måneder og Y for år. Nogle eksempler: 2Y er 2 år, 12M er 12 måneder og 60D er 60 dage. | ||
| personinformation.url | URL for PersonInformation service Eksempel: http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation | ||
| personinformation.errorcount.duration | Specificering af hvor lang tid tilbage der skal tælles fejl fra PersonInformation servicen (ifm. /health endpointet for slettejobbet). Angives som duration i ISO-8601 formattet. Default værdi er PT10M (10 minutter). | PT10M | |
| personinformation.error.tolerance | Antal fejl der tolereres fra PersonInformation servicen før /health endpointet for slettejobbet angiver servicen som ikke tilgængelig. Default værdi er 0. | 0 | |
| fsk.httpclient.pooling.totalconnections | Konfiguration af client pool til kald af samarbejdende services. Eksempel på værdi: 200 | ||
fsk.httpclient.pooling.maxconnections.pr.route | Konfiguration af client pool til kald af samarbejdende services. Eksempel på værdi: 20 |
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 dokumentation for alternativ konfiguration.
log4j-nspslalog.properties
...
Konfiguration af datasources
fsk-service komponenten komponenten kræver adgang til 2 JNDI datasources. Disse en JNDI datasource mod FSKs databse. Denne skal opsættes i Wildfly og refereres til i servicens application.properties.
...
Filnavn når deployet | Beskrivelse | Kilde |
|---|---|---|
fsk-service.war | FSK servicen | fsk-service-<version>.war |
fsk-operations.war | Oprydningsjobs til FSK (kaldes af driften efter behov) | fsk-operations-<version>.war |
Se driftsvejledningen for yderligere information.
...