Establish secure account and managed AI backend
Provide the production foundation for Apple identity, immutable credits, referrals, integrity checks, managed providers, and hardened Docker deployment.
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
|
||||
plugins {
|
||||
kotlin("jvm") version "2.4.10"
|
||||
kotlin("plugin.serialization") version "2.4.10"
|
||||
id("io.ktor.plugin") version "3.5.2"
|
||||
application
|
||||
jacoco
|
||||
}
|
||||
|
||||
group = "com.osglab.account"
|
||||
version = "0.1.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
application {
|
||||
mainClass.set("io.ktor.server.netty.EngineMain")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvmToolchain(21)
|
||||
compilerOptions {
|
||||
jvmTarget.set(JvmTarget.JVM_21)
|
||||
freeCompilerArgs.add("-Xjsr305=strict")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val ktorVersion = "3.5.2"
|
||||
val exposedVersion = "1.4.0"
|
||||
val flywayVersion = "13.3.0"
|
||||
|
||||
implementation("io.ktor:ktor-server-core-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-netty-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-content-negotiation-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-serialization-kotlinx-json-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-auth-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-auth-jwt-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-status-pages-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-call-logging-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-rate-limit-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-websockets-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-forwarded-header-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-config-yaml-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-call-id-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-default-headers-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-compression-jvm:$ktorVersion")
|
||||
|
||||
implementation("io.ktor:ktor-client-core-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-cio-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-content-negotiation-jvm:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-websockets-jvm:$ktorVersion")
|
||||
|
||||
implementation("io.insert-koin:koin-ktor:4.2.2")
|
||||
implementation("io.insert-koin:koin-logger-slf4j:4.2.2")
|
||||
|
||||
implementation("org.jetbrains.exposed:exposed-core:$exposedVersion")
|
||||
implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion")
|
||||
implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion")
|
||||
implementation("com.zaxxer:HikariCP:7.1.0")
|
||||
implementation("com.mysql:mysql-connector-j:26.7.0")
|
||||
implementation("org.flywaydb:flyway-core:$flywayVersion")
|
||||
implementation("org.flywaydb:flyway-mysql:$flywayVersion")
|
||||
|
||||
implementation("com.auth0:java-jwt:4.6.0")
|
||||
implementation("com.nimbusds:nimbus-jose-jwt:10.9.1")
|
||||
implementation("ch.veehait.devicecheck:devicecheck-appattest:0.9.6")
|
||||
implementation("org.bouncycastle:bcprov-jdk18on:1.85.2")
|
||||
implementation("com.upokecenter:cbor:4.5.6")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.11.0")
|
||||
implementation("ch.qos.logback:logback-classic:1.6.3")
|
||||
|
||||
testImplementation("io.ktor:ktor-server-test-host-jvm:$ktorVersion")
|
||||
testImplementation("io.ktor:ktor-client-mock-jvm:$ktorVersion")
|
||||
testImplementation(kotlin("test"))
|
||||
testImplementation("io.kotest:kotest-runner-junit5-jvm:6.2.4")
|
||||
testImplementation("io.kotest:kotest-assertions-core-jvm:6.2.4")
|
||||
testImplementation("io.mockk:mockk-jvm:1.14.11")
|
||||
testImplementation("org.testcontainers:mysql:1.21.4")
|
||||
testImplementation("org.testcontainers:junit-jupiter:1.21.4")
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
useJUnitPlatform()
|
||||
finalizedBy(tasks.jacocoTestReport)
|
||||
}
|
||||
|
||||
jacoco {
|
||||
toolVersion = "0.8.15"
|
||||
}
|
||||
|
||||
tasks.jacocoTestReport {
|
||||
dependsOn(tasks.test)
|
||||
reports {
|
||||
xml.required.set(true)
|
||||
html.required.set(true)
|
||||
}
|
||||
}
|
||||
|
||||
ktor {
|
||||
fatJar {
|
||||
archiveFileName.set("osg-account-server.jar")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user