Page History
...
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)
- dgws_idws_proxy (Maven identifier: dk.sds.dgws-idws-proxy:wsproxy-api)
...
For at afvikle projektets unit-tests, skal en MariaDB-database-server være tilgængelig.
I udviklingssammenhæng kan man oprette er det lettest at køre MariaDB i en docker-container. Man kan starte MariaDB og automatisk få oprettet de nødvendige database-schemas vha. nedenstående kommando:
cd compose/development
docker-compose up skrdb
scriptet compose/database/db/create_db.sql. I application.properties-filen i projektet er datasources som default sat til at anvende root-user med tomt password. Database-strukturen bliver automatisk oprettet vha. Flyway SQL-scripter, når unit-testene afvikles.
Unit-testene i projektet kan afvikles med følgende Maven-kommando:
...
Servicen kræver en enkelt database til dens egen data. Derudover afhænger den af adgang til et view i en (replikeret) stamdata-database.
Servicen konfigureres med 2 datasources, som tilgår databaserne vha. separat specificerede brugere.
Databasebrugeren, der tilgår servicens database, skal være tildelt følgende rettigheder:
- Ved normal drift i produktion: SELECT, INSERT, UPDATE, DELETE
- Yderligere nødvendige rettigheder ved databaseoprettelse og migreringer: CREATE, DROP, ALTER
Databasebrugeren, der tilgår stamdata-view'et, skal være tildelt følgende rettigheder:
- Ved normal drift i produktion: SELECT
- Yderligere nødvendige rettigheder ved databaseoprettelse og migreringer: CREATE VIEW, DROP
Oprettelse af database og tabeller
Datamodellen styres vha. inkrementelle SQL-scripterscripts, der kan findes under compose/database/db/migration.
| Info |
|---|
Scripterne er udformet til at blive kørt med databasemigreringsværktøjet Flyway, men dette er kun aktiveret under afvikling af unit-tests, da dette ikke ønskes anvendt i produktion. |
I produktion anvendes scripterne manuelt og skal køres på databasen i inkrementel rækkefølge baseret på versionsnummeret i filnavnet (først V100-__(...).sql, dernæst 01-V2__(...).sql, osv.). Hvert script må aldrig køres mere end én gang; der . Der gælder dog en undtagelse for ikke-versionerede scripterscriptes, hvis filnavne begynder filnavne indeholder 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
- 01-V1__createdb.sql
- 02-V2__languagecodes.sql
- 03-V3__patientlock.sql
- 04-V4__healthprovider.sql
- 05-V5__increase_versiondescription_column_size.sql
- 06-V6__create_Properties.sql
| Info |
|---|
Under afvikling af unit-tests bliver test-data automatisk indsat i tabellerne vha. yderligere SQL-scripter scripts i compose/database/db/test. |
| Info |
|---|
Scriptet 08-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. |
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
...
| Property | Beskrivelse | Default |
|---|---|---|
| spring.active.profiles | Aktiv profil i Spring Boot. Skal ikke ændres. Anvendes til at styre forskellige databasekonfigurationer ved henholdsvis unit-tests og deployment. | production |
| spring.application.name | Navnet på applikationen. Skal ikke ændres. | skr |
| spring.jmx.enabled | Disable Spring Boot JMX. Skal ikke ændres. Deaktiveret da vi ikke udstiller særlig JMX funktionalitet. | false |
| spring.jta.enabled | 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) | false |
| management.server.port | Port som Spring Boot management endpoints bind'er på. Endpoints deaktiveres ved at sættes værdien til -1. | -1 | spring.datasource
Komponentspecifikke-properties
| Property | Beskrivelse | Default |
|---|---|---|
| datasource.skr.jndi-name | Angiver navnet på |
| en JNDI datasource til Stamkortregister-databasen | java:jboss/datasources/SKR-DS |
Komponentspecifikke-properties
| datasource.stamdata.jndi-name | Angiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-database | java:jboss/datasources/STM-DS |
| Property | Beskrivelse | Default |
|---|---|---|
| dcc.endpoint | 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/fsk/services/fsk |
| minlog.read-activity-text | Angiver den tekst der registreres i MinLog, når der bliver læst Stamkortregister-data for et CPR-nummer | Opslag i Stamkort |
| minlog.write-activity-text | Angiver den tekst der registreres i MinLog, når der bliver læst Stamkortregister-data for et CPR-nummer | Opdatering af Stamkortregister |
| schemavalidation.validate-requests | Angiver om requests skal schema-valideres (true/false) | true |
| schemavalidation.validate-responses | Angiver om responses skal schema-valideres (true/false) | true |
| schemavalidation.fail-on-response-error | Angiver om en kald skal returnere fejl, hvis response ikke er schema-valid (true/false) | true |
| forward-only-filter.enabled | Angiver om servicen kun skal kunne tilgås igennem DGWS/IDWS Proxyen (wsproxy komponenten). Bør altid være sat til true. (true/false) | true |
| whitelist.careproviderid | Angiver en komma-separeret liste af whitelistede CVR-numre fra medcom:CareProviderID-attributten fra en DGWS header. Denne whitelisting medfører, at anvenderen kan redigere data ud fra et DGWS niveau 3 kald. Standard-værdien er Sundhed.dk's CVR-nummer. | 31908574 |
| jobs.delete.cpr-max-results | Slettejob: Angiver maksimum antal rækker med opdateringer i cpr-registry der skal læses ad gangen | 25 |
| jobs.delete.cpr-max-loops | Slettejob: Angiver maksimum antal batches der skal behandles pr. jobeksekvering | 2 |
log4j2.xml
Konfigurerer logning for servicen.
...