Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Kom i gang med NAP som projektudvikler

I følgende beskrives opsætningstrinene for at komme i gang med NAP platformen, hvis Hvis man vil oprette et nyt projekt som skal ind i NAP'en

Denne guide er til opsætning af et lokalt miljø. 

Krav til software:

Docker (Docker Engine version 18.02.0+) skal være installeret, da opsætningen foregår via docker-compose.

For at alle komponenterne skal virke, skal nap-compose køre som en reverse proxy.

Et docker netværk kaldet nap_net skal laves "docker network create nap_net".

Nedenstående komponenter skal hentes fra https://svn.nspop.dk/svn/components/nap/.

Nap-host-java

Start med at hente nap-host-java I den executable der skal bruges.

Windows

Mac OS X

Linux

er de overordnede trin:

  1. Hent NapJavaHost
  2. Udvikling af dit projekt
  3. Publicering af dit projekt på test miljøerne

I følgende beskrives opsætningstrinene for at komme i gang med NAP platformen mere detaljeret

Nap-host-java

Start med at hente nap-host-java I den executable der skal bruges.

Windows

Mac OS X

Linux

Når nap-host-java åbnes, vil der blive præsenteret en Når nap-host-java åbnes, vil der blive præsenteret en login dialog.  

Login ved at trykke på localhost test1 og bruge default login credentials. Dette vil trække en SAMLAssertion fra STS på test1, som kan bruges i 30 min. Når der er brugt et gyldigt login, vil man se et eksempel på et værtssystem. 

...

Indtast et cpr nummer på en test person (Eksempelvis "2708599967", som er et hyppigt anvendt test cpr nummer), herefter kan der browses rundt i fanerne.

For at fanen "afprøvningsplatformen" kan fungere, skal nap-compose og nap-lobby-web startes, som er de næste trin i denne opsætning.

Nap-Compose

Ideen med nap-compose er at opsætte en reverse proxy, som skal fungerer som en NSP loadbalancer med path rewriting.

For at starte denne reverse proxy køres "docker-compose up". Dette vil åbne port 8080 på localhost.

nap-compose på SVN

Nap-Lobby-web

Nap-lobby-web er kataloget for de afprøvningsprojekter, der findes i NAP.

Kør "docker-compose up"  fra compose/development og den er derefter tilgængelig for nap-host-java, da den vil hoste lobbyen på http://localhost:8080/nap/lobby/web/, som er den url nap-host-java kigger efter. 

For at nap-lobby-web skal vise nogen projekter, skal den have forbindelse til nap-administration.

nap-lobby-web på SVN

Nap-administration

Nap-administration er backenden og database, hvor projekterne bliver gemt.

Kør "docker-compose up" fra compose/development og den er derefter tilgængelig for nap-lobby-web og projekterne bliver herefter vist.

nap-administration på SVN

Ny implementering / Dit projekt

Der ligger et udviklingsprojekt som hedder "Developer", som der hurtigt kan sætte gang i anvendelsen af NAP platformen som udviklingsmiljø.

Hvis dette projekt trykkes på, vil nap-java-host åbne en hvilken som helst applikation der hostes på http://localhost:4600.

Du kan læse mere om, hvordan der sendes beskeder til og fra et værtssystem på NAP SDK - Guide til anvendere.

Konfigurer din løsning ind i NAP

Når en nyt projekt skal fungere med NAP Platformen, er der 2 steder, hvor platformen lokalt skal konfigureres.

Reverse proxy

Reverse proxy konfigureres ved at opdatere nap-httpd.conf. i nap-compose.

<VirtualHost *:8080> ServerName nap

ProxyPass /nap/reference/web/services/main http://napreffacade:8080

ProxyPassReverse /nap/reference/web/services/main http://napreffacade:8080

ProxyPass /nap/reference/web http://naprefweb:8080

ProxyPassReverse /nap/reference/web http://naprefweb:8080

</VirtualHost>

Lav en konfiguration magen til ovenfor hvor reference og naprefweb udskiftes efter ønske med navnene på dine docker-services.

Urlen skal passe med, den url der indsættes i databasen nedenfor.

Database

For at dit projekt skal vises i lobbyen, skal projektet optræde i din lokale database.  

Du kan gøre dette med sql inserts direkte eller opdatere compose/db/migration/V2__insert_data_localhost.sql med en kopi af nedenstående, som bare opdateres med dit nye info

...

insert into administration.Project (active, description, releaseDate, version, name, id) values (true, 'Dit udviklingsprojekt kan åbnes her.', '2018-11-30', '1.0.0', 'Nap Web Develop',  UuidToBin(UUID()));
insert into administration.Manifest (releaseDate, url, version, id) values ('2019-11-30', 'http://localhost:8080/nap/developer/web/', '1.0.0', UuidToBin(UUID()));
insert into WebApp (active, manifest_id, name, id, project_id) values (true, (select id from administration.Manifest where url LIKE 'http://localhost:8080/nap/developer/web/' ), 'Nap Web Developer version 0.0.1', UuidToBin(UUID()), (select id from administration.Project where name LIKE 'Nap Web Develop'));
insert into WebApp_cvr (WebApp_id, cvr) values ((select id from administration.WebApp where name LIKE 'Nap Web Developer version 0.0.1'), '20921897');
insert into Manifest_eventCatalogueVersions (Manifest_id, eventCatalogueVersions) values ((select id from administration.Manifest where url LIKE 'http://localhost:8080/nap/developer/web/' ), 1);

Udvikling af dit projekt 

Der ligger et udviklingsprojekt som hedder "Developer", som der hurtigt kan sætte gang i anvendelsen af NAP platformen som udviklingsmiljø.

Hvis dette projekt trykkes på, vil nap-java-host åbne en hvilken som helst applikation der hostes på http://localhost:4600.

For at anvende kontekstbroen til at kommunikere med hostsystemet kan ses mere NAP SDK - Guide til anvendere.

Publicering af dit projekt

Når dit projekt er klar til at blive testet i NSPs testmiljøer skal du have registret dit personlige moces certifikat som administrator i NAP.

Dette gøres ved at oprette en support sag på SDS´s Nationale Servicedesk.

Efterfølgende kan du bruge det certifikat til at logge ind på TILFØJ NAP-ADMIN NEMID URL hvorfra du kan til føje metadata omkring dit projekt.For at ændringer bliver reflekteret, skal databasen og flyway genstartes, og dette gøres med "docker-compose down & docker-compose up". 

Kom igang med NAP som værtssystem-/ LPS udvikler

...