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/.sqlx/query-0a686ca61444d7ad7484071727aa039a6ea6697e5a49a633b767c052aa3e0a18.json b/backend/.sqlx/query-0a686ca61444d7ad7484071727aa039a6ea6697e5a49a633b767c052aa3e0a18.json deleted file mode 100644 index a4c8e3ea0c..0000000000 --- a/backend/.sqlx/query-0a686ca61444d7ad7484071727aa039a6ea6697e5a49a633b767c052aa3e0a18.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "WITH uuid_table as (\n select gen_random_uuid() as uuid from generate_series(1, $11)\n )\n INSERT INTO queue \n (id, script_hash, script_path, job_kind, language, args, tag, created_by, permissioned_as, email, scheduled_for, workspace_id, concurrent_limit, concurrency_time_window_s, timeout)\n (SELECT uuid, $1, $2, $3, $4, ('{ \"uuid\": \"' || uuid || '\" }')::jsonb, $5, $6, $7, $8, $9, $10, $12, $13, $14 FROM uuid_table) \n RETURNING id", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Uuid" - } - ], - "parameters": { - "Left": [ - "Int8", - "Varchar", - { - "Custom": { - "name": "job_kind", - "kind": { - "Enum": [ - "script", - "preview", - "flow", - "dependencies", - "flowpreview", - "script_hub", - "identity", - "flowdependencies", - "http", - "graphql", - "postgresql", - "noop", - "appdependencies", - "deploymentcallback", - "singlescriptflow" - ] - } - } - }, - { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible" - ] - } - } - }, - "Varchar", - "Varchar", - "Varchar", - "Varchar", - "Timestamptz", - "Varchar", - "Int4", - "Int4", - "Int4", - "Int4" - ] - }, - "nullable": [ - false - ] - }, - "hash": "0a686ca61444d7ad7484071727aa039a6ea6697e5a49a633b767c052aa3e0a18" -} diff --git a/backend/.sqlx/query-31dd23f6768052e486668172e15eba1a3f9b6a8e5678a7ee8e5456ff4405d6f9.json b/backend/.sqlx/query-31dd23f6768052e486668172e15eba1a3f9b6a8e5678a7ee8e5456ff4405d6f9.json new file mode 100644 index 0000000000..1295a4b36f --- /dev/null +++ b/backend/.sqlx/query-31dd23f6768052e486668172e15eba1a3f9b6a8e5678a7ee8e5456ff4405d6f9.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT raw_flow->'failure_module' != 'null'::jsonb\n FROM completed_job\n WHERE id = $1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "?column?", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Uuid" + ] + }, + "nullable": [ + null + ] + }, + "hash": "31dd23f6768052e486668172e15eba1a3f9b6a8e5678a7ee8e5456ff4405d6f9" +} diff --git a/backend/.sqlx/query-33cfb00f61dbae09467bd3732ce8e83c9835ccd30c90cb24788cdb54d1ceb575.json b/backend/.sqlx/query-33cfb00f61dbae09467bd3732ce8e83c9835ccd30c90cb24788cdb54d1ceb575.json deleted file mode 100644 index 26e7a58854..0000000000 --- a/backend/.sqlx/query-33cfb00f61dbae09467bd3732ce8e83c9835ccd30c90cb24788cdb54d1ceb575.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT value::BOOLEAN as value FROM global_settings WHERE name = 'critical_alert_mute_ui'", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value", - "type_info": "Bool" - } - ], - "parameters": { - "Left": [] - }, - "nullable": [ - null - ] - }, - "hash": "33cfb00f61dbae09467bd3732ce8e83c9835ccd30c90cb24788cdb54d1ceb575" -} diff --git a/backend/.sqlx/query-aa6907b7266ee437dfbd77a9bf6c047fda88f3e72a0d10323a5e4020cf857c42.json b/backend/.sqlx/query-aa6907b7266ee437dfbd77a9bf6c047fda88f3e72a0d10323a5e4020cf857c42.json new file mode 100644 index 0000000000..0eee98b120 --- /dev/null +++ b/backend/.sqlx/query-aa6907b7266ee437dfbd77a9bf6c047fda88f3e72a0d10323a5e4020cf857c42.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT raw_flow->'failure_module' != 'null'::jsonb\n FROM queue\n WHERE id = $1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "?column?", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Uuid" + ] + }, + "nullable": [ + null + ] + }, + "hash": "aa6907b7266ee437dfbd77a9bf6c047fda88f3e72a0d10323a5e4020cf857c42" +} diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 56bca6cb08..d37f3cb23a 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]] @@ -2553,7 +2553,7 @@ dependencies = [ "once_cell", "percent-encoding", "serde", - "sourcemap 9.0.1", + "sourcemap 9.1.0", "swc_atoms", "swc_common", "swc_config", @@ -2576,7 +2576,7 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", - "thiserror", + "thiserror 1.0.69", "unicode-width 0.1.14", "url", ] @@ -2715,7 +2715,7 @@ dependencies = [ "strum 0.25.0", "strum_macros 0.25.3", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2725,7 +2725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4889646c1ce8437a6fde3acb057fd7e2d039e62c61f5063fc125ed1ede114dc6" dependencies = [ "percent-encoding", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -3654,7 +3654,7 @@ dependencies = [ "rustls-pemfile 1.0.4", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tracing", @@ -3900,7 +3900,7 @@ checksum = "5eb37859fda6792e95231aef1c5838f4043ec0ee352d8313421e311c606df612" dependencies = [ "anyhow", "strum 0.25.0", - "thiserror", + "thiserror 1.0.69", "unic-ucd-category", ] @@ -4067,7 +4067,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "ureq", ] @@ -5319,7 +5319,7 @@ dependencies = [ "quote", "syn 2.0.87", "termcolor", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5345,7 +5345,7 @@ dependencies = [ "serde", "serde_json", "socket2 0.5.7", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-native-tls", "tokio-util", @@ -5386,7 +5386,7 @@ dependencies = [ "sha2 0.10.8", "smallvec", "subprocess", - "thiserror", + "thiserror 1.0.69", "time", "uuid 1.11.0", "zstd 0.13.2", @@ -5578,7 +5578,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -5700,7 +5700,7 @@ dependencies = [ "serde_with", "sha2 0.10.8", "subtle", - "thiserror", + "thiserror 1.0.69", "url", ] @@ -6352,7 +6352,7 @@ dependencies = [ "serde", "serde_json", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", "typify", "unicode-ident", ] @@ -6391,7 +6391,7 @@ dependencies = [ "lazy_static", "memchr", "parking_lot", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6428,9 +6428,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", ] @@ -6519,9 +6519,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", @@ -6530,26 +6530,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]] @@ -6762,7 +6765,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7075,7 +7078,7 @@ dependencies = [ "radix_fmt", "rand 0.8.5", "redis", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7184,7 +7187,7 @@ checksum = "f1adc9dfed5cc999077978cc7163b9282c5751c8d39827c4ea8c8c220ca5a440" dependencies = [ "serde", "tempfile", - "thiserror", + "thiserror 1.0.69", "toml 0.8.19", "toolchain_find", ] @@ -7290,6 +7293,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" @@ -7427,7 +7433,7 @@ dependencies = [ "quick-xml 0.30.0", "rand 0.8.5", "serde", - "thiserror", + "thiserror 1.0.69", "url", "uuid 1.11.0", ] @@ -7680,7 +7686,7 @@ checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7691,7 +7697,7 @@ checksum = "8cac3f1e2ca2fe333923a1ae72caca910b98ed0630bb35ef6f8c8517d6e81afa" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -7736,7 +7742,7 @@ dependencies = [ "num-bigint", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "v8", ] @@ -7900,7 +7906,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -8043,9 +8049,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", @@ -8114,7 +8120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1008d95d2ec2d062959352527be30e10fec42a1aa5e5a48d990a5ff0fb9bdc0" dependencies = [ "anyhow", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -8197,7 +8203,7 @@ dependencies = [ "sha2 0.10.8", "smallvec", "sqlformat", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -8284,7 +8290,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.69", "tracing", "uuid 1.11.0", "whoami", @@ -8326,7 +8332,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.69", "tracing", "uuid 1.11.0", "whoami", @@ -8533,7 +8539,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", @@ -8597,7 +8603,7 @@ dependencies = [ "num-bigint", "once_cell", "serde", - "sourcemap 9.0.1", + "sourcemap 9.1.0", "swc_allocator", "swc_atoms", "swc_common", @@ -8902,7 +8908,7 @@ dependencies = [ "byteorder", "enum-as-inner", "libc", - "thiserror", + "thiserror 1.0.69", "walkdir", ] @@ -8993,7 +8999,7 @@ dependencies = [ "tantivy-stacker", "tantivy-tokenizer-api", "tempfile", - "thiserror", + "thiserror 1.0.69", "time", "uuid 1.11.0", "winapi", @@ -9143,7 +9149,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]] @@ -9157,6 +9172,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" @@ -9198,7 +9224,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", @@ -9324,7 +9350,7 @@ dependencies = [ "rayon", "schemars", "serde", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -9355,7 +9381,7 @@ dependencies = [ "serde", "serde_json", "spm_precompiled", - "thiserror", + "thiserror 1.0.69", "unicode-normalization-alignments", "unicode-segmentation", "unicode_categories", @@ -9457,7 +9483,7 @@ checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ "either", "futures-util", - "thiserror", + "thiserror 1.0.69", "tokio", ] @@ -9703,7 +9729,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time", "tracing-subscriber", ] @@ -9853,7 +9879,7 @@ dependencies = [ "rand 0.8.5", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -9876,7 +9902,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "trust-dns-proto", @@ -9903,7 +9929,7 @@ dependencies = [ "native-tls", "rand 0.8.5", "sha1", - "thiserror", + "thiserror 1.0.69", "utf-8", ] @@ -9954,7 +9980,7 @@ dependencies = [ "schemars", "serde_json", "syn 2.0.87", - "thiserror", + "thiserror 1.0.69", "unicode-ident", ] @@ -10584,7 +10610,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "axum", @@ -10626,7 +10652,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "argon2", @@ -10711,7 +10737,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.423.1" +version = "1.423.2" dependencies = [ "base64 0.22.1", "chrono", @@ -10729,7 +10755,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.423.1" +version = "1.423.2" dependencies = [ "chrono", "serde", @@ -10742,7 +10768,7 @@ dependencies = [ [[package]] name = "windmill-autoscaling" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "rsmq_async", @@ -10757,7 +10783,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-stream", @@ -10789,7 +10815,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "sqlx", - "thiserror", + "thiserror 1.0.69", "tikv-jemalloc-ctl", "tokio", "tracing", @@ -10803,7 +10829,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.423.1" +version = "1.423.2" dependencies = [ "regex", "rsmq_async", @@ -10818,7 +10844,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "bytes", @@ -10840,7 +10866,7 @@ dependencies = [ [[package]] name = "windmill-macros" -version = "1.423.1" +version = "1.423.2" dependencies = [ "itertools 0.13.0", "lazy_static", @@ -10852,7 +10878,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.423.1" +version = "1.423.2" dependencies = [ "convert_case 0.6.0", "serde", @@ -10861,7 +10887,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10873,7 +10899,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "gosyn", @@ -10885,7 +10911,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10897,7 +10923,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10908,7 +10934,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10919,7 +10945,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-recursion", @@ -10937,7 +10963,7 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10954,7 +10980,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10966,7 +10992,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "lazy_static", @@ -10984,7 +11010,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -11005,7 +11031,7 @@ dependencies = [ [[package]] name = "windmill-parser-yaml" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "serde_json", @@ -11015,7 +11041,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.423.1" +version = "1.423.2" dependencies = [ "anyhow", "async-recursion", @@ -11048,7 +11074,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.423.1" +version = "1.423.2" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -11058,7 +11084,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 32671f9c64..f3e6e24f4e 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -053cf0a539c64efbe8eee0e2a330b72114a43193 \ 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..97d98d3d6b 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: @@ -8188,6 +8188,23 @@ paths: - id - values + /workers/queue_counts: + get: + summary: get counts of jobs waiting for an executor per tag + operationId: getCountsOfJobsWaitingPerTag + tags: + - worker + responses: + "200": + description: queue counts + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + + /configs/list_worker_groups: get: summary: list worker groups diff --git a/backend/windmill-api/src/workers.rs b/backend/windmill-api/src/workers.rs index 2f8439bf24..6eeeb17bac 100644 --- a/backend/windmill-api/src/workers.rs +++ b/backend/windmill-api/src/workers.rs @@ -36,6 +36,7 @@ pub fn global_service() -> Router { ) .route("/get_default_tags", get(get_default_tags)) .route("/queue_metrics", get(get_queue_metrics)) + .route("/queue_counts", get(get_queue_counts)) } #[derive(FromRow, Serialize, Deserialize)] @@ -176,3 +177,12 @@ async fn get_queue_metrics( Ok(Json(queue_metrics)) } + +async fn get_queue_counts( + authed: ApiAuthed, + Extension(db): Extension, +) -> JsonResult> { + require_super_admin(&db, &authed.email).await?; + let queue_counts = windmill_common::queue::get_queue_counts(&db).await; + Ok(Json(queue_counts)) +} \ No newline at end of file diff --git a/backend/windmill-common/src/flows.rs b/backend/windmill-common/src/flows.rs index d357a5ec72..5d7e1b4621 100644 --- a/backend/windmill-common/src/flows.rs +++ b/backend/windmill-common/src/flows.rs @@ -16,6 +16,7 @@ use rand::Rng; use serde::{Deserialize, Serialize, Serializer}; use crate::{ + error::Error, more_serde::{default_empty_string, default_id, default_null, default_true, is_default}, scripts::{Schema, ScriptHash, ScriptLang}, }; @@ -651,3 +652,29 @@ pub fn add_virtual_items_if_necessary(modules: &mut Vec) { }); } } + +pub async fn has_failure_module<'c>(flow: sqlx::types::Uuid, db: &sqlx::Pool, completed: bool) -> Result { + if completed { + sqlx::query_scalar!( + "SELECT raw_flow->'failure_module' != 'null'::jsonb + FROM completed_job + WHERE id = $1", + flow + ) + } else { + sqlx::query_scalar!( + "SELECT raw_flow->'failure_module' != 'null'::jsonb + FROM queue + WHERE id = $1", + flow + ) + } + .fetch_one(db) + .await + .map_err(|e| { + Error::InternalErr(format!( + "error during retrieval of has_failure_module: {e:#}" + )) + }) + .map(|v| v.unwrap_or(false)) +} diff --git a/backend/windmill-queue/src/jobs.rs b/backend/windmill-queue/src/jobs.rs index 9b94c0f198..275034efe7 100644 --- a/backend/windmill-queue/src/jobs.rs +++ b/backend/windmill-queue/src/jobs.rs @@ -71,6 +71,9 @@ use windmill_common::BASE_URL; #[cfg(feature = "cloud")] use windmill_common::users::SUPERADMIN_SYNC_EMAIL; +#[cfg(feature = "enterprise")] +use windmill_common::flows::has_failure_module; + #[cfg(feature = "enterprise")] use windmill_common::worker::CLOUD_HOSTED; @@ -482,13 +485,6 @@ where } } -#[cfg(feature = "enterprise")] -#[derive(Deserialize)] -struct RawFlowFailureModule { - #[cfg(feature = "enterprise")] - failure_module: Option>, -} - #[instrument(level = "trace", skip_all)] pub async fn add_completed_job_error( db: &Pool, @@ -952,15 +948,7 @@ pub async fn add_completed_job< } else if !skip_downstream_error_handlers && (matches!(queued_job.job_kind, JobKind::Script) || matches!(queued_job.job_kind, JobKind::Flow) - && queued_job - .raw_flow - .as_ref() - .and_then(|v| { - serde_json::from_str::((**v).get()) - .ok() - .and_then(|v| v.failure_module) - }) - .is_none()) + && !has_failure_module(job_id, db, true).await.unwrap_or(false)) && queued_job.parent_job.is_none() { let result = serde_json::from_str( 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 8a6d824e6e..f92ee16536 100644 --- a/backend/windmill-worker/src/job_logger.rs +++ b/backend/windmill-worker/src/job_logger.rs @@ -38,7 +38,7 @@ pub(crate) async fn append_job_logs( ) -> () { if must_compact_logs { #[cfg(all(feature = "enterprise", feature = "parquet"))] - s3_storage(job_id, &w_id, &db, &logs, &total_size, &worker_name).await; + s3_storage(job_id, &w_id, &db, logs, total_size, &worker_name).await; #[cfg(not(all(feature = "enterprise", feature = "parquet")))] { @@ -70,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 index 0274c6c777..e0758b31f3 100644 --- a/backend/windmill-worker/src/job_logger_ee.rs +++ b/backend/windmill-worker/src/job_logger_ee.rs @@ -1,3 +1,4 @@ +use std::io; use std::sync::atomic::AtomicU32; use std::sync::Arc; @@ -24,3 +25,6 @@ pub(crate) async fn default_disk_log_storage( } +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/worker_flow.rs b/backend/windmill-worker/src/worker_flow.rs index a1a4fd9904..5421b502e4 100644 --- a/backend/windmill-worker/src/worker_flow.rs +++ b/backend/windmill-worker/src/worker_flow.rs @@ -49,7 +49,7 @@ use windmill_common::{ Approval, BranchAllStatus, BranchChosen, FlowStatus, FlowStatusModule, RetryStatus, MAX_RETRY_ATTEMPTS, MAX_RETRY_INTERVAL, }, - flows::{FlowModule, FlowModuleValue, FlowValue, InputTransform, Retry, Suspend}, + flows::{has_failure_module, FlowModule, FlowModuleValue, FlowValue, InputTransform, Retry, Suspend}, }; use windmill_queue::schedule::get_schedule_opt; use windmill_queue::{ @@ -963,7 +963,7 @@ pub async fn update_flow_status_after_job_completion_internal< false if !is_failure_step && !skip_error_handler - && has_failure_module(flow, db).await? => + && has_failure_module(flow, db, false).await? => { true } @@ -1290,23 +1290,6 @@ async fn compute_skip_branchall_failure<'c>( })) } -async fn has_failure_module<'c>(flow: Uuid, db: &DB) -> Result { - sqlx::query_scalar::<_, Option>( - "SELECT raw_flow->'failure_module' != 'null'::jsonb - FROM queue - WHERE id = $1", - ) - .bind(flow) - .fetch_one(db) - .await - .map_err(|e| { - Error::InternalErr(format!( - "error during retrieval of has_failure_module: {e:#}" - )) - }) - .map(|v| v.unwrap_or(false)) -} - // async fn retrieve_cleanup_module<'c>(flow_uuid: Uuid, db: &DB) -> Result { // tracing::warn!("Retrieving cleanup module of flow {}", flow_uuid); // let raw_value = sqlx::query_scalar!( 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/flake.nix b/flake.nix index 28e0816667..2c1845d176 100644 --- a/flake.nix +++ b/flake.nix @@ -26,7 +26,10 @@ ]); in { devShell = pkgs.mkShell { - buildInputs = buildInputs ++ (with pkgs; [ git go xcaddy sqlx-cli ]); + buildInputs = buildInputs ++ (with pkgs; [ + git xcaddy sqlx-cli flock rust-analyzer + deno python3 python3Packages.pip go bun uv + ]); packages = [ (pkgs.writeScriptBin "wm-caddy" '' cd ./frontend @@ -56,6 +59,9 @@ sqlx database create wm-migrate '') + (pkgs.writeScriptBin "wm-bench" '' + deno run -A benchmarks/main.ts -e admin@windmill.dev -p changeme $* + '') (pkgs.writeScriptBin "wm" '' cd ./frontend npm run dev $* @@ -68,6 +74,12 @@ DATABASE_URL = "postgres://postgres:changeme@127.0.0.1:5432/"; REMOTE = "http://127.0.0.1:8000"; REMOTE_LSP = "http://127.0.0.1:3001"; + DENO_PATH = "${pkgs.deno}/bin/deno"; + PYTHON_PATH = "${pkgs.python3}/bin/python3"; + GO_PATH = "${pkgs.go}/bin/go"; + BUN_PATH = "${pkgs.bun}/bin/bun"; + UV_PATH = "${pkgs.uv}/bin/uv"; + FLOCK_PATH = "${pkgs.flock}/bin/flock"; }; packages.default = self.packages.${system}.windmill; packages.windmill-client = pkgs.stdenv.mkDerivation { @@ -82,7 +94,7 @@ npm config set strict-ssl false cd frontend npm install --verbose - npm run generate-backend-client-mac + npm run ${if pkgs.stdenv.isDarwin then "generate-backend-client-mac" else "generate-backend-client"} NODE_OPTIONS="--max-old-space-size=8192" npm run build ''; 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