diff --git a/.github/workflows/backend-check.yml b/.github/workflows/backend-check.yml index e70c0c56f6..0221194d0c 100644 --- a/.github/workflows/backend-check.yml +++ b/.github/workflows/backend-check.yml @@ -36,7 +36,7 @@ jobs: - name: install xmlsec1 and gssapi run: | sudo apt-get update - sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev + sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev libsasl2-dev - uses: actions-rust-lang/setup-rust-toolchain@v1 with: @@ -103,7 +103,7 @@ jobs: - name: install xmlsec1 and gssapi run: | sudo apt-get update - sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev + sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev libsasl2-dev - name: Substitute EE code (EE logic is behind feature flag) run: | diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index fcad6ef314..7ec43d4284 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -78,7 +78,7 @@ jobs: - name: install xmlsec1 and gssapi run: | sudo apt-get update - sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev + sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev libsasl2-dev - uses: actions-rust-lang/setup-rust-toolchain@v1 with: diff --git a/Dockerfile b/Dockerfile index 341cceeb8d..efe09ae9ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -97,7 +97,7 @@ ARG features="" COPY --from=planner /windmill/recipe.json recipe.json -RUN apt-get update && apt-get install -y libxml2-dev=2.9.* libxmlsec1-dev=1.2.* libkrb5-dev clang=1:14.0-55.* libclang-dev=1:14.0-55.* cmake=3.25.* && \ +RUN apt-get update && apt-get install -y libxml2-dev=2.9.* libxmlsec1-dev=1.2.* libkrb5-dev libsasl2-dev clang=1:14.0-55.* libclang-dev=1:14.0-55.* cmake=3.25.* && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* @@ -149,7 +149,7 @@ ENV PATH /usr/local/bin:/root/.local/bin:/tmp/.local/bin:$PATH RUN apt-get update \ - && apt-get install -y --no-install-recommends netbase tzdata ca-certificates wget curl jq unzip build-essential unixodbc xmlsec1 software-properties-common tini \ + && apt-get install -y --no-install-recommends netbase tzdata ca-certificates wget curl jq unzip build-essential unixodbc xmlsec1 software-properties-common tini libsasl2-modules-gssapi-mit \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 3ba6b30099..1fd3ca1a1c 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -5145,6 +5145,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "duct" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" +dependencies = [ + "libc", + "once_cell", + "os_pipe", + "shared_child", +] + [[package]] name = "dunce" version = "1.0.5" @@ -10908,6 +10920,7 @@ dependencies = [ "num_enum", "openssl-sys", "pkg-config", + "sasl2-sys", ] [[package]] @@ -11909,6 +11922,18 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "sasl2-sys" +version = "0.1.22+2.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f2a7f7efd9fc98b3a9033272df10709f5ee3fa0eabbd61a527a3a1ed6bd3c6" +dependencies = [ + "cc", + "duct", + "libc", + "pkg-config", +] + [[package]] name = "saturating" version = "0.1.0" @@ -12397,6 +12422,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shared_child" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e297bd52991bbe0686c086957bee142f13df85d1e79b0b21630a99d374ae9dc" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "shellexpand" version = "2.1.2" diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 943fa1dc58..7b577b3f14 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -71,6 +71,7 @@ deno_core = ["windmill-worker/deno_core", "windmill-api/deno_core", "dep:deno_co quickjs = ["windmill-worker/quickjs"] deno_core_mac = ["deno_core", "windmill-worker/libffi_mac"] kafka = ["windmill-api/kafka"] +kafka-gssapi = ["windmill-api/kafka-gssapi"] nats = ["windmill-api/nats"] otel = ["windmill-common/otel", "windmill-worker/otel"] dind = ["windmill-worker/dind"] @@ -110,7 +111,7 @@ all_languages = ["python", "deno_core", "rust", "mysql", "oracledb", "duckdb", " # For windows we have another set of languages enabled all_languages_windows = ["python", "deno_core", "rust", "mysql", "oracledb", "duckdb", "mssql-winauth", "bigquery", "csharp", "nu", "php", "java"] all_sqlx_features = ["all_languages", "enterprise", "enterprise_saml", "embedding", "parquet", "prometheus", "flow_testing", - "openidconnect", "cloud", "jemalloc", "tantivy", "sqlx", "kafka", "nats", "otel", "dind", "websocket", "http_trigger", + "openidconnect", "cloud", "jemalloc", "tantivy", "sqlx", "kafka", "kafka-gssapi", "nats", "otel", "dind", "websocket", "http_trigger", "postgres_trigger", "mcp", "mqtt_trigger", "sqs_trigger", "gcp_trigger", "smtp", "stripe", "license", "oauth2", "zip", "static_frontend", "scoped_cache", "agent_worker_server", "bedrock", "native_trigger"] diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 98b39fdc44..d1dbbedcd5 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -9cff6b22b084863594c4eab5b2899a5fa7538dd8 \ No newline at end of file +1f4c304ea02a2bd19f67fc4c4202175d2103fa7a diff --git a/backend/windmill-api/Cargo.toml b/backend/windmill-api/Cargo.toml index f0672666d0..a2df5e700b 100644 --- a/backend/windmill-api/Cargo.toml +++ b/backend/windmill-api/Cargo.toml @@ -22,6 +22,7 @@ prometheus = ["windmill-common/prometheus", "windmill-queue/prometheus", "dep:pr openidconnect = ["dep:openidconnect", "windmill-common/openidconnect"] tantivy = ["dep:windmill-indexer"] kafka = ["dep:rdkafka", "dep:rdkafka-sys"] +kafka-gssapi = ["kafka", "rdkafka/gssapi"] nats = ["dep:async-nats", "dep:nkeys"] websocket = ["dep:tokio-tungstenite"] smtp = ["dep:mail-parser", "dep:openssl", "windmill-common/smtp"] diff --git a/docker/RHEL8/Dockerfile b/docker/RHEL8/Dockerfile index cbadd828b3..224e954125 100644 --- a/docker/RHEL8/Dockerfile +++ b/docker/RHEL8/Dockerfile @@ -62,7 +62,7 @@ RUN --mount=type=secret,id=rh_username \ RUN subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms RUN yum update -y && \ - yum install -y perl-interpreter perl-IPC-Cmd perl-Time-Piece libxml2-devel xmlsec1-devel xmlsec1-openssl-devel krb5-devel clang llvm-devel cmake libtool-ltdl-devel + yum install -y perl-interpreter perl-IPC-Cmd perl-Time-Piece libxml2-devel xmlsec1-devel xmlsec1-openssl-devel krb5-devel cyrus-sasl-devel cyrus-sasl-gssapi clang llvm-devel cmake libtool-ltdl-devel # RUN --mount=type=cache,target=/usr/local/cargo/registry \ # CARGO_NET_GIT_FETCH_WITH_CLI=true RUST_BACKTRACE=1 cargo chef cook --release --features "$features" --recipe-path recipe.json diff --git a/docker/RHEL9/Dockerfile b/docker/RHEL9/Dockerfile index aef3b61fa0..f21ebb8f10 100644 --- a/docker/RHEL9/Dockerfile +++ b/docker/RHEL9/Dockerfile @@ -62,7 +62,7 @@ RUN --mount=type=secret,id=rh_username \ RUN subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms RUN yum update -y && \ - yum install -y perl-FindBin perl-IPC-Cmd perl-Time-Piece libxml2-devel xmlsec1-devel xmlsec1-openssl-devel krb5-devel clang llvm-devel cmake libtool-ltdl-devel + yum install -y perl-FindBin perl-IPC-Cmd perl-Time-Piece libxml2-devel xmlsec1-devel xmlsec1-openssl-devel krb5-devel cyrus-sasl-devel cyrus-sasl-gssapi clang llvm-devel cmake libtool-ltdl-devel # RUN --mount=type=cache,target=/usr/local/cargo/registry \ # CARGO_NET_GIT_FETCH_WITH_CLI=true RUST_BACKTRACE=1 cargo chef cook --release --features "$features" --recipe-path recipe.json