diff --git a/build.gradle.kts b/build.gradle.kts index 5e7f170..cf3b747 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -42,7 +42,6 @@ dependencies { implementation(TmsKtorTokenSupport.tokendingsExchange) implementation(KotlinLogging.logging) implementation(Logstash.logbackEncoder) - implementation(Prometheus.logback) implementation(KtorClientEncoding.clientEncoding) implementation(TmsCommonLib.metrics) implementation(TmsCommonLib.utils) diff --git a/buildSrc/src/main/kotlin/default/dependencies.kt b/buildSrc/src/main/kotlin/default/dependencies.kt index ab58cc5..9b4435c 100644 --- a/buildSrc/src/main/kotlin/default/dependencies.kt +++ b/buildSrc/src/main/kotlin/default/dependencies.kt @@ -109,7 +109,7 @@ interface KotliQueryDefaults: DependencyGroup { } object KtorDefaults { - val version get() = "2.3.12" + val version get() = "3.0.1" val groupId get() = "io.ktor" interface ServerDefaults: DependencyGroup { @@ -183,14 +183,11 @@ interface PostgresqlDefaults: DependencyGroup { } interface PrometheusDefaults: DependencyGroup { - override val version get() = "0.16.0" + override val version get() = "1.3.4" override val groupId get() = "io.prometheus" - val common get() = dependency("simpleclient_common") - val hotspot get() = dependency("simpleclient_hotspot") - val httpServer get() = dependency("simpleclient_httpserver") - val logback get() = dependency("simpleclient_logback") - val simpleClient get() = dependency("simpleclient") + val metricsCore get() = dependency("prometheus-metrics-core") + val exporterCommon get() = dependency("prometheus-metrics-exporter-common") } interface ShadowDefaults: DependencyGroup { @@ -210,7 +207,7 @@ interface TestContainersDefaults: DependencyGroup { interface TmsCommonLibDefaults: DependencyGroup { override val groupId get() = "no.nav.tms.common" - override val version get() = "4.0.2" + override val version get() = "5.0.1" val metrics get() = dependency("metrics") val observability get() = dependency("observability") @@ -221,14 +218,14 @@ interface TmsCommonLibDefaults: DependencyGroup { interface TmsKafkaToolsDefaults: DependencyGroup { override val groupId get() = "no.nav.tms.kafka" - override val version get() = "1.6.0" + override val version get() = "2.0.0" val kafkaApplication get() = dependency("kafka-application") } interface TmsKtorTokenSupportDefaults: DependencyGroup { override val groupId get() = "no.nav.tms.token.support" - override val version get() = "4.1.2" + override val version get() = "5.0.1" val azureExchange get() = dependency("azure-exchange") val azureValidation get() = dependency("azure-validation") diff --git a/src/main/kotlin/no/nav/tms/varsel/api/Application.kt b/src/main/kotlin/no/nav/tms/varsel/api/Application.kt index f10c7c4..2f4235c 100644 --- a/src/main/kotlin/no/nav/tms/varsel/api/Application.kt +++ b/src/main/kotlin/no/nav/tms/varsel/api/Application.kt @@ -1,6 +1,5 @@ package no.nav.tms.varsel.api -import io.ktor.server.engine.applicationEngineEnvironment import io.ktor.server.engine.connector import io.ktor.server.engine.embeddedServer import io.ktor.server.netty.Netty @@ -14,23 +13,23 @@ fun main() { embeddedServer( factory = Netty, - environment = applicationEngineEnvironment { - rootPath = "tms-varsel-api" - module { - varselApi( - corsAllowedOrigins = environment.corsAllowedOrigins, - httpClient = httpClient, - varselConsumer = VarselConsumer( - client = httpClient, - varselAuthorityUrl = "http://tms-varsel-authority", - varselAuthorityClientId = environment.eventhandlerClientId, - tokendingsService = TokendingsServiceBuilder.buildTokendingsService(), - ) - ) - } + configure = { connector { port = 8080 } + }, + module = { + rootPath = "tms-varsel-api" + varselApi( + corsAllowedOrigins = environment.corsAllowedOrigins, + httpClient = httpClient, + varselConsumer = VarselConsumer( + client = httpClient, + varselAuthorityUrl = "http://tms-varsel-authority", + varselAuthorityClientId = environment.eventhandlerClientId, + tokendingsService = TokendingsServiceBuilder.buildTokendingsService(), + ) + ) } ).start(wait = true) } diff --git a/src/main/kotlin/no/nav/tms/varsel/api/varsel/varselbjelleRoutes.kt b/src/main/kotlin/no/nav/tms/varsel/api/varsel/varselbjelleRoutes.kt index 8bf9a7b..b70347b 100644 --- a/src/main/kotlin/no/nav/tms/varsel/api/varsel/varselbjelleRoutes.kt +++ b/src/main/kotlin/no/nav/tms/varsel/api/varsel/varselbjelleRoutes.kt @@ -5,9 +5,7 @@ import io.ktor.server.application.ApplicationCall import io.ktor.server.application.call import io.ktor.server.request.* import io.ktor.server.response.respond -import io.ktor.server.routing.Route -import io.ktor.server.routing.get -import io.ktor.server.routing.route +import io.ktor.server.routing.* import io.ktor.util.pipeline.PipelineContext import no.nav.tms.token.support.idporten.sidecar.user.IdportenUser import no.nav.tms.token.support.idporten.sidecar.user.IdportenUserFactory @@ -40,8 +38,8 @@ fun Route.bjellevarsler(varselConsumer: VarselConsumer) { private val ApplicationRequest.preferertSpraak get() = queryParameters["preferert_spraak"]?.lowercase() -private val PipelineContext.idportenUser: IdportenUser +private val RoutingContext.idportenUser: IdportenUser get() = IdportenUserFactory.createIdportenUser(this.call) -private val PipelineContext.tokenxUser: TokenXUser +private val RoutingContext.tokenxUser: TokenXUser get() = TokenXUserFactory.createTokenXUser(this.call) diff --git a/src/main/kotlin/no/nav/tms/varsel/api/varselApi.kt b/src/main/kotlin/no/nav/tms/varsel/api/varselApi.kt index 5e0d180..25bb725 100644 --- a/src/main/kotlin/no/nav/tms/varsel/api/varselApi.kt +++ b/src/main/kotlin/no/nav/tms/varsel/api/varselApi.kt @@ -93,7 +93,7 @@ fun Application.varselApi( typealias TokenXLoa = no.nav.tms.token.support.tokenx.validation.LevelOfAssurance private fun Application.configureShutdownHook(httpClient: HttpClient) { - environment.monitor.subscribe(ApplicationStopping) { + monitor.subscribe(ApplicationStopping) { httpClient.close() } } diff --git a/src/test/kotlin/no/nav/tms/varsel/api/VarselbjelleRoutesTest.kt b/src/test/kotlin/no/nav/tms/varsel/api/VarselbjelleRoutesTest.kt index cdbe788..7594e9c 100644 --- a/src/test/kotlin/no/nav/tms/varsel/api/VarselbjelleRoutesTest.kt +++ b/src/test/kotlin/no/nav/tms/varsel/api/VarselbjelleRoutesTest.kt @@ -30,7 +30,7 @@ class VarselbjelleRoutesTest { setupVarselAuthority(aktiveVarslerFromEventHandler = varsler) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.get("/varselbjelle/varsler").apply { @@ -67,7 +67,7 @@ class VarselbjelleRoutesTest { setupVarselAuthority(aktiveVarslerFromEventHandler = varsler) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.get("/bjellevarsler").apply { @@ -96,7 +96,7 @@ class VarselbjelleRoutesTest { setupVarselAuthority(expectedSpraakkodeParam = "en") mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.get("/bjellevarsler?preferert_spraak=en").apply { diff --git a/src/test/kotlin/no/nav/tms/varsel/api/`VarselAuthority.Varsel`RoutesTest.kt b/src/test/kotlin/no/nav/tms/varsel/api/`VarselAuthority.Varsel`RoutesTest.kt index da00a4f..6355ced 100644 --- a/src/test/kotlin/no/nav/tms/varsel/api/`VarselAuthority.Varsel`RoutesTest.kt +++ b/src/test/kotlin/no/nav/tms/varsel/api/`VarselAuthority.Varsel`RoutesTest.kt @@ -56,7 +56,7 @@ class VarselRoutesTest { mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) val response = client.get("/alle") @@ -83,7 +83,7 @@ class VarselRoutesTest { setupVarselAuthority(inaktiveVarslerFromEventHandler = varsler) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) val response = client.get("/inaktive") @@ -127,7 +127,7 @@ class VarselRoutesTest { setupVarselAuthority(aktiveVarslerFromEventHandler = varsler) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) val response = client.get("/aktive") @@ -160,7 +160,7 @@ class VarselRoutesTest { ) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_3) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.SUBSTANTIAL) ) val response = client.get("/aktive") @@ -195,7 +195,7 @@ class VarselRoutesTest { setupVarselAuthority(aktiveVarslerFromEventHandler = varsler) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) val response = client.get("/antall/aktive") @@ -230,7 +230,7 @@ class VarselRoutesTest { mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.post("/beskjed/inaktiver") { header(HttpHeaders.ContentType, ContentType.Application.Json) @@ -249,7 +249,7 @@ class VarselRoutesTest { setupVarselAuthority(aktiveVarslerFromEventHandler = listOf(beskjed), inaktiveVarslerFromEventHandler = listOf(oppgave)) mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) val aktiveVarsler: AktiveVarsler = client.get("/aktive").bodyFromJson() @@ -304,7 +304,7 @@ class VarselRoutesTest { mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.post("/beskjed/inaktiver") { header(HttpHeaders.ContentType, ContentType.Application.Json) @@ -320,7 +320,7 @@ class VarselRoutesTest { setupVarselAuthority(expectedSpraakkodeParam = "en") mockVarselApi( varselConsumer = setupVarselConsumer(), - authMockInstaller = installAuthenticatedMock(LevelOfAssurance.LEVEL_4) + authMockInstaller = installAuthenticatedMock(LevelOfAssurance.HIGH) ) client.get("/aktive?preferert_spraak=en").apply { diff --git a/src/test/kotlin/no/nav/tms/varsel/api/varselTestData.kt b/src/test/kotlin/no/nav/tms/varsel/api/varselTestData.kt index fcda96a..3171fb9 100644 --- a/src/test/kotlin/no/nav/tms/varsel/api/varselTestData.kt +++ b/src/test/kotlin/no/nav/tms/varsel/api/varselTestData.kt @@ -180,7 +180,5 @@ fun installAuthenticatedMock( private fun LevelOfAssurance.toTokenxLoa() = when(this) { LevelOfAssurance.SUBSTANTIAL -> no.nav.tms.token.support.tokenx.validation.mock.LevelOfAssurance.SUBSTANTIAL - LevelOfAssurance.LEVEL_3 -> no.nav.tms.token.support.tokenx.validation.mock.LevelOfAssurance.SUBSTANTIAL LevelOfAssurance.HIGH -> no.nav.tms.token.support.tokenx.validation.mock.LevelOfAssurance.HIGH - LevelOfAssurance.LEVEL_4 -> no.nav.tms.token.support.tokenx.validation.mock.LevelOfAssurance.HIGH }