From 4c388533fb3ca2746c85b5931f20b686b90ffc15 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 21 Mar 2024 13:37:17 +0100 Subject: [PATCH] chore: update deps --- backend/Cargo.lock | 296 +++++++++++++--------- backend/Cargo.toml | 22 +- backend/windmill-api/Cargo.toml | 3 +- backend/windmill-api/src/apps.rs | 5 +- backend/windmill-api/src/flows.rs | 3 +- backend/windmill-api/src/integration.rs | 4 +- backend/windmill-api/src/lib.rs | 24 +- backend/windmill-api/src/openai.rs | 4 +- backend/windmill-api/src/raw_apps.rs | 5 +- backend/windmill-api/src/resources.rs | 5 +- backend/windmill-api/src/scripts.rs | 3 +- backend/windmill-api/src/static_assets.rs | 12 +- backend/windmill-api/src/users.rs | 2 +- backend/windmill-api/src/workspaces.rs | 7 +- backend/windmill-common/src/error.rs | 8 +- backend/windmill-common/src/lib.rs | 6 +- backend/windmill-common/src/utils.rs | 5 +- 17 files changed, 244 insertions(+), 170 deletions(-) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 8100a8b52d..1bee9daaae 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -225,16 +225,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[package]] -name = "arrow-format" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07884ea216994cdc32a2d5f8274a8bee979cfe90274b83f86f440866ee3132c7" -dependencies = [ - "planus", - "serde", -] - [[package]] name = "ast_node" version = "0.9.6" @@ -470,9 +460,9 @@ dependencies = [ [[package]] name = "async-stripe" -version = "0.25.2" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b39347f478f57a40cbaf82cbaebb4a350acc757cda30fc7ff88707a11d1d81" +checksum = "109605d984dd71a9a278e2d43a2831a20e80f25c3bcc25174096d12352cfc469" dependencies = [ "chrono", "futures-util", @@ -861,19 +851,19 @@ dependencies = [ [[package]] name = "axum" -version = "0.6.20" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "headers", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.28", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.2.0", + "hyper-util", "itoa", "matchit", "memchr", @@ -890,23 +880,28 @@ dependencies = [ "tower", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" dependencies = [ "async-trait", "bytes", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -1645,6 +1640,16 @@ name = "cookie" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "cookie" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8" dependencies = [ "percent-encoding", "time", @@ -3068,7 +3073,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "seq-macro", ] @@ -3083,7 +3088,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "seq-macro", ] @@ -3098,7 +3103,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "seq-macro", ] @@ -3116,7 +3121,7 @@ dependencies = [ "once_cell", "paste", "pulp", - "raw-cpuid", + "raw-cpuid 10.7.0", "rayon", "seq-macro", "sysctl", @@ -3135,7 +3140,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "rayon", "seq-macro", ] @@ -3151,7 +3156,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "seq-macro", ] @@ -3166,7 +3171,7 @@ dependencies = [ "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", "seq-macro", ] @@ -3394,30 +3399,6 @@ dependencies = [ "hashbrown 0.14.3", ] -[[package]] -name = "headers" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" -dependencies = [ - "base64 0.21.7", - "bytes", - "headers-core", - "http 0.2.12", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http 0.2.12", -] - [[package]] name = "heck" version = "0.4.1" @@ -3558,12 +3539,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - [[package]] name = "http-types" version = "2.12.0" @@ -3640,6 +3615,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -4696,9 +4672,9 @@ dependencies = [ [[package]] name = "object_store" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2524735495ea1268be33d200e1ee97455096a0846295a21548cd2f3541de7050" +checksum = "b8718f8b65fdf67a45108d1548347d4af7d71fb81ce727bbf9e3b2535e079db3" dependencies = [ "async-trait", "base64 0.21.7", @@ -4707,7 +4683,8 @@ dependencies = [ "futures", "humantime", "hyper 0.14.28", - "itertools 0.11.0", + "itertools 0.12.1", + "md-5 0.10.6", "parking_lot", "percent-encoding", "quick-xml 0.31.0", @@ -5228,32 +5205,36 @@ dependencies = [ [[package]] name = "polars" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8e52f9236eb722da0990a70bbb1216dcc7a77bcb00c63439d2d982823e90d5" +checksum = "f01006048a264047d6cba081fed8e11adbd69c15956f9e53185a9ac4a541853c" dependencies = [ "getrandom 0.2.12", + "polars-arrow", "polars-core", + "polars-error", "polars-io", "polars-lazy", "polars-ops", + "polars-parquet", "polars-sql", "polars-time", + "polars-utils", "version_check", ] [[package]] name = "polars-arrow" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd503430a6d9779b07915d858865fe998317ef3cfef8973881f578ac5d4baae7" +checksum = "25197f40d71f82b2f79bb394f03e555d3cc1ce4db1dd052c28318721c71e96ad" dependencies = [ "ahash 0.8.11", - "arrow-format", "atoi", "atoi_simd", "bytemuck", "chrono", + "chrono-tz", "dyn-clone", "either", "ethnum", @@ -5263,37 +5244,66 @@ dependencies = [ "getrandom 0.2.12", "hashbrown 0.14.3", "itoa", + "itoap", "lz4", "multiversion", "num-traits", + "polars-arrow-format", "polars-error", "polars-utils", - "rustc_version 0.4.0", "ryu", "simdutf8", "streaming-iterator", "strength_reduce", + "version_check", "zstd 0.13.0", ] [[package]] -name = "polars-core" -version = "0.35.4" +name = "polars-arrow-format" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae73d5b8e55decde670caba1cc82b61f14bfb9a72503198f0997d657a98dcfd6" +checksum = "19b0ef2474af9396b19025b189d96e992311e6a47f90c53cd998b36c4c64b84c" +dependencies = [ + "planus", + "serde", +] + +[[package]] +name = "polars-compute" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c354515f73cdbbad03c2bf723fcd68e6825943b3ec503055abc8a8cb08ce46bb" +dependencies = [ + "bytemuck", + "either", + "num-traits", + "polars-arrow", + "polars-error", + "polars-utils", + "strength_reduce", + "version_check", +] + +[[package]] +name = "polars-core" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f20d3c227186f74aa3c228c64ef72f5a15617322fed30b4323eaf53b25f8e7b" dependencies = [ "ahash 0.8.11", "bitflags 2.5.0", "bytemuck", "chrono", + "chrono-tz", "comfy-table", "either", "hashbrown 0.14.3", "indexmap 2.2.5", - "itoap", "num-traits", "once_cell", "polars-arrow", + "polars-compute", "polars-error", "polars-row", "polars-utils", @@ -5310,12 +5320,12 @@ dependencies = [ [[package]] name = "polars-error" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0520d68eaa9993ae0c741409d1526beff5b8f48e1d73e4381616f8152cf488" +checksum = "d66dd0ce51f8bd620eb8bd376502fe68a2b1a446d5433ecd2e75270b0755ce76" dependencies = [ - "arrow-format", "object_store", + "polars-arrow-format", "regex", "simdutf8", "thiserror", @@ -5323,9 +5333,9 @@ dependencies = [ [[package]] name = "polars-io" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e10a0745acd6009db64bef0ceb9e23a70b1c27b26a0a6517c91f3e6363bc06" +checksum = "b40bef2edcdc58394792c4d779465144283a09ff1836324e7b72df7978a6e992" dependencies = [ "ahash 0.8.11", "async-trait", @@ -5363,9 +5373,9 @@ dependencies = [ [[package]] name = "polars-lazy" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3555f759705be6dd0d3762d16a0b8787b2dc4da73b57465f3b2bf1a070ba8f20" +checksum = "c27df26a19d3092298d31d47614ad84dc330c106e38aa8cd53727cd91c07cf56" dependencies = [ "ahash 0.8.11", "bitflags 2.5.0", @@ -5388,33 +5398,39 @@ dependencies = [ [[package]] name = "polars-ops" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7eb218296aaa7f79945f08288ca32ca3cf25fa505649eeee689ec21eebf636" +checksum = "7f8a51c3bdc9e7c34196ff6f5c3cb17da134e5aafb1756aaf24b76c7118e63dc" dependencies = [ "ahash 0.8.11", "argminmax", + "base64 0.21.7", "bytemuck", + "chrono", + "chrono-tz", "either", "hashbrown 0.14.3", + "hex", "indexmap 2.2.5", "memchr", "num-traits", "polars-arrow", + "polars-compute", "polars-core", "polars-error", "polars-utils", "rayon", "regex", "smartstring", + "unicode-reverse", "version_check", ] [[package]] name = "polars-parquet" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146010e4b7dd4d2d0e58ddc762f6361f77d7a0385c54471199370c17164f67dd" +checksum = "b8824ee00fbbe83d69553f2711014c50361238d210ed81a7a297695b7db97d42" dependencies = [ "ahash 0.8.11", "async-stream", @@ -5438,9 +5454,9 @@ dependencies = [ [[package]] name = "polars-pipe" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66094e7df64c932a9a7bdfe7df0c65efdcb192096e11a6a765a9778f78b4bdec" +checksum = "0c5e2c1f14e81d60cfa9afe4e611a9bad9631a2cb7cd19b7c0094d0dc32f0231" dependencies = [ "crossbeam-channel", "crossbeam-queue", @@ -5449,6 +5465,7 @@ dependencies = [ "hashbrown 0.14.3", "num-traits", "polars-arrow", + "polars-compute", "polars-core", "polars-io", "polars-ops", @@ -5458,17 +5475,20 @@ dependencies = [ "rayon", "smartstring", "tokio", + "uuid 1.8.0", "version_check", ] [[package]] name = "polars-plan" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10e32a0958ef854b132bad7f8369cb3237254635d5e864c99505bc0bc1035fbc" +checksum = "ff48362bd1b078bbbec7e7ba9ec01fea58fee2887db22a8e3deaf78f322fa3c4" dependencies = [ "ahash 0.8.11", "bytemuck", + "chrono-tz", + "futures", "once_cell", "percent-encoding", "polars-arrow", @@ -5487,10 +5507,11 @@ dependencies = [ [[package]] name = "polars-row" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135ab81cac2906ba74ea8984c7e6025d081ae5867615bcefb4d84dfdb456dac" +checksum = "63029da56ff6a720b190490bbc7b6263f9b72d1134311b1f381fc8d306d37770" dependencies = [ + "bytemuck", "polars-arrow", "polars-error", "polars-utils", @@ -5498,10 +5519,11 @@ dependencies = [ [[package]] name = "polars-sql" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dbd7786849a5e3ad1fde188bf38141632f626e3a57319b0bbf7a5f1d75519e" +checksum = "3652c362959f608d1297196b973d1e3acb508a9562b886ac39bf7606b841052b" dependencies = [ + "hex", "polars-arrow", "polars-core", "polars-error", @@ -5515,12 +5537,13 @@ dependencies = [ [[package]] name = "polars-time" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae56f79e9cedd617773c1c8f5ca84a31a8b1d593714959d5f799e7bdd98fe51" +checksum = "86eb74ea6ddfe675aa5c3f33c00dadbe2b85f0e8e3887b85db1fd5a3397267fd" dependencies = [ "atoi", "chrono", + "chrono-tz", "now", "once_cell", "polars-arrow", @@ -5534,9 +5557,9 @@ dependencies = [ [[package]] name = "polars-utils" -version = "0.35.4" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da6ce68169fe61d46958c8eab7447360f30f2f23f6e24a0ce703a14b0a3cfbfc" +checksum = "694656a7d2b0cd8f07660dbc8d0fb7a81066ff57a452264907531d805c1e58c4" dependencies = [ "ahash 0.8.11", "bytemuck", @@ -5545,6 +5568,7 @@ dependencies = [ "num-traits", "once_cell", "polars-error", + "raw-cpuid 11.0.1", "rayon", "smartstring", "sysinfo", @@ -6069,6 +6093,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "raw-cpuid" +version = "11.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "rayon" version = "1.9.0" @@ -6259,6 +6292,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls 0.21.10", + "rustls-native-certs", "rustls-pemfile", "serde", "serde_json", @@ -6272,7 +6306,7 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.3.0", "web-sys", "webpki-roots 0.25.4", "winreg", @@ -6312,10 +6346,12 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams 0.4.0", "web-sys", "winreg", ] @@ -8216,16 +8252,16 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.29.11" +version = "0.30.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666" +checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18" dependencies = [ "cfg-if", "core-foundation-sys", "libc", "ntapi", "once_cell", - "winapi", + "windows", ] [[package]] @@ -8739,15 +8775,15 @@ dependencies = [ [[package]] name = "tower-cookies" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f38d941a2ffd8402b36e02ae407637a9caceb693aaf2edc910437db0f36984" +checksum = "4fd0118512cf0b3768f7fcccf0bef1ae41d68f2b45edc1e77432b36c97c56c6d" dependencies = [ "async-trait", "axum-core", - "cookie", + "cookie 0.18.0", "futures-util", - "http 0.2.12", + "http 1.1.0", "parking_lot", "pin-project-lite", "tower-layer", @@ -8756,17 +8792,15 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.5.0", "bytes", - "futures-core", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "http-range-header", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", "pin-project-lite", "tower-layer", "tower-service", @@ -9113,6 +9147,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "unicode-reverse" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "unicode-segmentation" version = "1.11.0" @@ -9442,6 +9485,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wav" version = "1.0.0" @@ -9618,7 +9674,7 @@ dependencies = [ "candle-transformers", "chrono", "chrono-tz", - "cookie", + "cookie 0.17.0", "crc", "cron", "futures", @@ -9626,7 +9682,8 @@ dependencies = [ "hex", "hf-hub", "hmac", - "hyper 0.14.28", + "http 1.1.0", + "hyper 1.2.0", "itertools 0.12.1", "lazy_static", "magic-crypt", @@ -9641,6 +9698,7 @@ dependencies = [ "quick_cache", "rand 0.8.5", "regex", + "reqwest 0.11.20", "reqwest 0.12.0", "rsa 0.7.2", "rsmq_async", @@ -9719,7 +9777,7 @@ dependencies = [ "git-version", "hex", "hmac", - "hyper 0.14.28", + "hyper 1.2.0", "itertools 0.12.1", "lazy_static", "magic-crypt", @@ -9974,6 +10032,16 @@ dependencies = [ "windmill-queue", ] +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.4", +] + [[package]] name = "windows-core" version = "0.52.0" diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 2260fe60e5..326339e40e 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -107,13 +107,13 @@ windmill-parser-sql = { path = "./parsers/windmill-parser-sql" } windmill-parser-graphql = { path = "./parsers/windmill-parser-graphql" } windmill-api-client = { path = "./windmill-api-client" } -axum = { version = "^0", features = ["headers"] } +axum = { version = "^0.7" } headers = "^0" -hyper = { version = "^0", features = ["full"] } +hyper = { version = "^1", features = ["full"] } tokio = { version = "^1", features = ["full", "tracing"] } tower = "^0" -tower-http = { version = "^0.4", features = ["trace", "cors"] } -tower-cookies = "0.9.0" +tower-http = { version = "^0.5", features = ["trace", "cors"] } +tower-cookies = "^0.10" serde = "^1" serde_json = { version = "^1", features = ["preserve_order", "raw_value"] } uuid = { version = "^1", features = ["serde", "v4"] } @@ -142,7 +142,8 @@ mail-send = { version = "0.4.0", features = ["builder"], default-features=false urlencoding = "^2" url = "^2" async-oauth2 = "^0" -reqwest = { version = "^0", features = ["json"] } +reqwest = { version = "^0.12", features = ["json", "stream"] } +reqwest_11 = { package = "reqwest", version = "0.11" } time = "0.3.16" serde_urlencoded = "^0" tokio-tar = "^0" @@ -188,7 +189,7 @@ serde_derive = "1.0.147" const_format = { version = "0.2", features = ["rust_1_64", "rust_1_51"] } dyn-iter = "0.2.0" rsa = "0.7.2" -async-stripe = { version = "0.25.2", features = [ +async-stripe = { version = "0.34.1", features = [ "runtime-tokio-hyper", "checkout", "billing", @@ -226,13 +227,14 @@ candle-nn = "0.3.0" tiberius = { version = "0.12.2", default-features = false, features = ["rustls", "tds73", "chrono", "sql-browser-tokio"] } pin-project = "1" -polars = { version = "0.35.4", features = ["lazy", "parquet", "aws", "azure", "csv", "dtype-full", "serde", "strings", "extract_groups"] } -polars-io = { version = "0.35.4", features = ["csv"] } -object_store = { version = "0.8.0", features = ["aws", "azure"] } +polars = { version = "0.38.3", features = ["lazy", "parquet", "aws", "azure", "csv", "dtype-full", "serde", "strings", "extract_groups"] } +polars-io = { version = "0.38.3", features = ["csv"] } +object_store = { version = "0.9.1", features = ["aws", "azure"] } openidconnect = { version = "3.4.0" } aws-config = "^1" aws-sdk-sts = "^1" crc = "^3" -tar = "^0" \ No newline at end of file +tar = "^0" +http = "^1" \ No newline at end of file diff --git a/backend/windmill-api/Cargo.toml b/backend/windmill-api/Cargo.toml index 2bd99b7a57..d395c6a4e3 100644 --- a/backend/windmill-api/Cargo.toml +++ b/backend/windmill-api/Cargo.toml @@ -39,6 +39,7 @@ tower-http.workspace = true hyper.workspace = true itertools.workspace = true reqwest.workspace = true +reqwest_11.workspace = true serde.workspace = true sqlx.workspace = true async-oauth2.workspace = true @@ -89,4 +90,4 @@ object_store = { workspace = true, optional = true} openidconnect = { workspace = true, optional = true} pin-project.workspace = true crc.workspace = true - +http.workspace = true diff --git a/backend/windmill-api/src/apps.rs b/backend/windmill-api/src/apps.rs index 2c18d11702..e480a7ac6d 100644 --- a/backend/windmill-api/src/apps.rs +++ b/backend/windmill-api/src/apps.rs @@ -14,7 +14,6 @@ use crate::{ HTTP_CLIENT, }; use axum::{ - body::StreamBody, extract::{Extension, Json, Path, Query}, response::IntoResponse, routing::{delete, get, post}, @@ -632,7 +631,7 @@ async fn create_app( } async fn list_hub_apps(Extension(db): Extension) -> impl IntoResponse { - let (status_code, headers, response) = query_elems_from_hub( + let (status_code, headers, body) = query_elems_from_hub( &HTTP_CLIENT, "https://hub.windmill.dev/searchUiData?approved=true", None, @@ -642,7 +641,7 @@ async fn list_hub_apps(Extension(db): Extension) -> impl IntoResponse { Ok::<_, Error>(( status_code, headers, - StreamBody::new(response.bytes_stream()), + body )) } diff --git a/backend/windmill-api/src/flows.rs b/backend/windmill-api/src/flows.rs index b2878f0666..bf8afe7a66 100644 --- a/backend/windmill-api/src/flows.rs +++ b/backend/windmill-api/src/flows.rs @@ -16,7 +16,6 @@ use crate::{ webhook_util::{WebhookMessage, WebhookShared}, HTTP_CLIENT, }; -use axum::body::StreamBody; use axum::response::IntoResponse; use axum::{ extract::{Extension, Path, Query}, @@ -177,7 +176,7 @@ async fn list_hub_flows(Extension(db): Extension) -> impl IntoResponse { Ok::<_, Error>(( status_code, headers, - StreamBody::new(response.bytes_stream()), + response )) } diff --git a/backend/windmill-api/src/integration.rs b/backend/windmill-api/src/integration.rs index 6d9c91be44..657c3019c7 100644 --- a/backend/windmill-api/src/integration.rs +++ b/backend/windmill-api/src/integration.rs @@ -1,6 +1,6 @@ use crate::{db::DB, HTTP_CLIENT}; use axum::{ - body::StreamBody, extract::Query, response::IntoResponse, routing::get, Extension, Router, + extract::Query, response::IntoResponse, routing::get, Extension, Router, }; use windmill_common::{error::Error, utils::query_elems_from_hub}; @@ -32,6 +32,6 @@ async fn list_hub_integrations( Ok::<_, Error>(( status_code, headers, - StreamBody::new(response.bytes_stream()), + response )) } diff --git a/backend/windmill-api/src/lib.rs b/backend/windmill-api/src/lib.rs index fb0b1ece71..2595238dcb 100644 --- a/backend/windmill-api/src/lib.rs +++ b/backend/windmill-api/src/lib.rs @@ -23,7 +23,7 @@ use axum::extract::DefaultBodyLimit; use axum::{middleware::from_extractor, routing::get, Extension, Router}; use db::DB; use git_version::git_version; -use hyper::{http, Method}; +use hyper::http; use reqwest::Client; use std::collections::HashMap; use std::{net::SocketAddr, sync::Arc}; @@ -108,6 +108,11 @@ lazy_static::lazy_static! { .danger_accept_invalid_certs(std::env::var("ACCEPT_INVALID_CERTS").is_ok()) .build().unwrap(); + pub static ref HTTP_CLIENT_11: reqwest_11::Client = reqwest_11::ClientBuilder::new() + .user_agent("windmill/beta") + .danger_accept_invalid_certs(std::env::var("ACCEPT_INVALID_CERTS").is_ok()) + .build().unwrap(); + pub static ref OAUTH_CLIENTS: Arc> = Arc::new(RwLock::new(AllClients { logins: HashMap::new(), connects: HashMap::new(), @@ -161,7 +166,7 @@ pub async fn run_server( )); let cors = CorsLayer::new() - .allow_methods([Method::GET, Method::POST]) + .allow_methods([http::Method::GET, http::Method::POST]) .allow_headers([http::header::CONTENT_TYPE, http::header::AUTHORIZATION]) .allow_origin(Any); @@ -304,21 +309,26 @@ pub async fn run_server( let instance_name = rd_string(5); - let server = axum::Server::bind(&addr).serve(app.into_make_service()); - let port = server.local_addr().port(); + let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); + let port = listener.local_addr().map(|x| x.port()).unwrap_or(8000); + let ip = listener.local_addr().map(|x| x.ip().to_string()).unwrap_or("localhost".to_string()); + + let server = axum::serve(listener, app.into_make_service()); + + tracing::info!( instance = %instance_name, "server started on port={} and addr={}", port, - server.local_addr().ip() + ip ); port_tx - .send(format!("http://localhost:{}", server.local_addr().port())) + .send(format!("http://localhost:{}", port)) .expect("Failed to send port"); - let server = server.with_graceful_shutdown(async { + let server = server.with_graceful_shutdown(async move { rx.recv().await.ok(); println!("Graceful shutdown of server"); }); diff --git a/backend/windmill-api/src/openai.rs b/backend/windmill-api/src/openai.rs index c124252c0a..5e23bf05ad 100644 --- a/backend/windmill-api/src/openai.rs +++ b/backend/windmill-api/src/openai.rs @@ -6,7 +6,7 @@ use crate::{ }; use axum::{ - body::{Bytes, StreamBody}, + body::Bytes, extract::{Extension, Path, Query}, response::IntoResponse, routing::post, @@ -337,5 +337,5 @@ async fn proxy( let headers = response.headers().clone(); let stream = response.bytes_stream(); - Ok((status_code, headers, StreamBody::new(stream))) + Ok((status_code, headers, axum::body::Body::from_stream(stream))) } diff --git a/backend/windmill-api/src/raw_apps.rs b/backend/windmill-api/src/raw_apps.rs index e70b3b5af5..5ec84a1c7e 100644 --- a/backend/windmill-api/src/raw_apps.rs +++ b/backend/windmill-api/src/raw_apps.rs @@ -11,13 +11,12 @@ use crate::{ webhook_util::{WebhookMessage, WebhookShared}, }; use axum::{ - body, + body::Body, extract::{Extension, Json, Path, Query}, response::Response, routing::{delete, get, post}, Router, }; -use bytes::Bytes; use hyper::{header, StatusCode}; use serde::{Deserialize, Serialize}; use sql_builder::{bind::Bind, SqlBuilder}; @@ -136,7 +135,7 @@ async fn get_data( let res = Response::builder().header(header::CONTENT_TYPE, "text/javascript"); Ok(res - .body(body::boxed(body::Full::from(Bytes::from(app)))) + .body(Body::from(app)) .unwrap()) } diff --git a/backend/windmill-api/src/resources.rs b/backend/windmill-api/src/resources.rs index 3095fcd713..20970f330b 100644 --- a/backend/windmill-api/src/resources.rs +++ b/backend/windmill-api/src/resources.rs @@ -12,13 +12,12 @@ use crate::{ webhook_util::{WebhookMessage, WebhookShared}, }; use axum::{ - body, + body::Body, extract::{Extension, Path, Query}, response::Response, routing::{delete, get, post}, Json, Router, }; -use bytes::Bytes; use hyper::{header, StatusCode}; use serde::{Deserialize, Serialize}; use serde_json::{value::RawValue, Value}; @@ -387,7 +386,7 @@ async fn custom_component( let res = Response::builder().header(header::CONTENT_TYPE, "text/javascript"); Ok(res - .body(body::boxed(body::Full::from(Bytes::from(cc)))) + .body(Body::from(cc)) .unwrap()) } diff --git a/backend/windmill-api/src/scripts.rs b/backend/windmill-api/src/scripts.rs index 2b421dfe3b..488d216962 100644 --- a/backend/windmill-api/src/scripts.rs +++ b/backend/windmill-api/src/scripts.rs @@ -14,7 +14,6 @@ use crate::{ HTTP_CLIENT, }; use axum::{ - body::StreamBody, extract::{Extension, Path, Query}, response::IntoResponse, routing::{get, post}, @@ -298,7 +297,7 @@ async fn get_top_hub_scripts( Ok::<_, Error>(( status_code, headers, - StreamBody::new(response.bytes_stream()), + response, )) } diff --git a/backend/windmill-api/src/static_assets.rs b/backend/windmill-api/src/static_assets.rs index 272488f9c9..ec45a32fef 100644 --- a/backend/windmill-api/src/static_assets.rs +++ b/backend/windmill-api/src/static_assets.rs @@ -7,7 +7,7 @@ */ use axum::{ - body::{self, BoxBody}, + body::Body, extract::OriginalUri, http::{header, Response}, response::IntoResponse, @@ -28,7 +28,7 @@ struct Asset; pub struct StaticFile(Uri); impl IntoResponse for StaticFile { - fn into_response(self) -> Response { + fn into_response(self) -> Response { let path = self.0.path().trim_start_matches('/'); serve_path(path) } @@ -36,16 +36,16 @@ impl IntoResponse for StaticFile { const TWO_HUNDRED: &str = "200.html"; -fn serve_path(path: &str) -> Response { +fn serve_path(path: &str) -> Response { if path.starts_with("api/") { return Response::builder() .status(404) - .body(body::boxed(body::Empty::new())) + .body(Body::empty()) .unwrap(); } match Asset::get(path) { Some(content) => { - let body = body::boxed(body::Full::from(content.data)); + let body = Body::from(content.data); let mime = mime_guess::from_path(path).first_or_octet_stream(); let mut res = Response::builder() .header(header::CONTENT_TYPE, mime.as_ref()) @@ -64,7 +64,7 @@ fn serve_path(path: &str) -> Response { } None if path.starts_with("_app/") => Response::builder() .status(404) - .body(body::boxed(body::Empty::new())) + .body(Body::empty()) .unwrap(), None => serve_path(TWO_HUNDRED), } diff --git a/backend/windmill-api/src/users.rs b/backend/windmill-api/src/users.rs index f8d40e26d0..457c837f53 100644 --- a/backend/windmill-api/src/users.rs +++ b/backend/windmill-api/src/users.rs @@ -2179,7 +2179,7 @@ pub async fn create_session_token<'c>( .await?; let mut cookie = Cookie::new(COOKIE_NAME, token.clone()); cookie.set_secure(IS_SECURE.read().await.clone()); - cookie.set_same_site(Some(cookie::SameSite::Lax)); + cookie.set_same_site(Some(tower_cookies::cookie::SameSite::Lax)); cookie.set_http_only(true); cookie.set_path(COOKIE_PATH); if COOKIE_DOMAIN.is_some() { diff --git a/backend/windmill-api/src/workspaces.rs b/backend/windmill-api/src/workspaces.rs index 8eb637ffc3..63fd31c375 100644 --- a/backend/windmill-api/src/workspaces.rs +++ b/backend/windmill-api/src/workspaces.rs @@ -22,15 +22,14 @@ use crate::{ }; use axum::{ - body::StreamBody, extract::{Extension, Path, Query}, - headers, response::IntoResponse, routing::{delete, get, post}, Json, Router, }; use chrono::Utc; +use http::HeaderName; use itertools::Itertools; use regex::Regex; @@ -2270,7 +2269,7 @@ async fn tarball_workspace( include_settings, default_ts, }): Query, -) -> Result<([(headers::HeaderName, String); 2], impl IntoResponse)> { +) -> Result<([(HeaderName, String); 2], impl IntoResponse)> { // require_admin(authed.is_admin, &authed.username)?; let mut tx = user_db.begin(&authed).await?; @@ -2622,7 +2621,7 @@ async fn tarball_workspace( let file = tokio::fs::File::open(&file_path).await?; let stream = ReaderStream::new(file); - let body = StreamBody::new(stream); + let body = axum::body::Body::from_stream(stream); let headers = [ (header::CONTENT_TYPE, "application/x-tar".to_string()), diff --git a/backend/windmill-common/src/error.rs b/backend/windmill-common/src/error.rs index e2321251a6..e3c1a7f95d 100644 --- a/backend/windmill-common/src/error.rs +++ b/backend/windmill-common/src/error.rs @@ -6,9 +6,9 @@ * LICENSE-AGPL for a copy of the license. */ +use axum::body::Body; use axum::response::Response; use axum::{ - body::{self, BoxBody}, response::IntoResponse, response::Json, }; @@ -73,9 +73,9 @@ pub fn to_anyhow(e: T) -> anyhow:: } impl IntoResponse for Error { - fn into_response(self) -> axum::response::Response { + fn into_response(self) -> axum::response::Response { let e = &self; - let body = body::boxed(body::Full::from(e.to_string())); + let body = Body::from(e.to_string()); let status = match self { Self::NotFound(_) => axum::http::StatusCode::NOT_FOUND, @@ -117,7 +117,7 @@ pub struct AppError(anyhow::Error); // Tell axum how to convert `AppError` into a response. impl IntoResponse for AppError { fn into_response(self) -> Response { - let body = body::boxed(body::Full::from(self.0.to_string())); + let body = Body::from(self.0.to_string()); tracing::error!(error = self.0.to_string()); axum::response::Response::builder() .header("Content-Type", "text/plain") diff --git a/backend/windmill-common/src/lib.rs b/backend/windmill-common/src/lib.rs index 65dcdd6e6e..72cfe86f6e 100644 --- a/backend/windmill-common/src/lib.rs +++ b/backend/windmill-common/src/lib.rs @@ -150,9 +150,9 @@ pub async fn serve_metrics( tokio::spawn(async move { tracing::info!("Serving metrics at: {addr}"); - if let Err(e) = axum::Server::bind(&addr) - .serve(router.into_make_service()) - .with_graceful_shutdown(async { + let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); + if let Err(e) = axum::serve(listener, router.into_make_service()) + .with_graceful_shutdown(async move { rx.recv().await.ok(); println!("Graceful shutdown of metrics"); }) diff --git a/backend/windmill-common/src/utils.rs b/backend/windmill-common/src/utils.rs index 81d207d2fa..40dcc6531e 100644 --- a/backend/windmill-common/src/utils.rs +++ b/backend/windmill-common/src/utils.rs @@ -11,7 +11,6 @@ use crate::error::{to_anyhow, Error, Result}; use crate::global_settings::UNIQUE_ID_SETTING; use crate::DB; use git_version::git_version; -use hyper::{HeaderMap, StatusCode}; use rand::{distributions::Alphanumeric, thread_rng, Rng}; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; @@ -86,12 +85,12 @@ pub async fn query_elems_from_hub( url: &str, query_params: Option>, db: &DB, -) -> Result<(StatusCode, HeaderMap, reqwest::Response)> { +) -> Result<(reqwest::StatusCode, reqwest::header::HeaderMap, axum::body::Body)> { let response = http_get_from_hub(http_client, url, false, query_params, db).await?; let status = response.status(); - Ok((status, response.headers().clone(), response)) + Ok((status, response.headers().clone(), axum::body::Body::from_stream(response.bytes_stream()))) } pub async fn http_get_from_hub(