Skip to content

navikt/vtp

Folders and files

NameName
Last commit message
Last commit date
Jan 27, 2025
Mar 17, 2025
Mar 9, 2023
Jan 30, 2025
Mar 7, 2025
Feb 25, 2025
Mar 12, 2025
Jun 22, 2023
Sep 9, 2023
Sep 18, 2019
Feb 2, 2023
Sep 9, 2020
Nov 21, 2023
Sep 18, 2019
Aug 31, 2020
Feb 5, 2025
Nov 21, 2024
Nov 21, 2024
Mar 5, 2025
Mar 17, 2025

Repository files navigation

Quality Gate Status Vulnerabilities Code Smells Security Rating Coverage Virtuell Tjeneste Plattform (VTP)

alt text

VTP hjelper deg med å:

  • virtualisere grensesnitt rundt applikasjonene i FP-familien.
  • instansierer og holde testdata konsistente på tvers av grensesnittene
  • ha en plattform for å simulere grensesnitt over REST, GRAPHQL, Kafka, LDAP.
  • sikkerhetshåndtering over OAuth2
  • REST-grensesnitt for å programatisk opprette testdata (for automatiske tester)
  • GUI for å opprette testdata for mennesker.

Henvendelser

  • Team Foreldrepenger <teamforeldrepenger(at)nav.no>
  • Team Sykdom-i-familien

For Nav-ansatte

Interne henvendelser kan sendes via Slack i kanalen #vtp-chatten

Teknologi som må installeres

Starte applikasjon

For utvikling på VTP benytt oppsett for å starte server gjennom IDE. I verdikjedetester benyttes oftest Docker-image av VTP. Dette bygges i VTP sin pipeline.

Når applikasjonen har startet blir Swagger konfigurasjonen tilgjengelig på http://localhost:8060/rest/openapi.json Swagger-ui kan startet vi docker-compose oppsett i /swagger-ui og blir da tilgjengelig på http://localhost:8061/swagger/

Starte backend-server via IDE

  • IntelliJ må konfigureres med å sette classpath of module til server, og sette working directory til $MODULE_WORKING_DIR$ i run/debug-konfiguration.
  • Start mock serveren ved å kjøre MockServer (lokalt).

Kjøre via docker run / docker-compose

For å bygge docker image lokalt:

Bygg prosjektet med mvn clean install", bygg deretter docker-imaget med docker build -t vtp . Imaget blir da tilgjengelig som vtp:latest

Hente docker-image bygget i pipe:

docker pull ghcr.io/navikt/vtp (dette krever at en allerede logget inn med docker hos ghcr.io)

Opprette testdata

Testscenarios opprettes ved hjelp av TestscenarioRestTjeneste.java. Her sende man inn en JSON-string av testpersonen(e), testpersonen blir instansiert i VTP og tilgjengliggjort i alle mockene, og den instansierte testpersonen returneres.

JSON objektet har følgende struktur og godtar at en eller flere felter mangler:

{
     "scenario-navn": "",
     "personopplysninger": {  },
     "inntektytelse-annenpart": {  },
     "inntektytelse-søker": {  },
     "organisasjon": {  },
     "vars": {  }
 }

Eksempel på hvordan en kan gjøre dette befinner seg i model/src/test/ScenarioTest.java med hjelpeklassen model/src/test/TestscenarioHenter.java. Hjelpeklassen leser av .json filer og oversetter det til en JSON streng som kan bli brukt i requesten.

Kjør tester

  • Automatiske tester for FPSAK (og andre FP*-familieapplikasjoner) ligger i eget repo på GitHub (private): fpsak-autotest
  • Automatiske tester for K9-applikasjoner ligger i eget repo på GitHub (private): k9-verdikjede

Sertifiakter for SSL/TLS

For å få VTP til å kjøre med SSL/TLS forbindelse over REST, GRAPHQL og Kafka må keystore angitt i VTP være tilgjengelig i SUT (System under test) sin Truststore. For lokal utvikling på Team Foreldrepenger og Sykdom-i-familien opprettes key- og truststore i.h.t til instruksjoner i verdikjede/autotest. Følgende systemvariabler kan defineres for å overstyre defaults i VTP:

JAVAX_NET_SSL_TRUSTSTORE
JAVAX_NET_SSL_TRUSTSTOREPASSWORD
NO_NAV_MODIG_SECURITY_APPCERT_KEYSTORE
NO_NAV_MODIG_SECURITY_APPCERT_PASSWORD

Konfigurere nye tjenester

Se ApplicationConfig for liste over registrerte REST-tjenester. Nye REST-tjenester registreres her.

Kjente feil

Swagger-codegen kommer med en recuring problem med manglende SLF4J binding (see swagger-api/swagger-codegen#12135)