group = "space.nstart.pcp" plugins { kotlin("jvm") kotlin("plugin.spring") id("org.springframework.boot") id("io.spring.dependency-management") } version = "0.0.1" java { toolchain { languageVersion = JavaLanguageVersion.of((property("versions.java") as String).toInt()) } } kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict") } } dependencies { // Реактивный edge: Spring Cloud Gateway (WebFlux-вариант) + конфиг из config-server. // Маршруты живут в config-repo/pcp-gateway-service.yaml — единый источник правды. implementation("org.springframework.cloud:spring-cloud-starter-gateway-server-webflux") implementation("org.springframework.cloud:spring-cloud-starter-config") implementation("org.springframework.boot:spring-boot-starter-actuator") // Валидация JWT на edge (Keycloak/new-start-id) — включается флагом gateway.security.jwt-enabled. // Тянет reactive Spring Security (ServerHttpSecurity/@EnableWebFluxSecurity). implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server") runtimeOnly("io.micrometer:micrometer-registry-prometheus") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") testImplementation("org.springframework.boot:spring-boot-starter-test") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.withType { useJUnitPlatform() } dependencyManagement { imports { mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("versions.spring.cloud")}") } }