Skip to content

Commit b2010c7

Browse files
committed
wip
1 parent f412209 commit b2010c7

13 files changed

+47
-78
lines changed
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Build & Deploy
2+
on:
3+
push:
4+
workflow_dispatch:
5+
6+
jobs:
7+
jar-app:
8+
uses: navikt/teamesyfo-github-actions-workflows/.github/workflows/jar-app.yaml@main
9+
permissions:
10+
actions: read
11+
contents: write
12+
security-events: write
13+
packages: write
14+
id-token: write
15+
secrets: inherit
16+
with:
17+
app: esyfovarsel

.github/workflows/deploy-app.yml

-19
This file was deleted.

naiserator-dev.yaml nais/nais-dev.yaml

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ apiVersion: "nais.io/v1alpha1"
22
kind: "Application"
33
metadata:
44
name: dinesykmeldte-backend
5-
namespace: teamsykmelding
5+
namespace: team-esyfo
66
labels:
7-
team: teamsykmelding
7+
team: team-esyfo
88
spec:
99
image: {{ image }}
1010
gcp:
@@ -62,9 +62,6 @@ spec:
6262
enabled: true
6363
tenant: trygdeetaten.no
6464
accessPolicy:
65-
inbound:
66-
rules:
67-
- application: dinesykmeldte
6865
outbound:
6966
rules:
7067
- application: flex-syketilfelle

src/main/kotlin/no/nav/syfo/Application.kt

+8-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@ package no.nav.syfo
33
import io.ktor.server.application.Application
44
import io.ktor.server.engine.embeddedServer
55
import io.ktor.server.netty.Netty
6+
import no.nav.syfo.plugins.configureContentNegotiation
67
import no.nav.syfo.plugins.configureDependencies
78
import no.nav.syfo.plugins.configureLifecycleHooks
89
import no.nav.syfo.plugins.configureNaisResources
910
import no.nav.syfo.plugins.configurePrometheus
11+
import no.nav.syfo.plugins.configureRouting
12+
import no.nav.syfo.plugins.configureRunningTasks
13+
import no.nav.syfo.plugins.setupAuth
1014
import org.koin.ktor.ext.get
1115

1216
fun main() {
@@ -16,10 +20,10 @@ fun main() {
1620
fun Application.module() {
1721
configureDependencies()
1822
configurePrometheus()
19-
// configureContentNegotiation()
20-
// setupAuth(get())
23+
configureContentNegotiation()
24+
setupAuth(get())
2125
configureNaisResources(get())
2226
configureLifecycleHooks(get())
23-
// configureRouting()
24-
// configureRunningTasks(get(), get())
27+
configureRouting()
28+
configureRunningTasks(get(), get())
2529
}

src/main/kotlin/no/nav/syfo/Environment.kt

+2-10
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ data class Environment(
55
val applicationName: String = getEnvVar("NAIS_APP_NAME", "dinesykmeldte-backend"),
66
val tokenXWellKnownUrl: String = getEnvVar("TOKEN_X_WELL_KNOWN_URL"),
77
val dineSykmeldteBackendTokenXClientId: String = getEnvVar("TOKEN_X_CLIENT_ID"),
8-
val databaseUsername: String = getEnvVar("NAIS_DATABASE_USERNAME"),
9-
val databasePassword: String = getEnvVar("NAIS_DATABASE_PASSWORD"),
10-
val dbHost: String = getEnvVar("NAIS_DATABASE_HOST"),
11-
val dbPort: String = getEnvVar("NAIS_DATABASE_PORT"),
12-
val dbName: String = getEnvVar("NAIS_DATABASE_DATABASE"),
138
val cluster: String = getEnvVar("NAIS_CLUSTER_NAME"),
149
val nlResponseTopic: String = "teamsykmelding.syfo-narmesteleder",
1510
val pdlGraphqlPath: String = getEnvVar("PDL_GRAPHQL_PATH"),
@@ -25,11 +20,8 @@ data class Environment(
2520
getEnvVar("SYKETILLFELLE_ENDPOINT_URL", "http://flex-syketilfelle.flex"),
2621
val syketilfelleScope: String = getEnvVar("SYKETILLFELLE_SCOPE"),
2722
val electorPath: String = getEnvVar("ELECTOR_PATH"),
28-
) {
29-
fun jdbcUrl(): String {
30-
return "jdbc:postgresql://$dbHost:$dbPort/$dbName"
31-
}
32-
}
23+
val dbUrl: String = getEnvVar("NAIS_DATABASE_JDBC_URL"),
24+
)
3325

3426
fun getEnvVar(varName: String, defaultValue: String? = null) =
3527
System.getenv(varName)

src/main/kotlin/no/nav/syfo/application/database/Database.kt

+5-6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import java.net.ConnectException
77
import java.net.SocketException
88
import java.sql.Connection
99
import java.sql.ResultSet
10+
import javax.sql.DataSource
1011
import no.nav.syfo.Environment
1112
import no.nav.syfo.util.logger
1213
import org.flywaydb.core.Flyway
@@ -29,9 +30,7 @@ class Database(private val env: Environment, retries: Long = 30, sleepTime: Long
2930
tempDatasource =
3031
HikariDataSource(
3132
HikariConfig().apply {
32-
jdbcUrl = env.jdbcUrl()
33-
username = env.databaseUsername
34-
password = env.databasePassword
33+
jdbcUrl = env.dbUrl
3534
maximumPoolSize = 5
3635
minimumIdle = 3
3736
isAutoCommit = false
@@ -54,13 +53,13 @@ class Database(private val env: Environment, retries: Long = 30, sleepTime: Long
5453
throw RuntimeException("Could not connect to DB")
5554
}
5655
dataSource = tempDatasource
57-
runFlywayMigrations()
56+
runFlywayMigrations(dataSource)
5857
}
5958

60-
private fun runFlywayMigrations() =
59+
private fun runFlywayMigrations(dataSource: DataSource) =
6160
Flyway.configure().run {
6261
locations("db")
63-
dataSource(env.jdbcUrl(), env.databaseUsername, env.databasePassword)
62+
dataSource(dataSource)
6463
load().migrate()
6564
}
6665
}

src/main/kotlin/no/nav/syfo/plugins/DependencyInjection.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ fun Application.configureDependencies() {
6060

6161
modules(
6262
applicationStateModule(),
63-
/*environmentModule(),
63+
environmentModule(),
6464
httpClient(),
6565
authModule(),
6666
databaseModule(),
6767
servicesModule(),
68-
commonKafkaConsumer(),*/
68+
commonKafkaConsumer(),
6969
)
7070
}
7171
}
@@ -102,10 +102,10 @@ private fun commonKafkaConsumer() = module {
102102
KafkaConsumer(
103103
KafkaUtils.getKafkaConfig("dinesykmeldte-backend-consumer")
104104
.also {
105-
it[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = "none"
105+
it[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = "earliest"
106106
it[ConsumerConfig.MAX_POLL_RECORDS_CONFIG] = 100
107107
}
108-
.toConsumerConfig("dinesykmeldte-backend", StringDeserializer::class),
108+
.toConsumerConfig("esyfo-dinesykmeldte-backend", StringDeserializer::class),
109109
StringDeserializer(),
110110
StringDeserializer(),
111111
)

src/main/resources/db/V17__grant_privileges_dinesykmeldte_write_user.sql

-1
This file was deleted.

src/main/resources/db/V20__grant_access_to_dinesykmeldte_kafka_user.sql

-11
This file was deleted.

src/main/resources/db/V21__grant_all_privileges_dinesykmeldte_kafka_user.sql

-1
This file was deleted.

src/main/resources/db/V27__revoke_access_for_dinesykmeldte_kafka.sql

-5
This file was deleted.

src/test/kotlin/no/nav/syfo/util/TestDb.kt

+9-10
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,15 @@ class TestDb private constructor() {
3838
psqlContainer =
3939
PsqlContainer()
4040
.withExposedPorts(5432)
41-
.withUsername("username")
41+
.withUsername("user")
4242
.withPassword("password")
4343
.withDatabaseName("dinesykmeldte-backend")
4444
.withInitScript("db/testdb-init.sql")
4545

4646
psqlContainer.start()
4747
val mockEnv = mockk<Environment>(relaxed = true)
48-
every { mockEnv.databaseUsername } returns "username"
49-
every { mockEnv.databasePassword } returns "password"
50-
every { mockEnv.jdbcUrl() } returns psqlContainer.jdbcUrl
48+
every { mockEnv.dbUrl } returns
49+
"${psqlContainer.jdbcUrl}&user=${psqlContainer.username}&password=${psqlContainer.password}"
5150
database = Database(mockEnv)
5251
} catch (ex: Exception) {
5352
throw ex
@@ -265,16 +264,16 @@ fun DatabaseInterface.insertHendelse(hendelseDbModel: HendelseDbModel) {
265264
preparedStatement.setString(6, hendelseDbModel.tekst)
266265
preparedStatement.setTimestamp(
267266
7,
268-
Timestamp.from(hendelseDbModel.timestamp.toInstant())
267+
Timestamp.from(hendelseDbModel.timestamp.toInstant()),
269268
)
270269
preparedStatement.setTimestamp(
271270
8,
272-
hendelseDbModel.utlopstidspunkt?.let { Timestamp.from(it.toInstant()) }
271+
hendelseDbModel.utlopstidspunkt?.let { Timestamp.from(it.toInstant()) },
273272
)
274273
preparedStatement.setBoolean(9, hendelseDbModel.ferdigstilt)
275274
preparedStatement.setTimestamp(
276275
10,
277-
hendelseDbModel.ferdigstiltTimestamp?.let { Timestamp.from(it.toInstant()) }
276+
hendelseDbModel.ferdigstiltTimestamp?.let { Timestamp.from(it.toInstant()) },
278277
)
279278
preparedStatement.setObject(11, hendelseDbModel.hendelseId)
280279
preparedStatement.executeUpdate()
@@ -320,7 +319,7 @@ fun DatabaseInterface.insertOrUpdate(soknadDbModel: SoknadDbModel) {
320319
preparedStatement.setBoolean(7, soknadDbModel.lest)
321320
preparedStatement.setTimestamp(
322321
8,
323-
Timestamp.from(soknadDbModel.timestamp.toInstant())
322+
Timestamp.from(soknadDbModel.timestamp.toInstant()),
324323
)
325324
preparedStatement.setObject(9, soknadDbModel.tom)
326325
preparedStatement.executeUpdate()
@@ -374,7 +373,7 @@ fun DatabaseInterface.insertOrUpdate(
374373
preparedStatement.setBoolean(6, sykmeldingDbModel.lest)
375374
preparedStatement.setTimestamp(
376375
7,
377-
Timestamp.from(sykmeldingDbModel.timestamp.toInstant())
376+
Timestamp.from(sykmeldingDbModel.timestamp.toInstant()),
378377
)
379378
preparedStatement.setObject(8, sykmeldingDbModel.latestTom)
380379
preparedStatement.setTimestamp(9, sendtTilArbeidsgiverDato)
@@ -386,7 +385,7 @@ fun DatabaseInterface.insertOrUpdate(
386385
preparedStatement.setBoolean(14, sykmeldingDbModel.lest)
387386
preparedStatement.setTimestamp(
388387
15,
389-
Timestamp.from(sykmeldingDbModel.timestamp.toInstant())
388+
Timestamp.from(sykmeldingDbModel.timestamp.toInstant()),
390389
)
391390
preparedStatement.setObject(16, sykmeldingDbModel.latestTom)
392391
preparedStatement.setTimestamp(17, sendtTilArbeidsgiverDato)

src/test/resources/db/testdb-init.sql

-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
11
create role cloudsqliamuser;
2-
create role "dinesykmeldte-write-user";
3-
create role "dinesykmeldte-kafka-user";

0 commit comments

Comments
 (0)