Skip to content

Commit 9257f5c

Browse files
committed
Oppdatert bekreftelse etter rename av avro-meldinger, lagt til github action for bekreftelse-api
1 parent dbaa15a commit 9257f5c

File tree

13 files changed

+163
-57
lines changed

13 files changed

+163
-57
lines changed
+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
name: Bekreftelse API
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- dev/*
8+
paths:
9+
- 'apps/bekreftelse-api/**'
10+
- 'lib/**'
11+
- 'domain/**'
12+
- '.github/workflows/bekreftelse-api.yaml'
13+
- 'gradle/**'
14+
- 'settings.gradle.kts'
15+
- 'gradle.properties'
16+
- 'gradlew'
17+
- 'gradlew.bat'
18+
19+
env:
20+
MODULE: bekreftelse-api
21+
IMAGE: europe-north1-docker.pkg.dev/${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}/paw/paw-arbeidssoeker-bekreftelse-api
22+
jobs:
23+
build:
24+
name: Build
25+
permissions:
26+
contents: read
27+
id-token: write
28+
packages: write
29+
runs-on: ubuntu-latest
30+
outputs:
31+
image: ${{ steps.docker-build-push.outputs.image }}
32+
steps:
33+
- name: Checkout
34+
uses: actions/checkout@v4
35+
- name: Setup Java
36+
uses: actions/setup-java@v4
37+
with:
38+
java-version: 21
39+
distribution: temurin
40+
cache: gradle
41+
- name: Set version
42+
run: echo "VERSION=$(date +'%y.%m.%d').${{ github.run_number }}-${{ github.run_attempt }}" >> $GITHUB_ENV
43+
- name: Login GAR
44+
uses: nais/login@v0
45+
with:
46+
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
47+
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
48+
team: paw
49+
- name: Build and push image with Gradle
50+
id: docker-build-push
51+
working-directory: ./
52+
env:
53+
ORG_GRADLE_PROJECT_githubPassword: ${{ secrets.GITHUB_TOKEN }}
54+
run: |
55+
echo "image=${{ env.IMAGE }}:${{ env.VERSION }}" >> $GITHUB_OUTPUT
56+
echo -Pversion=${{ env.VERSION }} -Pimage=${{ env.IMAGE }} :apps:${{ env.MODULE }}:build :apps:${{ env.MODULE }}:jib
57+
./gradlew -Pversion=${{ env.VERSION }} -Pimage=${{ env.IMAGE }} :apps:${{ env.MODULE }}:build :apps:${{ env.MODULE }}:jib
58+
echo "DIGEST=$(cat ./apps/${{ env.MODULE }}/build/jib-image.digest)" >> $GITHUB_ENV
59+
- name: Attest and sign image
60+
uses: nais/[email protected]
61+
with:
62+
image_ref: ${{ env.IMAGE }}@${{ env.DIGEST }}
63+
64+
deploy-dev:
65+
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/dev')
66+
name: Deploy to dev-gcp
67+
needs:
68+
- build
69+
permissions:
70+
contents: read
71+
id-token: write
72+
runs-on: ubuntu-latest
73+
steps:
74+
- name: Checkout
75+
uses: actions/checkout@v4
76+
- name: Deploy to GCP
77+
uses: nais/deploy/actions/deploy@v2
78+
env:
79+
CLUSTER: dev-gcp
80+
RESOURCE: ./apps/${{ env.MODULE }}/nais/nais-dev.yaml
81+
VAR: image=${{ needs.build.outputs.image }}
82+
83+
# deploy-prod:
84+
# if: github.ref == 'refs/heads/main'
85+
# name: Deploy to prod-gcp
86+
# needs:
87+
# - build
88+
# - deploy-dev
89+
# permissions:
90+
# contents: read
91+
# id-token: write
92+
# runs-on: ubuntu-latest
93+
# steps:
94+
# - name: Checkout
95+
# uses: actions/checkout@v4
96+
# - name: Deploy to GCP
97+
# uses: nais/deploy/actions/deploy@v2
98+
# env:
99+
# TEAM: paw
100+
# CLUSTER: prod-gcp
101+
# RESOURCE: ./apps/${{ env.MODULE }}/nais/nais-prod.yaml
102+
# VAR: image=${{ needs.build.outputs.image }}

apps/bekreftelse-api/src/main/kotlin/no/nav/paw/bekreftelse/api/Application.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ fun Application.module(
4949
) {
5050
configureMetrics(dependencies.prometheusMeterRegistry)
5151
configureHTTP()
52-
configureAuthentication(applicationConfig.authProviders)
52+
configureAuthentication(applicationConfig)
5353
configureLogging()
5454
configureSerialization()
5555
configureTracing()

apps/bekreftelse-api/src/main/kotlin/no/nav/paw/bekreftelse/api/kafka/BekreftelseProducer.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@ package no.nav.paw.bekreftelse.api.kafka
22

33
import no.nav.paw.bekreftelse.api.config.ApplicationConfig
44
import no.nav.paw.bekreftelse.api.model.BekreftelseRequest
5-
import no.nav.paw.bekreftelse.api.utils.buildMeldingSerde
5+
import no.nav.paw.bekreftelse.api.utils.buildBekreftelseSerde
66
import no.nav.paw.bekreftelse.api.utils.logger
77
import no.nav.paw.bekreftelse.internehendelser.BekreftelseTilgjengelig
8+
import no.nav.paw.bekreftelse.melding.v1.Bekreftelse
89
import no.nav.paw.config.kafka.KafkaFactory
910
import no.nav.paw.config.kafka.sendDeferred
10-
import no.nav.paw.rapportering.melding.v1.Melding
1111
import org.apache.kafka.clients.producer.Producer
1212
import org.apache.kafka.clients.producer.ProducerRecord
1313
import org.apache.kafka.common.serialization.LongSerializer
1414

1515
class BekreftelseProducer(
1616
private val applicationConfig: ApplicationConfig,
1717
) {
18-
private lateinit var producer: Producer<Long, Melding>
19-
private val meldingSerde = buildMeldingSerde()
18+
private lateinit var producer: Producer<Long, Bekreftelse>
19+
private val bekreftelseSerde = buildBekreftelseSerde()
2020

2121
init {
2222
initializeProducer()
@@ -25,14 +25,14 @@ class BekreftelseProducer(
2525
private fun initializeProducer() {
2626
val kafkaFactory = KafkaFactory(applicationConfig.kafkaClients)
2727
producer =
28-
kafkaFactory.createProducer<Long, Melding>(
28+
kafkaFactory.createProducer<Long, Bekreftelse>(
2929
clientId = applicationConfig.kafkaTopology.producerId,
3030
keySerializer = LongSerializer::class,
31-
valueSerializer = meldingSerde.serializer()::class
31+
valueSerializer = bekreftelseSerde.serializer()::class
3232
)
3333
}
3434

35-
suspend fun produceMessage(key: Long, message: Melding) {
35+
suspend fun produceMessage(key: Long, message: Bekreftelse) {
3636
val topic = applicationConfig.kafkaTopology.bekreftelseTopic
3737
val record = ProducerRecord(topic, key, message)
3838
val recordMetadata = producer.sendDeferred(record).await()
@@ -44,7 +44,7 @@ class BekreftelseProducer(
4444
}
4545
}
4646

47-
fun createMelding(state: BekreftelseTilgjengelig, bekreftelse: BekreftelseRequest): Melding = TODO()
47+
fun createMelding(state: BekreftelseTilgjengelig, bekreftelse: BekreftelseRequest): Bekreftelse = TODO()
4848
//Melding.newBuilder()
4949
// .setId(ApplicationInfo.id)
5050
// .setNamespace("paw")

apps/bekreftelse-api/src/main/kotlin/no/nav/paw/bekreftelse/api/plugins/Authentication.kt

+21-18
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,32 @@ package no.nav.paw.bekreftelse.api.plugins
22

33
import io.ktor.server.application.Application
44
import io.ktor.server.auth.authentication
5-
import no.nav.paw.bekreftelse.api.config.AuthProviders
5+
import no.nav.paw.bekreftelse.api.config.ApplicationConfig
66
import no.nav.security.token.support.v2.IssuerConfig
77
import no.nav.security.token.support.v2.RequiredClaims
88
import no.nav.security.token.support.v2.TokenSupportConfig
99
import no.nav.security.token.support.v2.tokenValidationSupport
1010

11-
fun Application.configureAuthentication(authProviders: AuthProviders) =
12-
authentication {
13-
authProviders.forEach { provider ->
14-
tokenValidationSupport(
15-
name = provider.name,
16-
requiredClaims = RequiredClaims(
17-
provider.name,
18-
provider.claims.map.toTypedArray(),
19-
provider.claims.combineWithOr
20-
),
21-
config = TokenSupportConfig(
22-
IssuerConfig(
23-
name = provider.name,
24-
discoveryUrl = provider.discoveryUrl,
25-
acceptedAudience = listOf(provider.clientId)
11+
fun Application.configureAuthentication(applicationConfig: ApplicationConfig) {
12+
with(applicationConfig) {
13+
authentication {
14+
authProviders.forEach { provider ->
15+
tokenValidationSupport(
16+
name = provider.name,
17+
requiredClaims = RequiredClaims(
18+
provider.name,
19+
provider.claims.map.toTypedArray(),
20+
provider.claims.combineWithOr
21+
),
22+
config = TokenSupportConfig(
23+
IssuerConfig(
24+
name = provider.name,
25+
discoveryUrl = provider.discoveryUrl,
26+
acceptedAudience = listOf(provider.clientId)
27+
)
2628
)
2729
)
28-
)
30+
}
2931
}
30-
}
32+
}
33+
}

apps/bekreftelse-api/src/main/kotlin/no/nav/paw/bekreftelse/api/utils/KafkaSerialization.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import com.fasterxml.jackson.databind.ObjectMapper
55
import com.fasterxml.jackson.module.kotlin.readValue
66
import io.confluent.kafka.streams.serdes.avro.SpecificAvroSerde
77
import no.nav.paw.bekreftelse.api.model.InternState
8+
import no.nav.paw.bekreftelse.melding.v1.Bekreftelse
89
import no.nav.paw.config.env.NaisEnv
910
import no.nav.paw.config.env.currentNaisEnv
10-
import no.nav.paw.rapportering.melding.v1.Melding
1111
import org.apache.kafka.common.serialization.Deserializer
1212
import org.apache.kafka.common.serialization.Serde
1313
import org.apache.kafka.common.serialization.Serializer
@@ -52,4 +52,4 @@ inline fun <reified T> buildJsonSerde(): Serde<T> {
5252

5353
fun buildInternStateSerde() = buildJsonSerde<InternState>()
5454

55-
fun buildMeldingSerde() = SpecificAvroSerde<Melding>()
55+
fun buildBekreftelseSerde() = SpecificAvroSerde<Bekreftelse>()

apps/bekreftelse-api/src/main/resources/logback.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333
<logger name="org.apache.kafka.clients.consumer.ConsumerConfig" level="WARN"/>
3434
<logger name="org.apache.kafka.clients.producer.ProducerConfig" level="WARN"/>
3535
<logger name="io.confluent.kafka.serializers.KafkaAvroSerializerConfig" level="WARN"/>
36-
<logger name="no.nav.paw" level="DEBUG"/>
36+
<logger name="no.nav" level="DEBUG"/>
37+
<logger name="io.ktor.auth" level="DEBUG"/>
38+
<logger name="io.ktor.server.auth" level="DEBUG"/>
3739
</then>
3840
<else>
3941
<logger name="tjenestekall" level="DEBUG" additivity="false">

apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekretelsetjeneste/AnsvarTopology.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package no.nav.paw.bekretelsetjeneste
22

33
import no.nav.paw.config.kafka.streams.genericProcess
4-
import no.nav.paw.rapportering.ansvar.v1.AnsvarEndret
4+
import no.nav.paw.bekreftelse.ansvar.v1.AnsvarEndret
55
import no.nav.paw.bekreftelse.internehendelser.BekreftelseHendelse
66
import org.apache.kafka.streams.StreamsBuilder
77

apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekretelsetjeneste/RapportingsMeldingTopology.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import no.nav.paw.bekretelsetjeneste.tilstand.Tilstand
99
import no.nav.paw.bekretelsetjeneste.tilstand.Tilstand.KlarForUtfylling
1010
import no.nav.paw.bekretelsetjeneste.tilstand.Tilstand.VenterSvar
1111
import no.nav.paw.config.kafka.streams.genericProcess
12-
import no.nav.paw.rapportering.melding.v1.Melding
1312
import org.apache.kafka.streams.StreamsBuilder
1413
import org.apache.kafka.streams.processor.api.Record
1514
import org.slf4j.LoggerFactory
1615
import java.util.*
1716

1817
context(ApplicationConfiguration, ApplicationContext)
1918
fun StreamsBuilder.processBekreftelseMeldingTopic() {
20-
stream<Long, Melding>(bekreftelseTopic)
21-
.genericProcess<Long, Melding, Long, BekreftelseHendelse>(
19+
stream<Long, no.nav.paw.bekreftelse.melding.v1.Bekreftelse>(bekreftelseTopic)
20+
.genericProcess<Long, no.nav.paw.bekreftelse.melding.v1.Bekreftelse, Long, BekreftelseHendelse>(
2221
name = "meldingMottatt",
2322
stateStoreName
2423
) { record ->
@@ -52,7 +51,7 @@ fun StreamsBuilder.processBekreftelseMeldingTopic() {
5251
}
5352
}
5453

55-
fun behandleGyldigSvar(arbeidssoekerId: Long, record: Record<Long, Melding>, bekreftelse: Bekreftelse): Pair<List<BekreftelseHendelse>, Bekreftelse> {
54+
fun behandleGyldigSvar(arbeidssoekerId: Long, record: Record<Long, no.nav.paw.bekreftelse.melding.v1.Bekreftelse>, bekreftelse: Bekreftelse): Pair<List<BekreftelseHendelse>, Bekreftelse> {
5655
val oppdatertBekreftelse = bekreftelse.copy(tilstand = Tilstand.Levert)
5756
val baOmAaAvslutte = if (!record.value().svar.vilFortsetteSomArbeidssoeker) {
5857
BaOmAaAvsluttePeriode(

apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekretelsetjeneste/Startup.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ const val APPLICATION_ID_SUFFIX = "beta"
1919
fun main() {
2020
val applicationConfiguration = ApplicationConfiguration(
2121
periodeTopic = "paw.arbeidssokerperioder-v1",
22-
ansvarsTopic = "paw.bekreftelse-ansvar-v1",
23-
bekreftelseTopic = "paw.bekreftelse-svar-v1",
24-
bekreftelseHendelseloggTopic = "paw.bekreftelse-hendelselogg-v1",
22+
ansvarsTopic = "paw.arbeidssoker-bekreftelse-ansvar-beta-v1",
23+
bekreftelseTopic = "paw.arbeidssoker-bekreftelse-beta-v1",
24+
bekreftelseHendelseloggTopic = "paw.arbeidssoker-bekreftelse-hendelseslogg-beta-v1",
2525
stateStoreName = "bekreftelse",
2626
punctuateInterval = Duration.ofMinutes(5)
2727
)

apps/bekreftelse-tjeneste/src/test/kotlin/no/nav/paw/bekretelsetjeneste/ApplicationTestContext.kt

+7-7
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import io.confluent.kafka.schemaregistry.testutil.MockSchemaRegistry
44
import io.confluent.kafka.serializers.KafkaAvroSerializerConfig
55
import io.confluent.kafka.streams.serdes.avro.SpecificAvroSerde
66
import no.nav.paw.arbeidssokerregisteret.api.v1.Periode
7-
import no.nav.paw.kafkakeygenerator.client.KafkaKeysResponse
8-
import no.nav.paw.kafkakeygenerator.client.inMemoryKafkaKeysMock
9-
import no.nav.paw.bekretelsetjeneste.tilstand.InternTilstandSerde
10-
import no.nav.paw.rapportering.ansvar.v1.AnsvarEndret
7+
import no.nav.paw.bekreftelse.ansvar.v1.AnsvarEndret
118
import no.nav.paw.bekreftelse.internehendelser.BekreftelseHendelse
129
import no.nav.paw.bekreftelse.internehendelser.BekreftelseHendelseSerde
13-
import no.nav.paw.rapportering.melding.v1.Melding
10+
import no.nav.paw.bekreftelse.melding.v1.Bekreftelse
11+
import no.nav.paw.bekretelsetjeneste.tilstand.InternTilstandSerde
12+
import no.nav.paw.kafkakeygenerator.client.KafkaKeysResponse
13+
import no.nav.paw.kafkakeygenerator.client.inMemoryKafkaKeysMock
1414
import org.apache.avro.specific.SpecificRecord
1515
import org.apache.kafka.common.serialization.Serde
1616
import org.apache.kafka.common.serialization.Serdes
@@ -25,7 +25,7 @@ import java.util.*
2525

2626
class ApplicationTestContext {
2727
val ansvarsTopicSerde: Serde<AnsvarEndret> = opprettSerde()
28-
val rapporteringMeldingSerde: Serde<Melding> = opprettSerde()
28+
val bekreftelseSerde: Serde<Bekreftelse> = opprettSerde()
2929
val periodeTopicSerde: Serde<Periode> = opprettSerde()
3030
val hendelseLoggSerde: Serde<BekreftelseHendelse> = BekreftelseHendelseSerde()
3131
val applicationConfiguration = ApplicationConfiguration(
@@ -72,7 +72,7 @@ class ApplicationTestContext {
7272
val rapporteringsTopic = testDriver.createInputTopic(
7373
applicationConfiguration.bekreftelseTopic,
7474
Serdes.Long().serializer(),
75-
rapporteringMeldingSerde.serializer()
75+
bekreftelseSerde.serializer()
7676
)
7777

7878
val hendelseLoggTopic = testDriver.createOutputTopic(

domain/bekreftelsesansvar-schema/build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ val schema by configurations.creating {
1010
}
1111

1212
dependencies {
13-
schema(rapportering.rapporteringsansvarSchema)
14-
implementation(rapportering.rapporteringsansvarSchema)
13+
schema(bekreftelse.bekreftelsesansvarSchema)
14+
implementation(bekreftelse.bekreftelsesansvarSchema)
1515
api(apacheAvro.avro)
1616
}
1717

domain/bekreftelsesmelding-schema/build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ val schema by configurations.creating {
1010
}
1111

1212
dependencies {
13-
schema(rapportering.rapporteringsmeldingSchema)
14-
implementation(rapportering.rapporteringsmeldingSchema)
13+
schema(bekreftelse.bekreftelsesmeldingSchema)
14+
implementation(bekreftelse.bekreftelsesmeldingSchema)
1515
api(apacheAvro.avro)
1616
}
1717

settings.gradle.kts

+8-8
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ dependencyResolutionManagement {
6666
val pawPdlClientVersion = "24.08.08.40-1"
6767
val pawAaregClientVersion = "24.07.04.18-1"
6868
val arbeidssokerregisteretVersion = "1.9348086045.48-1"
69-
val rapporteringsSchemaVersion = "24.09.11.8-1"
69+
val bekreftelseSchemaVersion = "24.09.16.1-1"
7070

7171

7272
//Arrow
@@ -265,17 +265,17 @@ dependencyResolutionManagement {
265265
create("poao") {
266266
library("tilgangClient", "no.nav.poao-tilgang", "client").version("2024.04.29_13.59-a0ddddd36ac9")
267267
}
268-
create("rapportering") {
268+
create("bekreftelse") {
269269
library(
270-
"rapporteringsansvarSchema",
270+
"bekreftelsesansvarSchema",
271271
"no.nav.paw.arbeidssokerregisteret.api",
272-
"rapporteringsansvar-schema"
273-
).version(rapporteringsSchemaVersion)
272+
"bekreftelsesansvar-schema"
273+
).version(bekreftelseSchemaVersion)
274274
library(
275-
"rapporteringsmeldingSchema",
275+
"bekreftelsesmeldingSchema",
276276
"no.nav.paw.arbeidssokerregisteret.api",
277-
"rapporteringsmelding-schema"
278-
).version(rapporteringsSchemaVersion)
277+
"bekreftelsesmelding-schema"
278+
).version(bekreftelseSchemaVersion)
279279
}
280280
}
281281
}

0 commit comments

Comments
 (0)