Dette dokument beskriver installation og konfiguration af CprIndlæseren.
CprIndlæseren består af komponenten cprindlaeser.war, der skal konfigureres og deployes på en applikationsserver.
Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle unit-tests.
Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe.
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 -DskipTests
Projektets deployables ender i target-mappen under de respektive moduler.
Unit-testene i projektet kan afvikles med følgende Maven-kommando:
mvn clean test
Alternativt kan også samtidigt bygge projektet ved at anvende Maven-kommandoen:
mvn clean install
Når unittests afvikles startes en database og SFTP server op vha. TestContainers. Relevante databaseobjekter oprettes automatisk i den forbindelse.
Se testvejledningen.
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.
Servicen er testet mod MariaDB version 10.4, som bliver brugt på NSP platformen.
Servicen router events gennem Kafka og skal derfor have adgang til en Kafkaserver.
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.
Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.
CprIndlæseren kræver en enkelt database hvor de indlæste data kan persisteres.
Servicen konfigureres med 1 datasource, som tilgår databaserne vha. root brugeren.
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 Liquibase. Scriptene er designet til at kunne blive brugt i både test- og produktions-miljø.
Ved initial behandling af en fil vil Liquibase håndtere at køre scriptene i den korrekte rækkefølge.
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.
Herunder beskrives de properties der findes i cprindlaeser-komponentens konfigurationsfiler.
Vær opmærksom på at hvis bare én idcard-property ikke er sat, bliver de andre ikke brugt, og DGWS-headers bliver ikke anvendt i requests til NAS.
Property | Beskrivelse | Default |
---|---|---|
datasource.jndi | Angiver navnet på den datasource der er konfigureret på Wildfly'en. | java:jboss/datasources/cpr |
failIfNotRunInNumberOfDays | Hvis der ikke er blevet indlæst data i det antal dage der står i denne property, så melder servicen en statusfejl. | 2 |
cprFilePatternPerson | Input filerne ved fuldt import skal overholde dette pattern | D.{6}\\.L4311.* |
cprFilePatternPersonDelta | Input filerne ved delta import skal overholde dette pattern | D.*\\.L431101 |
batchSize | Data persisteres i databasen i batches og størrelsen på disse angives i denne property. | 100 |
batchTimeout | Angiver tiden i millisekunder for hvornår en Camel aggregering har været inaktiv - og dermed er færdig. | 500 |
input_camelUrl | Angiver det Camel udtryk hvor input-filerne kan hentes. | *) |
notification.broker.endpoint | Angiver det endpoint, som Cprindlæseren skal kalde NAS notification service på. | http://test1.ekstern-test.nspop.dk:8080/nas2/notificationbroker/service |
nas.topic | Angiver det Topic, som skal anvendes, når der sendes notifications til NAS. | TESTNAS-TOPIC1 |
kafka.host | Angiver endpointet til den Kafkaserver, som Cprindlæseren skal route events igennem. | kafkaservice:9092 |
kafka.topic | Angiver det Kafka Topic, som knyttes til events, når de routes gennem Kafkaserveren. | testtopic |
idcard.sts.endpoint | Endpoint til STS NewSecurityTokenService | |
idcard.cvr | CVR-nummer knyttet til ID-kortet. | |
idcard.name | Organisationsnavn. | |
idcard.keystore.path | Sti til java key store-fil. | |
idcard.keystore.password | Password til keystore. | |
idcard.systemName | Navn på systemet. |
Camel udtrykket er meget langt så defaultværdien står her:
De angivne passwords herunder er udelukkende til illustration og de er ikke gyldige passwords |
*) sftp:foo@HOST:PORT/praksys?password=pass&readLock=changed&readLockCheckInterval=10000&antInclude=*&delete=true&disconnect=true&stepwise=false&initialDelay=5s&delay=5s&useUserKnownHostsFile=false
Se placering af filer beskrevet i driftsvejledningen.