Page History
...
For at starte reverse proxyen, hentes NAP Compose fra SVN, hvorefter docker-compose filen ligger i httpd mappen, som startes med "docker-compose up".
Ved hhv nap-admin-web, nap-lobby-web og nap-test-web, bliver ./src folderen og konfigurationsfiler fra compose/configuration "volume-mappet", hvilket betyder, at ændringer i kildekoden bliver kompileret og deployet med det samme.
...
- rette versions-nummeret i packagespackage.json
- køre npm install
- kopiere trunk til tags-mappen, fx
svn cp -m "
<fantastisk commit-kommentar>" https://svn.nspop.dk/svn/components/nap/nap-administration/trunk https://svn.nspop.dk/svn/components/nap/nap-administration/tags/release-1.0.0rc8
nap-
...
lobby-web
Indeholder et angular angular projekt, der har til formål at vise og håndtere alle tilgængelig projekter. projekter som det givne LPS system har rettigheder til. Projektet bruger standard strukturen for et Angular projekt, dvs. alt koden ligger inde i src/ mappen.
Nap-adminlobby-web gør brug af nap-administration backenden, til at vise projekterne. hente de projekter der er til rådighed.
Funktionalitet
Projektet har to tre faner "Projekter", hhv "ProjekterAdministrer" og "Hjælphjælp".
Projekter viser alle projekter. de projekter, som der er rettigheder til. Hvert projekt har titel, samt et versions nummer. Hvert projekt kan foldes ud ved at trykke på "mere", som så viser den tilknyttet web-app. Web-app'en viser titel, beskrivelse, version, udgivelses dato, url den ligger på, samt hvilke versioner af event kataloget den understøtter.
Administrer viser alle projekterne og giver mulighed for at oprette nye eller redigere i eksisterende projekter.
Hjælp beskriver, hvad applikations formål, samt Hjælp giver et link til at oprette en support sag.
...
For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/development mappen.
Standalone (I browser)
Da nap-lobby-web bruger nap-administration som backend til at vise projekterne skal denne service startes først. Se nap-administration.
Forudsat at nap-administration er startet som standalone og nap-compose er opsat som i Applikationen kan derefter bruges på http://localhost:8080/nap/admin/web/, hvis nap-compose reverse proxy er opsat som beskrevet i 1.3.1 - Udvikling , ellers på kan applikationen kan nu nåes på http://Localhostlocalhost:4500.8080/lobby.
Når du bliver redirected til en login skal bruger navnet Lars blot indtastes
SBO (gennem nap-java-host)
nap-admin-web bruger nap-administration som backend til at vise projekterne. nap-administration skal derfor startes som beskrevet i 5 - Ønskes Lobbyen teste i gennem nap-java-host skal nap-adminstration startes med sikker-browser-opstart konfiguration. Se i nap-administration.
Hvis man ikke vil gøre brug af rigtige data, kan den "mockes" væk, således der vises dummy projekter. Dette kunne være for at se, hvordan det vil se ud hvis der var mange projekter tilføjet. Dette kan gøres ved at køre "npm run start:mock" hvis det køres lokalt, ellers kan der i compose/development ændres i docker-compose.yml "Command" parameter, hvor der tilføjes "--configuration=mock"
...
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Byg
NapLobbyWeb-build - bygger nap-lobby-web
NapAdmin-build - bygger nap-admin. I denne pibeline kan det vælges at bygge nap-lobby-web, hvis dette ønskes inkluderet.
NapAdmin- push snapshot - bygger nap-lobby-web og lægger bygget ind i roden af nap-admin samt pusher til NSP's docker registry.
Byg
Kør "npm run build" for at bygge projektet. Dette Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.
...
Kør "npm run lint" for linting, output output kommer i konsollen.
Test
Kør "npm run test" for at afvikle unit tests - output vil ligge I coverage/ mappen.
...
For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.
nap-
...
test-web
Indeholder et angular angular projekt, der har til formål at vise projekter som det givne LPS system har rettigheder til. Projektet bruger standard strukturen for et Angular projekt, dvs. alt koden ligger inde i src/ mappen. Nap-lobby-web gør brug af nap-administration backenden, til at hente de projekter der er til rådighedvære test-platform for værtssystemsudvikler.
Funktionalitet
Projektet har to faner, hhv "Projekter" og "hjælp".
Projekter viser alle de projekter, som der er rettigheder til. Hvert projekt har titel, samt et versions nummer. Hvert projekt kan foldes ud ved at trykke på "mere", som så viser den tilknyttet web-app. Web-app'en viser titel, beskrivelse, version, udgivelses dato, url den ligger på, samt hvilke versioner af event kataloget den understøtter.
Hjælp beskriver hvad applikation omhandler, samt et link til at oprette en support sag.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at køre "npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/"
Udviklingserver
til hensigt at teste der kan sendes og modtages beskender igennem NAP sdk'erne.
Den implementere det fulde eventkatalog fra NAP SDK - Guide til anvendere.
Der er separate tests cases, som kan køres enkeltvis eller samlet.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at køre "npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/"
Udviklingserver
For at starte en web pack dev server i docker køres "docker-compose For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/development mappen.
Applikationen kan Applikationen kan nu nåes http://localhost:8080/nap/lobbytest/web/, hvis nap-compose reverse proxy er opsat som i 1.3.1 - Udvikling, ellers på http://localhost:4200.
nap-lobby-web bruger nap-administration som backend til at vise projekterne. nap-administration skal derfor startes som beskrevet i 5 - nap-administration.
Hvis man ikke vil gøre brug af rigtige data, kan den "mockes" væk, således der vises dummy projekter. Dette kunne være for at se, hvordan det vil se ud hvis der var mange projekter tilføjet. Dette kan gøres ved at køre "npm run start:mock" hvis det køres lokalt, ellers kan der i compose/development ændres i docker-compose.yml "Command" parameter, hvor der tilføjes "--configuration=mock"
CI
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Byg
Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.
Linting
Kør "npm run lint" for linting, output kommer i konsollen
Test
Kør "npm run test" for at afvikle unit tests - output vil ligge I coverage/ mappen.
Dokumentation
For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.
nap-test-web
Indeholder et angular projekt, der har til formål at være test-platform for værtssystemsudvikler.
Funktionalitet
Projektet har til hensigt at teste der kan sendes og modtages beskender igennem NAP sdk'erne.
Der er separate tests cases, som kan køres enkeltvis eller samlet.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at køre "npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/"
Udviklingserver
beskrevet tidligere.
CI
Jenkins filen beskriver jenkins pipelinen.
NapTestWeb - build - bygger nap-test-web
NapTestWeb - push release candidate - pusher en release kandidat til NSP's docker registry
NapTestWeb - push snapshot - pusher en snapshot til NSP's docker registry
NapTestWeb - push release - pusher et release til NSP's docker registry
Byg
Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.
Linting
Kør "npm run lint" for linting.
Dokumentation
For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.
nap-administration
nap-administration fungerer som den administrative service for NAP projekter og webapplikationer.
Funktionalitet
nap-administration indeholder 3 REST services for projekter, webapplikationer og session.
Desuden håndteres i denne app de enkelte vært-/ LPSsystemers projektrettigheder.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at "mvn install".
Udviklingserver
Nap-administration kan startes med mulighed for login via SBO eller standalone.
Understøttelse af SBO igennem nap-java-host
Default opsætning er, at der logges ind via nap-java-host. Derfor skal en wildfly server til udvikling herigennem køres "docker-compose For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/development mappen.
Applikationen kan nu nåes Applikationen kan nu nåes internt i docker på netværket nap_net på http://localhostnapadmin:8080 eller på http:/nap/test/web/, localhost:8080/lobby hvis nap-compose reverse proxy er opsat som beskrevet tidligere, ellers på http://Localhost:4500.
CI
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Byg
Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.
Linting
Kør "npm run lint" for linting.
Dokumentation
For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.
nap-administration
nap-administration fungerer som den administrative service for NAP projekter og webapplikationer.
Funktionalitet
nap-administration indeholder 2 REST services for projekter og webapplikationer og håndterer de enkelte vært-/ LPSsystemers projektrettigheder.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at "mvn install".
Udviklingserver
For at starte en wildfly server til udvikling køres "docker-compose build && docker-compose up" fra compose/development mappen.
Applikationen kan nu nåes internt i docker på netværket nap_net på http://napadmin:8080/, og http://localhost:8080/nap/admin/services/main, hvis nap-compose reverse proxy er opsat som i 1.3.1 - Udvikling.
CI
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Test
Opstart af login via fake iDP
For at understøtte login via fake iDP skal oiosaml konfigurationen for localhost-standalone volumemappes.
Dette gøres ved at indkommentere denne konfiguration i development/docker-compose.yml og samtidig udkommentere linjen ovenfor for SBO.
Derefter kan en wildfly server til udvikling herigennem køres "docker-compose build && docker-compose up" fra compose/development mappen.
CI
Jenkins filen beskriver jenkins pipelinen.
Nap-administration bygges på NSP's Jenkins server via følgende jobs.
NapLobbyWeb-build - bygger nap-lobby-web
NapAdmin-build - bygger nap-admin. I denne pibeline kan det vælges at bygge nap-lobby-web, hvis dette ønskes inkluderet.
NapAdmin- push snapshot - bygger nap-lobby-web og lægger bygget ind i roden af nap-admin samt pusher til NSP's docker registry.
NapAdmin - push release - laver et release af nap-admin og pusher til NSP's docker registry.
Test
JUnit anvendes til implementering af unit tests. Der er løbende gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.
Dokumentation
For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.
...
Alt konfiguration foregår ved at loade filer fra wildfly modulet dk.sds.nsp.nap.reference.facade.administration
De følgende konfigurationsfiler skal således volume mappes ind i modulet "dk/sds/nsp/nap/admin/main/" på applikations serveren (/pack/wildfly8/modules/ i docker).
Konfigurationsfiler | |
---|---|
Filnavn | Indhold |
nap-adminlobby-compose-ds.xml | Datasource beskrivelse. <datasources xmlns="http://www.jboss.org/ironjacamar/schema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema https://docs.jboss.org/ironjacamar/schema/ironjacamar_1_0.xsd"> <datasource jndi-name="java:jboss/datasources/admin" pool-name="MariaDBDS"> <connection-url>jdbc:mysql://napadmindb:3306/administration?autoReconnect=true</connection-url> <driver>mysql</driver> <pool> <max-pool-size>30</max-pool-size> <min-pool-size>5</min-pool-size> </pool> <security> <user-name>root</user-name> <password>pw</password> </security> <validation> <check-valid-connection-sql>select 1</check-valid-connection-sql> <validate-on-match>false</validate-on-match> <background-validation>true</background-validation> <background-validation-millis>10000</background-validation-millis> </validation> <timeout> <idle-timeout-minutes>10</idle-timeout-minutes> </timeout> </datasource> </datasources> |
log4j-napadmin.xml | log4j konfiguration |
nap.jks | JKS fil indeholdende NAP certifikat til audience /nap | nap-admin.properties | # Path to the service provider certificate
trusted-sts-certs.jks | JKS fil med certifikater fra STS providers. |
Disse filer bliver loadet ind på classpath wildfly når applikationen deployes.
Ved konfigurationsændringer skal wildfly serveren genstartes.
Persistence
Persitence.xml placeret i meta-inf definerer hibernate konfigurationen. Hvis der tilføjes nye tables, skal denne opdateres
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="NapAdminPersistence" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>java:jboss/datasources/admin</non-jta-data-source>
<class>dk.sds.nsp.nap.admin.entities.ProjectQuery</class>
<class>dk.sds.nsp.nap.admin.entities.Project</class>
<class>dk.sds.nsp.nap.admin.entities.WebApp</class>
<class>dk.sds.nsp.nap.admin.entities.Manifest</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.connection.provider_disables_autocommit" value="true"/>
<property name="hibernate.connection.release_mode" value="after_transaction" />
<property name="hibernate.transaction.auto_close_session" value="true" />
<property name="hibernate.current_session_context_class" value="thread" />
</properties>
</persistence-unit>
</persistence>
Database
Datamodellen kan ses her i Data.
nap-host-java
nap-host-java er en tyk java klient. Den fungerer som et eksempel på et værtssystem, egnet som test-platform for gæstesystemudviklere, samt som et implementations eksempel for værtsystems- / LPSudviklere
Funktionalitet
For beskrivelse af funktionaliteten i nap-host-java, findes der mere information beskrevet i Guide til anvendere
For at nap-host-java kan vise projekterne, er det vigtigt at nap-lobby-web er sat op til at køre som beskrevet i 3. Nap Lobby Web.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at "mvn install".
Udviklingserver
For at starte applikationen køres main fra Launcher klassen.
CI
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Test
JUnit anvendes til implementering af unit tests. Der er løbende gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.
Konfiguration
Nap-host-java konfigureres i nap-java-host.properties som pakkes med i classpath.
...
Vigtigt med jndi navn "java:jboss/datasources/nap-lobby-facade" da dette skal matche konfiguration i persistence.xml | |
log4j-napadmin.xml | Log4j opsætninger der følger gængs standard på NSP. |
Disse filer bliver loadet ind på classpath wildfly når applikationen deployes.
Ved konfigurationsændringer skal wildfly serveren genstartes.
Konfiguration af oiosaml sker i filerne "compose/configuration/oiosaml".
Der findes en konfiguration til localhost-sbo/ localhost-standalone/ localhost-test1-sbo / localhost-test2-standalone / test1 (test1 miljøet) / test2 (test2 miljøet).
De forskellige konfigurationer adskiller sig primært for singleLogoutService i SPMetadata og iDpMetadata samt og service provider url i oiosaml-sp.properties.
Oiosaml konfigurationerne skal ligeledes være tilgængelig i oiosaml.home under deployment (oiosaml.home sættes med JAVA_OPTS i compose filerne og er sat til /pack/oiosaml).
Konfigurationsfiler | |
---|---|
oiosaml-sp.log4j.xml | lndeholder Log4j opsætninger der følger gængs standard på NSP. |
oiosaml-sp.properties | # Properties used by oiosaml-j oiosaml-sp.certificate.location=
|
funktionscertifikat | JKS fil indeholdende Sundhedsdatastyrelsen reference funktionscertifikat certifikat. Skal være samme navn som oiosaml-sp.certificate.location i oiosaml-sp.properties |
metadata/idP/IdPMetadata.xml | OIOSAML identity provider metadata til konfiguration af OIOSAML filteret |
metadata/SP/SPMetadata.xml | OIOSAML service provider metadata til konfiguration af OIOSAML filteret |
Persistence
Persitence.xml placeret i meta-inf definerer hibernate konfigurationen. Hvis der tilføjes nye tables, skal denne opdateres
Database
Datamodellen kan ses her i Data.
nap-host-java
nap-host-java er en tyk java klient. Den fungerer som et eksempel på et værtssystem, egnet som test-platform for gæstesystemudviklere, samt som et implementations eksempel for værtsystems- / LPSudviklere
Funktionalitet
For beskrivelse af funktionaliteten i nap-host-java, findes der mere information beskrevet i Guide til anvendere
For at nap-host-java kan vise projekterne, er det vigtigt at nap-lobby-web er sat op til at køre som beskrevet i 3. Nap Lobby Web.
Udviklingsmiljø
Installer afhængigheder
Installer dependencies ved at "mvn install".
Udviklingserver
For at starte applikationen køres main fra Launcher klassen.
CI
Jenkins filen beskriver jenkins pipelinen.
Der kan laves snapshots og release-candidates fra jenkins.
Test
JUnit anvendes til implementering af unit tests. Der er løbende gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.
Konfiguration
Nap-host-java konfigureres i nap-java-host.properties som pakkes med i classpath.