Page History
| Navitabs | ||||||
|---|---|---|---|---|---|---|
| ||||||
Indledning
Dette dokument beskriver installation og konfiguration af yder KIDS indlæseren.
Yder KIDS indlæseren består af komponenten yderindlaeserkidsindlaeser.war, 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:
- stamdataindlaeser (Maven identifier:dk.nsi.sdm.stamdataindlaeser:stamdataindlaeser)
For at bygge disse interne artefakter, henvises der til artefakternes dokumentation.
Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe.
Byggevejledning
For at bygge projektet og dets deployables (war-filen) uden at køre unit-tests og integrationstests, anvendes følgende Maven kommando:
mvn clean install -DskipTestsProjektets deployables ender i target-mappen under de respektive moduler.
Afvikling af unit-tests
Unit-testene i projektet kan afvikles med følgende Maven-kommando:
mvn clean testAlternativt kan også samtidigt bygge projektet ved at anvende Maven-kommandoen:
mvn clean installNår unittests afvikles startes en database og SFTP server op vha. TestContainers. Relevante databaseobjekter oprettes automatisk i den forbindelse.
Afvikling af integrationstests
Se testvejledningen.
Krav til miljø
Komponenten er tilpasset at kunne indgå i det aktuelt gældende CI-miljø på NSP. Det tager aktuelt udgangspunkt i version 1 af NSP's platform Docker image.
Krav til database
Servicen er testet mod MariaDB version 10.4, som bliver brugt på NSP platformen.
Krav til hardware
Der stilles ikke nogle særlige minimumskrav til hardware, men man skal forvente at bruge high-end hardware (både cpu, ram, netkort og diske) for at kunne opfylde de gældende svartidskrav på NSP.
Oprettelse af databaser og tabeller
Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.
Tilgang til database
Yder Antigentest indlæseren kræver en enkelt database hvor de indlæste data kan persisterestil at gemme forskellige stamdata under indlæsningen.
Servicen konfigureres med 1 datasource, som tilgår databaserne vha. root brugeren.
Oprettelse af database og tabeller
Datamodellen styres vha. de SQL-scripts, der findes under src/main/resources/db/migration.
Scriptene er udformet til at blive kørt med databasemigreringsværktøjet Flyway. Scriptene er designet til at kunne blive brugt i både test- og produktions-miljø.
Ved initial installation af servicen vil Flyway håndtere at køre scriptene i den korrekte rækkefølge.
KIDS indlæseren vil ikke oprette de krævede tabeller, men forventer at de eksisterer i den datasource som indlæseren er konfigureret til at anvende.
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet.
Konfiguration
Herunder beskrives de properties der findes i yderindlaeserikidsindlaeser-komponentens konfigurationsfiler.
yder.properties
| Property |
|---|
| Betydning | Default værdi |
|---|---|
datasource.jndi |
| Det JNDI navn som indlæseren vil anvende til dens datakilde | java:jboss/datasources/ |
failIfNotRunInNumberOfDays
Hvis der ikke er blevet indlæst data i det antal dage der står i denne property, så melder servicen en statusfejl.
allowableDifferencePercentage
Angiver det Camel udtryk der henter input-filerne fra SFTP serveren.
De filer der hentes lægges i en intern folder i Docker containeren. Den interne folder der hentes til er /tmp/yder/input
For at have adgang til de hentede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren.
ekstern_camelUrl
Denne konfiguration er udelukkende til brug for Yderindlæseren og er således ikke en generisk funktionalitet i indlæser reference arkitekturen
Data fra den indlæste fil bliver indlæst i en database. Det er muligt at få indholdet af den indlæste fil leveret til en ekstern SFTP-server, og dette Camel udtryk angiver hvordan filen skal leveres.
Hvis ekstern_camelUrl ikke har en værdi, vil der ikke blive foretaget en ekstern levering.
Angiver den ønskede backuptype
- RawBackup - der foretages en backup af den rå fil. Hvis den modtagne fil har navnet xxx.yyy vil backup filen få navnet xxx-<exchangeId>.yyy hvor <exchangeId> er et UUID som vil matche log- og database registreringer for behandlingen af filen. Backup filen placeres i backupFolder.
- ZipBackup - der foretages et zip backup af den modtagne fil. Hvis den modtagne fil har navnet xxx.yyy vil backup filen få navnet xxx-<exchangeId>.zip hvor <exchangeId> er et UUID som vil matche log- og database registreringer for behandlingen af filen. Backup filen placeres i backupFolder.
- NoBackup - der foretages ikke noget backup af den modtagne fil
Angiver placering af backup fil. Dette skal være en folder internt i den Docker container der kører Yderindlæseren.
For at have adgang til de backup'ede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren.
/tmp/yder/input/.doneDenne figur viser hvor de properties der styrer Yderindlæserens opførsel har indflydelse.
...
file:/tmp/yder/input?readLock=fileLock&antInclude=*.xml&delete=true&sortBy=file:name
...
De to Camel udtryk er meget lange så defaultværdierne står her:
| Note |
|---|
De angivne passwords herunder er udelukkende til illustration og de er ikke gyldige passwords |
...
kids | ||
input_camelUrl | Den URL der fortæller indlæseren hvorfra CSV filer skal hentes | 1) |
output_wsUrl | Den URL der peger på NAS2 Notificationbroker | 2) |
notification_topic | Det topic som der notificeres på | http://sundhedsdatastyrelsen.dk/kidsmirror/2021/04/28:Covid19TestResults |
batchSize | Batch størrelsen for bundling af testresultater inden de sendes til Notificationbroker | 100 |
persist_testresult | Angivelse af om indlæseren skal skrive testresultater til databasen | false |
processing_delay_when_error | Tid i ms som der ventes efter der er optrådt en fejl i processering - f.eks. hvis NSP NAS eller databasen ikke svarer, vil CSV filen blive gen-behandlet efter denne ventetid. | 10000 |
1) Denne værdi er angivet som default, men den skal erstattes med værdier der giver mening i det pågældende miljø
sftp:foo@kidssftp:22/kids?password=pass&readLock=rename&antInclude=*....
dsv&delete=true&disconnect=true&stepwise=false&initialDelay=5s&delay=5s&knownHostsFile=/pack/...
wildfly/modules/dk/nsi/sdm/...
kids/known_hosts...
2) Denne værdi er angivet som default, men den skal erstattes med værdier der giver mening i det pågældende mijkø
https://localhost/nas2/notificationbroker