engine/build.gradle.kts
Rama main · réplica de lectura del repositorio original.
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
// :engine — SQL parse + field-level lineage via the sqlglot-go probe, called in-process through its
// JVM binding (:analyzer:jvm, FFM → a Go c-shared lib). The analysis core shared by the proxy
// (audit/enforcement decisions) and the control plane (policy evaluation). Bytecode targets JVM 24
// (the root build pins Java --release 24), so building it needs JDK 24 or newer.
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}
dependencies {
api("org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0")
// Layer-1 analyzer: the column-lineage probe via its in-repo JVM binding (FFM → Go c-shared lib).
// The probe (analyzer/) and this binding (analyzer/jvm) live in this repo; see settings.gradle.kts.
implementation(project(":analyzer:jvm"))
// The gRPC wire types are used AS the data classes across the engine and control plane (proto types
// are safe beyond the gRPC boundary): ColumnMask is proto ColumnMask, so masking speaks proto directly.
api(project(":proto"))
testImplementation(kotlin("test"))
}
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_24)
}
}
tasks.test {
useJUnitPlatform()
// The native-access jvmArg the FFM binding needs is configured for every module's Test task in the
// root build; :engine depends on :analyzer:jvm, whose processResources builds + bundles the lib.
}