diff --git a/docker-compose.ci.yml b/docker-compose.ci.yml index 990d03db..9fd30fa1 100644 --- a/docker-compose.ci.yml +++ b/docker-compose.ci.yml @@ -3,7 +3,7 @@ services: app: ports: - "8080" - db: + postgres: ports: - "5432" influx: diff --git a/docker-compose.yml b/docker-compose.yml index 382a0cea..150dfb8f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,12 +12,12 @@ services: retries: 5 start_period: 20s depends_on: - - db + - postgres - influx environment: bss.file-api.url: "http://mock-file-api:8080" spring.security.user.password: "password" - spring.datasource.url: "jdbc:postgresql://db:5432/postgres?currentSchema=bss_web" + spring.datasource.url: "jdbc:postgresql://postgres:5432/postgres?currentSchema=bss_web" spring.datasource.username: "postgres" spring.datasource.password: "postgres" spring.flyway.default-schema: "bss_web" @@ -27,7 +27,7 @@ services: management.influx.metrics.export.user-name: "user" management.influx.metrics.export.password: "password" management.influx.metrics.export.bucket: "bucket" - db: + postgres: image: "postgres:16.0-alpine3.18" environment: POSTGRES_PASSWORD: "postgres" diff --git a/integration/src/intTest/kotlin/hu/bsstudio/bssweb/event/integration/DeleteEventIntegrationTest.kt b/integration/src/intTest/kotlin/hu/bsstudio/bssweb/event/integration/DeleteEventIntegrationTest.kt index a4b42616..dbf2d3c7 100644 --- a/integration/src/intTest/kotlin/hu/bsstudio/bssweb/event/integration/DeleteEventIntegrationTest.kt +++ b/integration/src/intTest/kotlin/hu/bsstudio/bssweb/event/integration/DeleteEventIntegrationTest.kt @@ -3,7 +3,10 @@ package hu.bsstudio.bssweb.event.integration import hu.bsstudio.bssweb.IntegrationTest import hu.bsstudio.bssweb.event.client.EventClient import hu.bsstudio.bssweb.event.entity.DetailedEventEntity +import hu.bsstudio.bssweb.eventvideo.entity.EventVideoEntity +import hu.bsstudio.bssweb.video.entity.DetailedVideoEntity import io.kotest.matchers.equals.shouldBeEqual +import io.kotest.matchers.longs.shouldBeZero import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatusCode @@ -28,4 +31,17 @@ class DeleteEventIntegrationTest( actual.statusCode shouldBeEqual HttpStatusCode.valueOf(204) } + + @Test + fun `it should return 204 when event has video attached`() { + val eventEntity = eventRepository.save(DetailedEventEntity(url = "url", title = "title")) + val videoEntity = videoRepository.save(DetailedVideoEntity(url = "url", title = "title")) + eventVideoRepository.save(EventVideoEntity(eventId = eventEntity.id, videoId = videoEntity.id)) + + val actual = client.deleteEvent(eventEntity.id) + + actual.statusCode shouldBeEqual HttpStatusCode.valueOf(204) + videoRepository.count().shouldBeEqual(1) + eventVideoRepository.count().shouldBeZero() + } } diff --git a/server/data/src/main/kotlin/hu/bsstudio/bssweb/videocrew/entity/DetailedVideoCrewEntity.kt b/server/data/src/main/kotlin/hu/bsstudio/bssweb/videocrew/entity/DetailedVideoCrewEntity.kt index 7624c743..8b09a3cc 100644 --- a/server/data/src/main/kotlin/hu/bsstudio/bssweb/videocrew/entity/DetailedVideoCrewEntity.kt +++ b/server/data/src/main/kotlin/hu/bsstudio/bssweb/videocrew/entity/DetailedVideoCrewEntity.kt @@ -12,11 +12,13 @@ import org.hibernate.Hibernate @Table(name = "crew") data class DetailedVideoCrewEntity( @EmbeddedId - var id: VideoCrewEntityId, + var id: VideoCrewEntityId +) { + @ManyToOne @JoinColumn(insertable = false, updatable = false) - var member: SimpleMemberEntity -) { + lateinit var member: SimpleMemberEntity + override fun equals(other: Any?): Boolean { if (this === other) return true if (other == null || Hibernate.getClass(this) != Hibernate.getClass(other)) return false diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/TestEntityManagerDsl.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/TestEntityManagerDsl.kt new file mode 100644 index 00000000..6c175c67 --- /dev/null +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/TestEntityManagerDsl.kt @@ -0,0 +1,15 @@ +package hu.bsstudio.bssweb + +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager + +inline fun TestEntityManager.find(primaryKey: Any?): T { + return this.find(T::class.java, primaryKey) +} + +inline fun TestEntityManager.persistAndGetId(entity: Any): T { + return this.persistAndGetId(entity, T::class.java) +} + +inline fun TestEntityManager.getId(entity: Any): T { + return this.getId(entity, T::class.java) +} diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/DetailedEventRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/DetailedEventRepositoryTest.kt index 31438d5e..85c9bee9 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/DetailedEventRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/DetailedEventRepositoryTest.kt @@ -3,14 +3,14 @@ package hu.bsstudio.bssweb.event.repository import hu.bsstudio.bssweb.event.entity.DetailedEventEntity import hu.bsstudio.bssweb.event.entity.SimpleEventEntity import hu.bsstudio.bssweb.eventvideo.entity.EventVideoEntity -import hu.bsstudio.bssweb.eventvideo.repository.EventVideoRepository +import hu.bsstudio.bssweb.find +import hu.bsstudio.bssweb.persistAndGetId import hu.bsstudio.bssweb.video.entity.SimpleVideoEntity -import hu.bsstudio.bssweb.video.repository.SimpleVideoRepository import io.kotest.matchers.equality.shouldBeEqualToComparingFields import io.kotest.matchers.longs.shouldBeZero +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.optional.shouldBeEmpty import io.kotest.matchers.optional.shouldBePresent -import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase @@ -23,11 +23,9 @@ import java.util.UUID @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class DetailedEventRepositoryTest( @Autowired private val underTest: DetailedEventRepository, - @Autowired private val simpleEventRepository: SimpleEventRepository, - @Autowired private val simpleVideoRepository: SimpleVideoRepository, - @Autowired private val eventVideoRepository: EventVideoRepository, @Autowired private val entityManager: TestEntityManager ) { + @Test internal fun `create read delete`() { underTest.count().shouldBeZero() @@ -40,24 +38,26 @@ class DetailedEventRepositoryTest( underTest.findById(id) shouldBePresent { it shouldBeEqualToComparingFields expected } underTest.deleteById(id) + entityManager.flush() + underTest.findById(id).shouldBeEmpty() } @Test internal fun `create read delete with video`() { - val eventId = simpleEventRepository.save(SimpleEventEntity(url = URL, title = TITLE)).id - val video = simpleVideoRepository.save(SimpleVideoEntity(url = "url", title = "title")) + val eventId = entityManager.persistAndGetId(SimpleEventEntity(url = URL, title = TITLE)) + val video = entityManager.persist(SimpleVideoEntity(url = "url", title = "title")) + entityManager.persistAndFlush(EventVideoEntity(eventId = eventId, videoId = video.id)) - eventVideoRepository.save(EventVideoEntity(eventId = eventId, videoId = video.id)) - entityManager.run { flush(); clear() } - - val actual = underTest.findById(eventId).orElseThrow() + val actual = underTest.findById(eventId) val expected = createExpected(eventId, listOf(video)) - actual.shouldBeEqualToComparingFields(expected) + actual shouldBePresent { it shouldBeEqualToComparingFields expected } underTest.deleteById(eventId) + entityManager.flush() + underTest.findById(eventId).shouldBeEmpty() - simpleVideoRepository.count().shouldBe(1L) + entityManager.find(video.id).shouldNotBeNull() } private fun createExpected(id: UUID, videos: List = emptyList()) = diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/EventRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/EventRepositoryTest.kt index 0a9df681..7e12ec31 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/EventRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/event/repository/EventRepositoryTest.kt @@ -9,12 +9,14 @@ import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager import java.time.LocalDate @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class EventRepositoryTest( - @Autowired private val underTest: SimpleEventRepository + @Autowired private val underTest: SimpleEventRepository, + @Autowired private val entityManager: TestEntityManager ) { @Test @@ -36,6 +38,8 @@ class EventRepositoryTest( } underTest.deleteById(id) + entityManager.flush() + underTest.findById(id).shouldBeEmpty() } diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/eventvideo/repository/EventVideoRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/eventvideo/repository/EventVideoRepositoryTest.kt index 0cdc4745..86fc7283 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/eventvideo/repository/EventVideoRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/eventvideo/repository/EventVideoRepositoryTest.kt @@ -1,31 +1,32 @@ package hu.bsstudio.bssweb.eventvideo.repository import hu.bsstudio.bssweb.event.entity.SimpleEventEntity -import hu.bsstudio.bssweb.event.repository.SimpleEventRepository import hu.bsstudio.bssweb.eventvideo.entity.EventVideoEntity +import hu.bsstudio.bssweb.find +import hu.bsstudio.bssweb.persistAndGetId import hu.bsstudio.bssweb.video.entity.SimpleVideoEntity -import hu.bsstudio.bssweb.video.repository.SimpleVideoRepository import io.kotest.matchers.equality.shouldBeEqualToComparingFields +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.optional.shouldBeEmpty import io.kotest.matchers.optional.shouldBePresent -import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager +import java.util.UUID @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class EventVideoRepositoryTest( - @Autowired private val eventRepository: SimpleEventRepository, - @Autowired private val videoRepository: SimpleVideoRepository, - @Autowired private val underTest: EventVideoRepository + @Autowired private val underTest: EventVideoRepository, + @Autowired private val entityManager: TestEntityManager ) { @Test fun `create read delete`() { - val videoId = videoRepository.save(SimpleVideoEntity(url = "url", title = "title")).id - val eventId = eventRepository.save(SimpleEventEntity(url = "url", title = "title")).id + val videoId = entityManager.persistAndGetId(SimpleVideoEntity(url = "url", title = "title")) + val eventId = entityManager.persistAndGetId(SimpleEventEntity(url = "url", title = "title")) val entity = EventVideoEntity(eventId, videoId) underTest.save(entity) @@ -33,8 +34,10 @@ class EventVideoRepositoryTest( underTest.findById(entity) shouldBePresent { it shouldBeEqualToComparingFields entity } underTest.deleteById(entity) + entityManager.flush() + underTest.findById(entity).shouldBeEmpty() - videoRepository.count().shouldBe(1L) - eventRepository.count().shouldBe(1L) + entityManager.find(videoId).shouldNotBeNull() + entityManager.find(eventId).shouldNotBeNull() } } diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/member/repository/MemberRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/member/repository/MemberRepositoryTest.kt index b569eb36..e5fab874 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/member/repository/MemberRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/member/repository/MemberRepositoryTest.kt @@ -10,12 +10,14 @@ import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager import java.time.LocalDate @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class MemberRepositoryTest( - @Autowired private val underTest: MemberRepository + @Autowired private val underTest: MemberRepository, + @Autowired private val entityManager: TestEntityManager ) { @Test fun `create read delete`() { @@ -40,6 +42,8 @@ class MemberRepositoryTest( } underTest.deleteById(id) + entityManager.flush() + underTest.findById(id).shouldBeEmpty() } diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/DetailedVideoRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/DetailedVideoRepositoryTest.kt index dd75c053..02a2632a 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/DetailedVideoRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/DetailedVideoRepositoryTest.kt @@ -1,14 +1,6 @@ package hu.bsstudio.bssweb.video.repository -import hu.bsstudio.bssweb.member.entity.DetailedMemberEntity -import hu.bsstudio.bssweb.member.entity.SimpleMemberEntity -import hu.bsstudio.bssweb.member.repository.MemberRepository import hu.bsstudio.bssweb.video.entity.DetailedVideoEntity -import hu.bsstudio.bssweb.video.entity.SimpleVideoEntity -import hu.bsstudio.bssweb.videocrew.entity.DetailedVideoCrewEntity -import hu.bsstudio.bssweb.videocrew.entity.VideoCrewEntity -import hu.bsstudio.bssweb.videocrew.entity.VideoCrewEntityId -import hu.bsstudio.bssweb.videocrew.repository.VideoCrewRepository import io.kotest.matchers.equality.shouldBeEqualToComparingFields import io.kotest.matchers.longs.shouldBeZero import io.kotest.matchers.optional.shouldBeEmpty @@ -25,9 +17,6 @@ import java.util.UUID @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class DetailedVideoRepositoryTest( @Autowired private val underTest: DetailedVideoRepository, - @Autowired private val memberRepository: MemberRepository, - @Autowired private val simpleVideoRepository: SimpleVideoRepository, - @Autowired private val videoCrewRepository: VideoCrewRepository, @Autowired private val entityManager: TestEntityManager ) { @Test @@ -42,28 +31,12 @@ class DetailedVideoRepositoryTest( underTest.findById(id) shouldBePresent { it shouldBeEqualToComparingFields expected } underTest.deleteById(id) - underTest.findById(id).shouldBeEmpty() - } - - @Test - internal fun `create read delete with crew`() { - val memberId = DetailedMemberEntity(name = MEMBER_NAME, url = MEMBER_URL, nickname = MEMBER_NICKNAME) - .let { this.memberRepository.save(it) } - .id - val videoId = SimpleVideoEntity(url = URL, title = TITLE) - .let { this.simpleVideoRepository.save(it) } - .id - val videoCrewId = VideoCrewEntityId(videoId, "cameraman", memberId) - this.videoCrewRepository.save(VideoCrewEntity(videoCrewId)) - entityManager.run { flush(); clear() } + entityManager.flush() - val expected = createExpected(videoId, listOf(DetailedVideoCrewEntity(videoCrewId, SimpleMemberEntity(MEMBER_NAME, MEMBER_NICKNAME).apply { id = memberId }))) - underTest.findById(videoId) - .shouldBePresent() - .shouldBeEqualToComparingFields(expected) + underTest.findById(id).shouldBeEmpty() } - private fun createExpected(id: UUID, videoCrew: List = emptyList()) = + private fun createExpected(id: UUID) = DetailedVideoEntity( url = URL, title = TITLE, @@ -72,14 +45,11 @@ class DetailedVideoRepositoryTest( visible = false ).apply { this.id = id - this.videoCrew = videoCrew + this.videoCrew = emptyList() } private companion object { private const val URL = "szobakommando" private const val TITLE = "Szobakommando" - private const val MEMBER_NAME = "Bence Csik" - private const val MEMBER_URL = "bcsik" - private const val MEMBER_NICKNAME = "CséBé" } } diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/SimpleVideoRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/SimpleVideoRepositoryTest.kt index 7c184522..8de69d8e 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/SimpleVideoRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/video/repository/SimpleVideoRepositoryTest.kt @@ -9,12 +9,14 @@ import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager import java.time.LocalDate @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class SimpleVideoRepositoryTest( - @Autowired private val underTest: SimpleVideoRepository + @Autowired private val underTest: SimpleVideoRepository, + @Autowired private val entityManager: TestEntityManager ) { @Test @@ -36,6 +38,8 @@ class SimpleVideoRepositoryTest( } underTest.deleteById(id) + entityManager.flush() + underTest.findById(id).shouldBeEmpty() } diff --git a/server/data/src/test/kotlin/hu/bsstudio/bssweb/videocrew/repository/VideoCrewRepositoryTest.kt b/server/data/src/test/kotlin/hu/bsstudio/bssweb/videocrew/repository/VideoCrewRepositoryTest.kt index 142ce86c..d1bf2238 100644 --- a/server/data/src/test/kotlin/hu/bsstudio/bssweb/videocrew/repository/VideoCrewRepositoryTest.kt +++ b/server/data/src/test/kotlin/hu/bsstudio/bssweb/videocrew/repository/VideoCrewRepositoryTest.kt @@ -1,41 +1,44 @@ package hu.bsstudio.bssweb.videocrew.repository +import hu.bsstudio.bssweb.find import hu.bsstudio.bssweb.member.entity.DetailedMemberEntity -import hu.bsstudio.bssweb.member.repository.MemberRepository +import hu.bsstudio.bssweb.persistAndGetId import hu.bsstudio.bssweb.video.entity.SimpleVideoEntity -import hu.bsstudio.bssweb.video.repository.SimpleVideoRepository import hu.bsstudio.bssweb.videocrew.entity.VideoCrewEntity import hu.bsstudio.bssweb.videocrew.entity.VideoCrewEntityId import io.kotest.matchers.equality.shouldBeEqualToComparingFields +import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.optional.shouldBeEmpty import io.kotest.matchers.optional.shouldBePresent -import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager +import java.util.UUID @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class VideoCrewRepositoryTest( @Autowired private val underTest: VideoCrewRepository, - @Autowired private val memberRepository: MemberRepository, - @Autowired private val videoRepository: SimpleVideoRepository + @Autowired private val entityManager: TestEntityManager ) { @Test fun `create read delete`() { - val memberId = memberRepository.save(DetailedMemberEntity(url = "url", name = "name")).id - val videoId = videoRepository.save(SimpleVideoEntity(url = "url", title = "title")).id + val memberId = entityManager.persistAndGetId(DetailedMemberEntity(url = "url", name = "name")) + val videoId = entityManager.persistAndGetId(SimpleVideoEntity(url = "url", title = "title")) + val entity = VideoCrewEntity(VideoCrewEntityId(videoId, "cameraMan", memberId)) val id = VideoCrewEntityId(videoId, "cameraMan", memberId) - val entity = VideoCrewEntity(id) underTest.save(entity) underTest.findById(id) shouldBePresent { it shouldBeEqualToComparingFields entity } underTest.deleteById(id) + entityManager.flush() + underTest.findById(id).shouldBeEmpty() - memberRepository.count().shouldBe(1L) - videoRepository.count().shouldBe(1L) + entityManager.find(memberId).shouldNotBeNull() + entityManager.find(videoId).shouldNotBeNull() } } diff --git a/server/service/src/test/kotlin/hu/bsstudio/bssweb/videocrew/mapper/VideoCrewMapperTest.kt b/server/service/src/test/kotlin/hu/bsstudio/bssweb/videocrew/mapper/VideoCrewMapperTest.kt index 92d57baa..88d53875 100644 --- a/server/service/src/test/kotlin/hu/bsstudio/bssweb/videocrew/mapper/VideoCrewMapperTest.kt +++ b/server/service/src/test/kotlin/hu/bsstudio/bssweb/videocrew/mapper/VideoCrewMapperTest.kt @@ -59,6 +59,6 @@ internal class VideoCrewMapperTest( private val VIDEO_CREW_ENTITY_ID = VideoCrewEntityId(VIDEO_ID, POSITION, MEMBER_ID) private val VIDEO_CREW_ENTITY = VideoCrewEntity(VIDEO_CREW_ENTITY_ID) private val MEMBER_ENTITY = SimpleMemberEntity("name", "nickname").apply { id = MEMBER_ID } - private val DETAILED_VIDEO_CREW_ENTITY = DetailedVideoCrewEntity(id = VIDEO_CREW_ENTITY_ID, member = MEMBER_ENTITY) + private val DETAILED_VIDEO_CREW_ENTITY = DetailedVideoCrewEntity(id = VIDEO_CREW_ENTITY_ID).apply { member = MEMBER_ENTITY } } } diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index 4e0a5087..bcd67364 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -3,6 +3,11 @@ spring: name: BSS Web admin API jpa: open-in-view: false + cloud: + discovery: + client: + composite-indicator: + enabled: false springdoc: swagger-ui: url: /open-api.yaml