Profilering av arbeidssøker for å fatte et 14a-vedtak
https://arbeidssoker-profilering.intern.dev.nav.no/docs
graph TD
ARBEIDSOKER_REGISTRERT["Arbeidssøker registrert"]
ARBEIDSSOKER_REGISTRERT_MELDING["Sender arbeidssøker registrert melding til kafka"]
ARBEIDSSOKER_REGISTRERT_KAFKA_MELDING["
<center><code>topic: paw.arbeidssoker-registrert-v2</code></center>
<pre>
{
"foedselsnummer": { "foedselsnummer": "18908396568" },
"aktorId": { "aktorId": "2862185140226" },
"registreringsId": 1,
"besvarelse": {
"utdanning": "GRUNNSKOLE",
"utdanningBestatt": "JA",
"utdanningGodkjent": "JA",
"helseHinder": "JA",
"andreForhold": "JA",
"sisteStilling": "INGEN_SVAR",
"dinSituasjon": "MISTET_JOBBEN",
"fremtidigSituasjon": null,
"tilbakeIArbeid": null
},
"opprettetDato": "2023-03-23T13:05:21.097314+01:00"
}
</pre>"]
HENT_ARBEIDSSOKER_REGISTRERING["Henter arbeidssøker registrert melding"]
PROFILERING["Profilering"]
LAGRE_PROFILERING["Lagre profilering"]
ARBEIDSSOKER_PROFILERT_MELDING["Sender profilert melding til kafka"]
ARBEIDSSOKER_PROFILERT_MELDING_KAFKA["
<center><code>topic: paw.arbeidssoker-profilert-v2</code></center>
<pre>
{
"id": 1,
"foedselsnummer": 18908396568,
"innsatsgruppe": "STANDARD_INNSATS"
}
</pre>"]
subgraph <b>veilarbregistrering</b>
ARBEIDSOKER_REGISTRERT-->ARBEIDSSOKER_REGISTRERT_MELDING
end
subgraph <b>Kafka</b>
ARBEIDSSOKER_REGISTRERT_MELDING-->ARBEIDSSOKER_REGISTRERT_KAFKA_MELDING
end
ARBEIDSSOKER_REGISTRERT_KAFKA_MELDING-->HENT_ARBEIDSSOKER_REGISTRERING
subgraph <b>paw-arbeidssoker-profilering</b>
HENT_ARBEIDSSOKER_REGISTRERING-->PROFILERING
PROFILERING-->LAGRE_PROFILERING
LAGRE_PROFILERING-->ARBEIDSSOKER_PROFILERT_MELDING
end
subgraph <b>Kafka</b>
ARBEIDSSOKER_PROFILERT_MELDING-->ARBEIDSSOKER_PROFILERT_MELDING_KAFKA
end
style ARBEIDSSOKER_REGISTRERT_KAFKA_MELDING text-align:left
style ARBEIDSSOKER_PROFILERT_MELDING_KAFKA text-align:left
graph LR
Start --> Arbeidsevnevurdering(Behov for arbeidsevnevurdering)
Start --> Standard(Standard innsats)
Start --> Situasjonsbestemt(Situasjonsbestemt innsats)
Arbeidsevnevurdering((Behov for arbeidsevnevurdering)) -->
IF1(If besvarelse.helseHinder == JA or<br> besvarelse.andreForhold == JA)-->InnsatsgruppeArbeidsevnevurdering(Innsatsgruppe.BEHOV_FOR_ARBEIDSEVNEVURDERING)
Situasjonsbestemt((Situasjonsbestemt innsats)) --> IF2(If not conditions for Standard innsats) --> InnsatsgruppeSituasjonsbestemt(Innsatsgruppe.SITUASJONSBESTEMT_INNSATS)
Standard((Standard innsats)) --> IF3(If<br>alder in 18..59<br>oppfyllerKravTilArbeidserfaring<br>besvarelse.utdanning != INGEN_UTDANNING<br>besvarelse.utdanningBestatt == JA<br>besvarelse.utdanningGodkjent == JA<br>besvarelse.helseHinder == NEI<br>besvarelse.andreForhold == NEI)--> InnsatsgruppeStandard(Innsatsgruppe.STANDARD_INNSATS)
style Start fill:#a8e6cf
style Arbeidsevnevurdering fill:#ffd3b4
style Situasjonsbestemt fill:#ffd3b4
style Standard fill:#ffd3b4
style InnsatsgruppeArbeidsevnevurdering fill:#f9f7d9
style InnsatsgruppeSituasjonsbestemt fill:#f9f7d9
style InnsatsgruppeStandard fill:#f9f7d9
Øvrige teknologier, rammeverk og biblioteker som er blitt tatt i bruk:
Under er det satt opp et par ting som må på plass for at applikasjonen og databasen skal fungere.
JDK 17 må være installert. Enkleste måten å installere riktig versjon av Java er ved å bruke sdkman.
docker
og docker-compose
må være installert. For å
installere disse kan du følge oppskriften på Dockers offisielle side. For installering på Mac
trykk her eller
trykk her for Ubuntu.
Man må også installere docker-compose
som en separat greie
for Ubuntu. For Mac følger dette med når
man installerer Docker Desktop.
Kjør opp docker containerne med
docker-compose up -d
Se at alle kjører med
docker ps
Fem containere skal kjøre; kakfa, zookeeper, schema-registry, postgres og mock-oauth2-server.
Miljøvariabler må være satt opp i .env
cp .env-example .env
Start app med ./gradlew run
eller start via intellij
For å kalle APIet lokalt må man være autentisert med et Bearer token.
Vi benytter mock-ouath2-server til å utstede tokens på lokal maskin. Følgende steg kan benyttes til å generere opp et token:
- Sørg for at containeren for mock-oauth2-server kjører lokalt (docker-compose up -d)
- Naviger til mock-oauth2-server sin side for debugging av tokens
- Generer et token
- Trykk på knappen Get a token
- Skriv inn noe random i "Enter any user/subject" og pid i optional claims, f.eks.
{ "acr": "Level3", "pid": "26118611111" }
-
Trykk Sign in
-
Kopier verdien for access_token og benytt denne som Bearer i Authorization-header
-
Eksempel:
$ curl localhost:8080/api/v1/profilering -H 'Authorization: Bearer <access_token>'
eller benytt en REST-klient (f.eks. insomnia eller Postman
Send inn en kafka-melding til arbeidssoker-registrert-v2
:
# Eksempel melding
cat src/main/resources/arbeidssoker-registrert-kafka-melding.json | jq -c .
docker exec -it paw-arbeidssoker-profilering_kafka_1 /usr/bin/kafka-console-producer --broker-list 127.0.0.1:9092 --topic arbeidssoker-registrert-v2
Consumer meldinger fra arbeidssoker-profilert-v2
docker exec -it paw-arbeidssoker-profilering_kafka_1 /usr/bin/kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic arbeidssoker-profilert-v2
Prosjektet bruker kotlinter
Kjør ./gradlew formatKotlin
for autoformatering eller ./gradlew lintKotlin
for å se lint-feil.
Ved å prefikse branch-navn med dev/
, så vil branchen kun deployes i dev.
git checkout -b dev/<navn på branch>
evt. rename branch
git checkout <opprinnlig-branch>
git branch -m dev/<opprinnlig-branch>
Spørsmål knyttet til koden eller prosjektet kan stilles via issues her på github.
Interne henvendelser kan sendes via Slack i kanalen #team-paw-dev