- 1. Kontekst
- 2. Funksjonelle Krav
- 3. Begrensninger
- 4. Programvarearkitektur
- 5. Kode
- 6. Data
- 7. Infrastrukturarkitektur
- 8. Distribusjon av tjenesten (deployment)
- 9. Utviklingsmiljø
- 10. Drift og støtte
Kafka konsumer og API-tjeneste for sif-innsynsplatform.
Denne tjenesten understøtter behovet for innsyn for bruker. Tjenesten lytter etter diverse søknads hendelser som e.g. mottatte søknader, søknader under behandling, etc. og lagrer dem i database. Tjenesten eksponerer også api-er for henting av overnevnte data, for å gi bruker innsyn i egne saker.
Innsyn i sakene til bruker begrenses til kapittel 9 ytelsene som e.g. omsorgspenger, pleiepenger, etc.
Distribusjon av tjenesten er gjort med bruk av Github Actions. Sif Innsyn API CI / CD
Push/merge til master branche vil teste, bygge og deploye til produksjonsmiljø og testmiljø.
- docker
- docker-compose
- Java 11
- Kubectl
For å bygge kode, kjør:
./gradlew clean build
For å kjøre kode, kjør:
./gradlew clean build && docker build --tag sif-innsyn-api-local . && docker-compose up --build
Eller for å hoppe over tester under bygging:
./gradlew clean build -x test && docker build --tag sif-innsyn-api-local . && docker-compose up --build
For produsere kafka meldinger, må man først exec inn på kafka kontaineren ved å bruker docker dashbord, eller ved å kjøre følgende kommando:
docker exec -it <container-id til kafka> /bin/sh; exit
Deretter, kjøre følgende kommando for å koble til kafka instansen:
kafka-console-producer --broker-list localhost:9092 --topic privat-sif-innsyn-mottak --producer.config=$CLASSPATH/producer.properties
Applikasjonen er konfigurert med en lokal oicd provider stub for å utsending og verifisering av tokens. For å kunne gjøre kall på endepunktene, må man ha et gyldig token.
- Åpne oicd-provider-gui i nettleseren enten ved å bruke docker dashbord, eller ved å gå til http://localhost:5000.
- Trykk "Token for nivå 4" for å logge inn med ønsket bruker, ved å oppgi fødselsnummer. Tokenet blir da satt som en cookie (selvbetjening-idtoken) i nettleseren.
- Deretter kan du åpne http://localhost:8080/swagger-ui.html for å teste ut endepunktene.
Om man ønsker å bruke postman må man selv, lage en cookie og sette tokenet manuelt. Eksempel: selvbetjening-idtoken=eyJhbGciOiJSUzI1NiIsInR5cCI6Ikp.eyJzdWIiOiIwMTAxMDExMjM0NSIsImFjc.FBmVFuHI9d8akrVdAxi1dRg03qKV4EGk; Path=/; Domain=localhost; Expires=Fri, 18 Jun 2021 08:46:13 GMT;
Loggene til tjenesten kan leses på to måter:
For dev-gcp: https://logs.adeo.no/goto/7db198143c27f93228b17f3b07f16e39
For prod-gcp: https://logs.adeo.no/goto/e796ec96af7bb1032a11d388e6849451
For dev-gcp:
kubectl config use-context dev-gcp
kubectl get pods -n dusseldorf | grep sif-innsyn-api
kubectl logs -f sif-innsyn-api-<POD-ID> --namespace dusseldorf -c sif-innsyn-api
For prod-gcp:
kubectl config use-context prod-gcp
kubectl get pods -n dusseldorf | grep sif-innsyn-api
kubectl logs -f sif-innsyn-api-<POD-ID> --namespace dusseldorf -c sif-innsyn-api
Vi bruker nais-alerts for å sette opp alarmer. Disse finner man konfigurert i nais/alerterator-prod.yml.
Spørsmål koden eller prosjekttet kan rettes til team dusseldorf på: