diff --git a/.github/workflows/build_windows_worker_.yml b/.github/workflows/build_windows_worker_.yml new file mode 100644 index 0000000000..256ce0de1a --- /dev/null +++ b/.github/workflows/build_windows_worker_.yml @@ -0,0 +1,58 @@ +name: Build windows executable for this branch + +on: + workflow_dispatch: + +env: + CARGO_INCREMENTAL: 0 + SQLX_OFFLINE: true + DISABLE_EMBEDDING: true + RUST_LOG: info + +jobs: + cargo_build_windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Read EE repo commit hash + shell: pwsh + run: | + $ee_repo_ref = Get-Content .\backend\ee-repo-ref.txt + echo "ee_repo_ref=$ee_repo_ref" | Out-File -FilePath $env:GITHUB_ENV -Append + + - name: Checkout windmill-ee-private repository + uses: actions/checkout@v4 + with: + repository: windmill-labs/windmill-ee-private + path: ./windmill-ee-private + ref: ${{ env.ee_repo_ref }} + token: ${{ secrets.WINDMILL_EE_PRIVATE_ACCESS }} + fetch-depth: 0 + + - name: Substitute EE code + shell: bash + run: | + ./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private + + - name: Cargo build windows + timeout-minutes: 90 + run: | + vcpkg.exe install openssl-windows:x64-windows + vcpkg.exe install openssl:x64-windows-static + vcpkg.exe integrate install + $env:VCPKGRS_DYNAMIC=1 + $env:OPENSSL_DIR="${Env:VCPKG_INSTALLATION_ROOT}\installed\x64-windows-static" + mkdir frontend/build && cd backend + New-Item -Path . -Name "windmill-api/openapi-deref.yaml" -ItemType "File" -Force + cargo build --release --features=enterprise,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core + + - name: Rename binary with corresponding architecture + run: | + Rename-Item -Path ".\backend\target\release\windmill.exe" -NewName "windmill-ee.exe" + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: windmill-ee-binary + path: ./backend/target/release/windmill-ee.exe diff --git a/.github/workflows/build_windows_worker.yml b/.github/workflows/publish_windows_worker.yml similarity index 100% rename from .github/workflows/build_windows_worker.yml rename to .github/workflows/publish_windows_worker.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fb83ac956..9dfc4d73b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.423.2](https://github.com/windmill-labs/windmill/compare/v1.423.1...v1.423.2) (2024-11-13) + + +### Bug Fixes + +* fix intempestive expr type change in flow transform ([84bd06e](https://github.com/windmill-labs/windmill/commit/84bd06e90650e949c11e2b09447a7bad1ab60a95)) + ## [1.423.1](https://github.com/windmill-labs/windmill/compare/v1.423.0...v1.423.1) (2024-11-12) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index e9cccc0a9e..82d59baa20 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -576,7 +576,7 @@ dependencies = [ "serde-aux", "serde_json", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -659,7 +659,7 @@ dependencies = [ "sha2 0.10.8", "smart-default", "smol_str", - "thiserror", + "thiserror 1.0.69", "tokio", "uuid 0.8.2", ] @@ -692,7 +692,7 @@ dependencies = [ "crc32fast", "log", "pin-project", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -1363,9 +1363,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5327f6c99920069d1fe374aa743be1af0031dea9f250852cdf1ae6a0861ee24" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1373,9 +1373,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10aedd8f1a81a8aafbfde924b0e3061cd6fedd6f6bbcfc6a76e6fd426d7bfe26" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", "proc-macro-crate", @@ -1545,7 +1545,7 @@ dependencies = [ "rand_distr", "rayon", "safetensors", - "thiserror", + "thiserror 1.0.69", "yoke", "zip", ] @@ -1562,7 +1562,7 @@ dependencies = [ "rayon", "safetensors", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1714,9 +1714,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -1724,9 +1724,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -1748,9 +1748,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "cmake" @@ -1783,13 +1783,13 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.1" +version = "7.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +checksum = "e0d05af1e006a2407bedef5af410552494ce5be9090444dbbcb57258c1af3d56" dependencies = [ "strum 0.26.3", "strum_macros 0.26.4", - "unicode-width 0.1.14", + "unicode-width 0.2.0", ] [[package]] @@ -2562,7 +2562,7 @@ dependencies = [ "once_cell", "percent-encoding", "serde", - "sourcemap 9.0.1", + "sourcemap 9.1.0", "swc_atoms", "swc_common", "swc_config", @@ -2585,7 +2585,7 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", - "thiserror", + "thiserror 1.0.69", "unicode-width 0.1.14", "url", ] @@ -2724,7 +2724,7 @@ dependencies = [ "strum 0.25.0", "strum_macros 0.25.3", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2734,7 +2734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4889646c1ce8437a6fde3acb057fd7e2d039e62c61f5063fc125ed1ede114dc6" dependencies = [ "percent-encoding", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -3663,7 +3663,7 @@ dependencies = [ "rustls-pemfile 1.0.4", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tracing", @@ -3909,7 +3909,7 @@ checksum = "5eb37859fda6792e95231aef1c5838f4043ec0ee352d8313421e311c606df612" dependencies = [ "anyhow", "strum 0.25.0", - "thiserror", + "thiserror 1.0.69", "unic-ucd-category", ] @@ -4076,7 +4076,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "ureq", ] @@ -5328,7 +5328,7 @@ dependencies = [ "quote", "syn 2.0.87", "termcolor", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5354,7 +5354,7 @@ dependencies = [ "serde", "serde_json", "socket2 0.5.7", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-native-tls", "tokio-util", @@ -5395,7 +5395,7 @@ dependencies = [ "sha2 0.10.8", "smallvec", "subprocess", - "thiserror", + "thiserror 1.0.69", "time", "uuid 1.11.0", "zstd 0.13.2", @@ -5587,7 +5587,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -5709,7 +5709,7 @@ dependencies = [ "serde_with", "sha2 0.10.8", "subtle", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -6361,7 +6361,7 @@ dependencies = [ "serde", "serde_json", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", "typify", "unicode-ident", ] @@ -6400,7 +6400,7 @@ dependencies = [ "lazy_static", "memchr", "parking_lot", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6437,9 +6437,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ "cc", ] @@ -6528,9 +6528,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", @@ -6539,26 +6539,29 @@ dependencies = [ "rustc-hash 2.0.0", "rustls 0.23.16", "socket2 0.5.7", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom 0.2.15", "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.0.0", "rustls 0.23.16", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] @@ -6771,7 +6774,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7084,7 +7087,7 @@ dependencies = [ "radix_fmt", "rand 0.8.5", "redis", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7193,7 +7196,7 @@ checksum = "f1adc9dfed5cc999077978cc7163b9282c5751c8d39827c4ea8c8c220ca5a440" dependencies = [ "serde", "tempfile", - "thiserror", + "thiserror 1.0.69", "toml 0.8.19", "toolchain_find", ] @@ -7299,6 +7302,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-tokio-stream" @@ -7436,7 +7442,7 @@ dependencies = [ "quick-xml 0.30.0", "rand 0.8.5", "serde", - "thiserror", + "thiserror 1.0.69", "url", "uuid 1.11.0", ] @@ -7689,7 +7695,7 @@ checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7700,7 +7706,7 @@ checksum = "8cac3f1e2ca2fe333923a1ae72caca910b98ed0630bb35ef6f8c8517d6e81afa" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7745,7 +7751,7 @@ dependencies = [ "num-bigint", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "v8", ] @@ -7909,7 +7915,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -8052,9 +8058,9 @@ dependencies = [ [[package]] name = "sourcemap" -version = "9.0.1" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86721155737d89818020dc35713595c6e7b21016073c101e6590c47ca58c2d16" +checksum = "4d146f02f4bbbabbbe3da0f9cd3ea2ab779defc4ed1f070b5bd83ea48ed78811" dependencies = [ "base64-simd 0.7.0", "bitvec", @@ -8123,7 +8129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1008d95d2ec2d062959352527be30e10fec42a1aa5e5a48d990a5ff0fb9bdc0" dependencies = [ "anyhow", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -8206,7 +8212,7 @@ dependencies = [ "sha2 0.10.8", "smallvec", "sqlformat", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -8293,7 +8299,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.69", "tracing", "uuid 1.11.0", "whoami", @@ -8335,7 +8341,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.69", "tracing", "uuid 1.11.0", "whoami", @@ -8542,7 +8548,7 @@ dependencies = [ "rustc-hash 1.1.0", "serde", "siphasher", - "sourcemap 9.0.1", + "sourcemap 9.1.0", "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", @@ -8606,7 +8612,7 @@ dependencies = [ "num-bigint", "once_cell", "serde", - "sourcemap 9.0.1", + "sourcemap 9.1.0", "swc_allocator", "swc_atoms", "swc_common", @@ -8911,7 +8917,7 @@ dependencies = [ "byteorder", "enum-as-inner", "libc", - "thiserror", + "thiserror 1.0.69", "walkdir", ] @@ -9002,7 +9008,7 @@ dependencies = [ "tantivy-stacker", "tantivy-tokenizer-api", "tempfile", - "thiserror", + "thiserror 1.0.69", "time", "uuid 1.11.0", "winapi", @@ -9152,7 +9158,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] @@ -9166,6 +9181,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -9207,7 +9233,7 @@ dependencies = [ "pretty-hex", "rustls-native-certs 0.6.3", "rustls-pemfile 1.0.4", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-rustls 0.24.1", "tokio-util", @@ -9333,7 +9359,7 @@ dependencies = [ "rayon", "schemars", "serde", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -9364,7 +9390,7 @@ dependencies = [ "serde", "serde_json", "spm_precompiled", - "thiserror", + "thiserror 1.0.69", "unicode-normalization-alignments", "unicode-segmentation", "unicode_categories", @@ -9466,7 +9492,7 @@ checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ "either", "futures-util", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -9712,7 +9738,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -9862,7 +9888,7 @@ dependencies = [ "rand 0.8.5", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -9885,7 +9911,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "trust-dns-proto", @@ -9912,7 +9938,7 @@ dependencies = [ "native-tls", "rand 0.8.5", "sha1", - "thiserror", + "thiserror 1.0.69", "utf-8", ] @@ -9963,7 +9989,7 @@ dependencies = [ "schemars", "serde_json", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", "unicode-ident", ] @@ -10593,7 +10619,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "axum", @@ -10635,7 +10661,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "argon2", @@ -10721,7 +10747,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.423.1" +version = "1.423.2" dependencies = [ "base64 0.22.1", "chrono", @@ -10739,7 +10765,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.423.1" +version = "1.423.2" dependencies = [ "chrono", "serde", @@ -10752,7 +10778,7 @@ dependencies = [ [[package]] name = "windmill-autoscaling" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "rsmq_async", @@ -10767,7 +10793,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-stream", @@ -10799,7 +10825,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "sqlx", - "thiserror", + "thiserror 1.0.69", "tikv-jemalloc-ctl", "tokio", "tracing", @@ -10813,7 +10839,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.423.1" +version = "1.423.2" dependencies = [ "regex", "rsmq_async", @@ -10828,7 +10854,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "bytes", @@ -10850,7 +10876,7 @@ dependencies = [ [[package]] name = "windmill-macros" -version = "1.423.1" +version = "1.423.2" dependencies = [ "itertools 0.13.0", "lazy_static", @@ -10862,7 +10888,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.423.1" +version = "1.423.2" dependencies = [ "convert_case 0.6.0", "serde", @@ -10871,7 +10897,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10883,7 +10909,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "gosyn", @@ -10895,7 +10921,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10907,7 +10933,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10918,7 +10944,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10929,7 +10955,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-recursion", @@ -10947,7 +10973,7 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10964,7 +10990,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10976,7 +11002,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10994,7 +11020,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -11015,7 +11041,7 @@ dependencies = [ [[package]] name = "windmill-parser-yaml" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "serde_json", @@ -11025,7 +11051,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-recursion", @@ -11059,7 +11085,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.423.1" +version = "1.423.2" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -11069,7 +11095,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-recursion", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 3196a3ce84..800e165e33 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.423.1" +version = "1.423.2" authors.workspace = true edition.workspace = true @@ -29,7 +29,7 @@ members = [ ] [workspace.package] -version = "1.423.1" +version = "1.423.2" authors = ["Ruben Fiszel "] edition = "2021" diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 1a95bfe721..f3e6e24f4e 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -5938b3f66b070ba3578aeeda89e6cc17c4cbda2d \ No newline at end of file +e3df64af864f9d3546a97ff21f719c553e34ff1c \ No newline at end of file diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index b63b6c0f34..a85619dde7 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.423.1 + version: 1.423.2 title: Windmill API contact: diff --git a/backend/windmill-worker/src/handle_child.rs b/backend/windmill-worker/src/handle_child.rs index 6846e9dfee..4d09c36abc 100644 --- a/backend/windmill-worker/src/handle_child.rs +++ b/backend/windmill-worker/src/handle_child.rs @@ -48,6 +48,7 @@ use futures::{ use crate::common::{resolve_job_timeout, OccupancyMetrics}; use crate::job_logger::{append_job_logs, append_with_limit, LARGE_LOG_THRESHOLD_SIZE}; +use crate::job_logger_ee::process_streaming_log_lines; use crate::{MAX_RESULT_SIZE, MAX_WAIT_FOR_SIGINT, MAX_WAIT_FOR_SIGTERM}; lazy_static::lazy_static! { @@ -434,6 +435,8 @@ pub async fn handle_child( } } + + async fn get_mem_peak(pid: Option, nsjail: bool) -> i32 { if pid.is_none() { return -1; @@ -689,19 +692,24 @@ fn child_joined_output_stream( let stdout = BufReader::new(stdout).lines(); let stderr = BufReader::new(stderr).lines(); - stream::select(lines_to_stream(stderr), lines_to_stream(stdout)) + stream::select(lines_to_stream(stderr, true), lines_to_stream(stdout, false)) } pub fn lines_to_stream( mut lines: tokio::io::Lines, + stderr: bool, ) -> impl futures::Stream> { stream::poll_fn(move |cx| { std::pin::Pin::new(&mut lines) .poll_next_line(cx) - .map(|result| result.transpose()) + .map(|result| { + process_streaming_log_lines(result, stderr) + }) }) } + + pub fn process_status(status: ExitStatus) -> error::Result<()> { if status.success() { Ok(()) diff --git a/backend/windmill-worker/src/job_logger.rs b/backend/windmill-worker/src/job_logger.rs index 05b9e5812b..f92ee16536 100644 --- a/backend/windmill-worker/src/job_logger.rs +++ b/backend/windmill-worker/src/job_logger.rs @@ -1,15 +1,6 @@ -use itertools::Itertools; -use swc_ecma_parser::lexer::util::CharExt; - -#[cfg(all(feature = "enterprise", feature = "parquet"))] -use object_store::path::Path; use regex::Regex; -#[cfg(all(feature = "enterprise", feature = "parquet"))] -use windmill_common::s3_helpers::OBJECT_STORE_CACHE_SETTINGS; - -use windmill_common::error::{self}; -use windmill_common::worker::{CLOUD_HOSTED, TMP_DIR}; +use windmill_common::worker::CLOUD_HOSTED; use windmill_queue::append_logs; @@ -19,6 +10,12 @@ use std::sync::Arc; use uuid::Uuid; use windmill_common::DB; +use crate::job_logger_ee::default_disk_log_storage; + +#[cfg(all(feature = "enterprise", feature = "parquet"))] +use crate::job_logger_ee::s3_storage; + + pub enum CompactLogs { #[cfg(not(all(feature = "enterprise", feature = "parquet")))] NotEE, @@ -28,150 +25,7 @@ pub enum CompactLogs { S3, } -async fn compact_logs( - job_id: Uuid, - w_id: &str, - db: &DB, - nlogs: String, - total_size: Arc, - compact_kind: CompactLogs, - _worker_name: &str, -) -> error::Result<(String, String)> { - let mut prev_logs = sqlx::query_scalar!( - "SELECT logs FROM job_logs WHERE job_id = $1 AND workspace_id = $2", - job_id, - w_id - ) - .fetch_optional(db) - .await? - .flatten() - .unwrap_or_default(); - let size = prev_logs.char_indices().count() as i32; - let nlogs_len = nlogs.char_indices().count(); - let to_keep_in_db = usize::max( - usize::min(nlogs_len, 3000), - nlogs_len % LARGE_LOG_THRESHOLD_SIZE, - ); - let extra_split = to_keep_in_db < nlogs_len; - let stored_in_storage_len = if extra_split { - nlogs_len - to_keep_in_db - } else { - 0 - }; - let extra_to_newline = nlogs - .chars() - .skip(stored_in_storage_len) - .find_position(|x| x.is_line_break()) - .map(|(i, _)| i) - .unwrap_or(to_keep_in_db); - let stored_in_storage_to_newline = stored_in_storage_len + extra_to_newline; - let (append_to_storage, stored_in_db) = if extra_split { - if stored_in_storage_to_newline == nlogs.len() { - (nlogs.as_ref(), "".to_string()) - } else { - let split_idx = nlogs - .char_indices() - .nth(stored_in_storage_to_newline) - .map(|(i, _)| i) - .unwrap_or(0); - let (append_to_storage, stored_in_db) = nlogs.split_at(split_idx); - // tracing::error!("{append_to_storage} ||||| {stored_in_db}"); - // tracing::error!( - // "{:?} {:?} {} {}", - // excess_prev_logs.lines().last(), - // current_logs.lines().next(), - // split_idx, - // excess_size_modulo - // ); - (append_to_storage, stored_in_db.to_string()) - } - } else { - // tracing::error!("{:?}", nlogs.lines().last()); - ("", nlogs.to_string()) - }; - - let new_size_with_excess = size + stored_in_storage_to_newline as i32; - - let new_size = total_size.fetch_add( - new_size_with_excess as u32, - std::sync::atomic::Ordering::SeqCst, - ) + new_size_with_excess as u32; - - let path = format!( - "logs/{job_id}/{}_{new_size}.txt", - chrono::Utc::now().timestamp_millis() - ); - - let mut new_current_logs = match compact_kind { - CompactLogs::NoS3 => format!("\n[windmill] No object storage set in instance settings. Previous logs have been saved to disk at {path}"), - CompactLogs::S3 => format!("\n[windmill] Previous logs have been saved to object storage at {path}"), - #[cfg(not(all(feature = "enterprise", feature = "parquet")))] - CompactLogs::NotEE => format!("\n[windmill] Previous logs have been saved to disk at {path}"), - }; - new_current_logs.push_str(&stored_in_db); - - sqlx::query!( - "UPDATE job_logs SET logs = $1, log_offset = $2, - log_file_index = array_append(coalesce(log_file_index, array[]::text[]), $3) - WHERE workspace_id = $4 AND job_id = $5", - new_current_logs, - new_size as i32, - path, - w_id, - job_id - ) - .execute(db) - .await?; - prev_logs.push_str(&append_to_storage); - - return Ok((prev_logs, path)); -} - -async fn default_disk_log_storage( - job_id: Uuid, - w_id: &str, - db: &DB, - nlogs: String, - total_size: Arc, - compact_kind: CompactLogs, - worker_name: &str, -) { - match compact_logs( - job_id, - &w_id, - &db, - nlogs, - total_size, - compact_kind, - worker_name, - ) - .await - { - Err(e) => tracing::error!("Could not compact logs for job {job_id}: {e:?}",), - Ok((prev_logs, path)) => { - let path = format!("{}/{}", TMP_DIR, path); - let splitted = &path.split("/").collect_vec(); - tokio::fs::create_dir_all(splitted.into_iter().take(splitted.len() - 1).join("/")) - .await - .map_err(|e| { - tracing::error!("Could not create logs directory: {e:?}",); - e - }) - .ok(); - let created = tokio::fs::File::create(&path).await; - if let Err(e) = created { - tracing::error!("Could not create logs file {path}: {e:?}",); - return; - } - if let Err(e) = tokio::fs::write(&path, prev_logs).await { - tracing::error!("Could not write to logs file {path}: {e:?}"); - } else { - tracing::info!("Logs length of {job_id} has exceeded a threshold. Previous logs have been saved to disk at {path}"); - } - } - } -} pub(crate) async fn append_job_logs( job_id: Uuid, @@ -184,43 +38,7 @@ pub(crate) async fn append_job_logs( ) -> () { if must_compact_logs { #[cfg(all(feature = "enterprise", feature = "parquet"))] - if let Some(os) = OBJECT_STORE_CACHE_SETTINGS.read().await.clone() { - match compact_logs( - job_id, - &w_id, - &db, - logs, - total_size, - CompactLogs::S3, - &worker_name, - ) - .await - { - Err(e) => tracing::error!("Could not compact logs for job {job_id}: {e:?}",), - Ok((prev_logs, path)) => { - tracing::info!("Logs length of {job_id} has exceeded a threshold. Previous logs have been saved to object storage at {path}"); - let path2 = path.clone(); - if let Err(e) = os - .put(&Path::from(path), prev_logs.to_string().into_bytes().into()) - .await - { - tracing::error!("Could not save logs to s3: {e:?}"); - } - tracing::info!("Logs of {job_id} saved to object storage at {path2}"); - } - } - } else { - default_disk_log_storage( - job_id, - &w_id, - &db, - logs, - total_size, - CompactLogs::NoS3, - &worker_name, - ) - .await; - } + s3_storage(job_id, &w_id, &db, logs, total_size, &worker_name).await; #[cfg(not(all(feature = "enterprise", feature = "parquet")))] { @@ -252,6 +70,7 @@ pub fn append_with_limit(dst: &mut String, src: &str, limit: &mut usize) { if *NO_LOGS_AT_ALL { return; } + let src_str; let src = { src_str = RE_00.replace_all(src, ""); diff --git a/backend/windmill-worker/src/job_logger_ee.rs b/backend/windmill-worker/src/job_logger_ee.rs new file mode 100644 index 0000000000..e0758b31f3 --- /dev/null +++ b/backend/windmill-worker/src/job_logger_ee.rs @@ -0,0 +1,30 @@ +use std::io; +use std::sync::atomic::AtomicU32; +use std::sync::Arc; + +use uuid::Uuid; +use windmill_common::DB; + +use crate::job_logger::CompactLogs; + +#[cfg(all(feature = "enterprise", feature = "parquet"))] +pub(crate) async fn s3_storage(_job_id: Uuid, _w_id: &String, _db: &sqlx::Pool, _logs: &String, _total_size: &Arc, _worker_name: &String) { + tracing::info!("Logs length of {job_id} has exceeded a threshold. Implementation to store excess on s3 in not OSS"); +} + +pub(crate) async fn default_disk_log_storage( + job_id: Uuid, + _w_id: &str, + _db: &DB, + _nlogs: String, + _total_size: Arc, + _compact_kind: CompactLogs, + _worker_name: &str, +) { + tracing::info!("Logs length of {job_id} has exceeded a threshold. Implementation to store excess on disk in not OSS"); +} + + +pub(crate) fn process_streaming_log_lines(r: Result, io::Error>, _stderr: bool) -> Option> { + r.transpose() +} \ No newline at end of file diff --git a/backend/windmill-worker/src/lib.rs b/backend/windmill-worker/src/lib.rs index b790eb3faf..680f3ca178 100644 --- a/backend/windmill-worker/src/lib.rs +++ b/backend/windmill-worker/src/lib.rs @@ -29,7 +29,7 @@ mod rust_executor; mod worker; mod worker_flow; mod worker_lockfiles; - +mod job_logger_ee; pub use worker::*; pub use result_processor::handle_job_error; diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index 372d5be32e..d59c074be2 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.423.1"; +export const VERSION = "v1.423.2"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/main.ts b/cli/main.ts index 24fff7a4c2..c35b0c7a27 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -60,7 +60,7 @@ export { // } // }); -export const VERSION = "1.423.1"; +export const VERSION = "1.423.2"; const command = new Command() .name("wmill") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 54c95638aa..2b1bd0e614 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "windmill-components", - "version": "1.423.1", + "version": "1.423.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.423.1", + "version": "1.423.2", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", diff --git a/frontend/package.json b/frontend/package.json index fe8ccedc24..4465bf84b5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.423.1", + "version": "1.423.2", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/frontend/src/lib/components/InputTransformForm.svelte b/frontend/src/lib/components/InputTransformForm.svelte index c0429a8284..aa0c31057b 100644 --- a/frontend/src/lib/components/InputTransformForm.svelte +++ b/frontend/src/lib/components/InputTransformForm.svelte @@ -238,7 +238,7 @@ setPropertyType(arg?.value) codeInjectionDetected = checkCodeInjection(arg?.value) != undefined } else if (propertyType == 'javascript' && focused) { - setPropertyType(arg?.expr) + // setPropertyType(arg?.expr) $inputMatches = checkCodeInjection(arg?.expr) } } diff --git a/lsp/Pipfile b/lsp/Pipfile index d70cd67f7b..7bc5bf2c65 100644 --- a/lsp/Pipfile +++ b/lsp/Pipfile @@ -4,8 +4,8 @@ verify_ssl = true name = "pypi" [packages] -wmill = ">=1.423.1" -wmill_pg = ">=1.423.1" +wmill = ">=1.423.2" +wmill_pg = ">=1.423.2" sendgrid = "*" mysql-connector-python = "*" pymongo = "*" diff --git a/openflow.openapi.yaml b/openflow.openapi.yaml index 18f3820446..535d9e22c4 100644 --- a/openflow.openapi.yaml +++ b/openflow.openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.423.1 + version: 1.423.2 title: OpenFlow Spec contact: name: Ruben Fiszel diff --git a/powershell-client/WindmillClient/WindmillClient.psd1 b/powershell-client/WindmillClient/WindmillClient.psd1 index 4b27339b6b..360a387370 100644 --- a/powershell-client/WindmillClient/WindmillClient.psd1 +++ b/powershell-client/WindmillClient/WindmillClient.psd1 @@ -12,7 +12,7 @@ RootModule = 'WindmillClient.psm1' # Version number of this module. -ModuleVersion = '1.423.1' +ModuleVersion = '1.423.2' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/python-client/wmill/pyproject.toml b/python-client/wmill/pyproject.toml index b0f4355108..efe6e0a58f 100644 --- a/python-client/wmill/pyproject.toml +++ b/python-client/wmill/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill" -version = "1.423.1" +version = "1.423.2" description = "A client library for accessing Windmill server wrapping the Windmill client API" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/python-client/wmill_pg/pyproject.toml b/python-client/wmill_pg/pyproject.toml index 3d61b011ca..4f538fe6e3 100644 --- a/python-client/wmill_pg/pyproject.toml +++ b/python-client/wmill_pg/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill-pg" -version = "1.423.1" +version = "1.423.2" description = "An extension client for the wmill client library focused on pg" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json index 1b1f282d21..47a093ea5b 100644 --- a/typescript-client/jsr.json +++ b/typescript-client/jsr.json @@ -1,6 +1,6 @@ { "name": "@windmill/windmill", - "version": "1.423.1", + "version": "1.423.2", "exports": "./src/index.ts", "publish": { "exclude": ["!src", "./s3Types.ts", "./client.ts"] diff --git a/typescript-client/package.json b/typescript-client/package.json index 8b46d97b34..10228562b8 100644 --- a/typescript-client/package.json +++ b/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "windmill-client", "description": "Windmill SDK client for browsers and Node.js", - "version": "1.423.1", + "version": "1.423.2", "author": "Ruben Fiszel", "license": "Apache 2.0", "devDependencies": { diff --git a/version.txt b/version.txt index 0f093e2b35..4141884b44 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.423.1 +1.423.2