Indledning

Dette dokument beskriver installation og konfiguration af Sikrede Indlæser. 

Installation

Sikrede Indlæser anvender NSP's Continuous Integration og Continuous Deployment miljøer til byg og leverance af komponenten.

Jenkins

Sikrede Indlæser bygges med NSP's Jenkins server via følgende jobs:

NSP Leverandøren er selv ansvarlige for at pushe release versioner af Sikrede Indlæser til NSP Docker Registry gennem Jenkins. (TBD: også med git?)

Docker

Sikrede Indlæser består af følgende Docker image som pushes til NSP Docker Registry:

registry.nspop.dk/components/sikr

Docker Compose

Sikrede Indlæser leveres samtidig som et sæt af Docker Compose filer i folderen compose.

En leverance af Sikrede Indlæser består af en compose folder som beskrevet ovenfor samt tilhørende tags af det byggede Docker image.

Compose folderen indeholder 5 underfoldere:

configurationHer ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø.
developmentHer ligger en Docker Compose fil til brug for udvikling. Se Guide til Udviklere.
testHer ligger en Docker Compose fil der kan starte Sikrede Indlæser i en standalone test konfiguration.
releaseHer ligger den Docker Compose fil som det forventes driften anvender på både test og produktionsmiljøerne.


Krav til miljø

Krav til applikationsservere

Komponenterne er udviklet og testet i Docker ved anvendelse af seneste version af NSP base image (se Dockerfile)

Komponenternes konfiguration er således tilpasset deployering på WildFly 21 applikationsservere med OpenJDK 8.

Krav til operativsystem

Der stilles ingen krav til operativsystemet udover, at det skal være Linux, og Docker skal være installeret.

Krav til adgang til andre services

Sikrede Indlæser anvender:

Sikrede Indlæser kræver, at der er opsat korrekt adgang til de listede services for at kunne fungere korrekt.

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

Sikrede Indlæser kræver en enkelt database hvor de indlæste data kan persisteres.

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 compose/configuration/database/ddl/.

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 installation af servicen vil Liquibase håndtere at køre scriptene i den korrekte rækkefølge (som angivet i liquibase-changelog-master.xml).

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 Sikrede Indlæsers konfigurationsfiler.

sikr.properties

sikr.app.name

Kortnavnet på Sikrede Indlæser

SIKR
input.folder

Den interne folder, hvor data, der hentes fra kilden placeres til processering af Sikrede Indlæser

/tmp/sikrede/input
backup.folder

Angiver placering af backup fil. Dette skal være en folder internt i den Docker container der kører Sikrede indlæ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/sikrede/input/.done

datasource.sikr.jndi.name

Angiver navnet på den datasource der er konfigureret på Wildfly'en.

java:/SIKRDS

ekstern_camelUrl

Denne konfiguration er udelukkende til brug for Sikrede Indlæser 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.

**)
input_camelUrl

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/sikrede/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. 

*)

Denne figur viser hvor de properties der styrer Sikrede indlæserens opførsel har indflydelse.

TBD: samme figur som yder


De to Camel udtryk er meget lange så defaultværdierne står her:

De angivne passwords herunder er udelukkende til illustration og de er ikke gyldige passwords

*) sftp:foo@sikredesftp:22/praksys?password=pass&readLock=rename&antInclude=*.txt&delete=true&disconnect=true&stepwise=false&initialDelay=5s&delay=5s&knownHostsFile=/pack/wildfly/modules/nsp/sikr/known_hosts

**) sftp:bar@sikredesftp:22/ekstern?password=pass&tempFileName=${file:name.noext}.tmp&knownHostsFile=/pack/wildfly/modules/nsp/sikr/known_hosts

Alle filer skal tilrettes til de forskellige miljøer som Sikrede Indlæser installeres på. Filerne indeholder en konfiguration der passer til Sikrede Indlæser i en standalone test konfiguration.