This is an automated email from the ASF dual-hosted git repository.

piotr pushed a commit to branch update_packages_and_security
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit 0cbd66a720d02fad0a36ea389ac42acdcd0ba187
Author: spetz <[email protected]>
AuthorDate: Thu Sep 18 12:51:57 2025 +0200

    security(server): generate root password, switch to argon2 from bcrypt, 
update deps
---
 Cargo.lock                                         | 744 +++++++++++----------
 Cargo.toml                                         |  34 +-
 DEPENDENCIES.md                                    | 193 +++---
 Dockerfile                                         |   4 +
 bdd/Dockerfile                                     |   4 +
 bdd/csharp/Dockerfile                              |   6 +-
 bdd/rust/Dockerfile                                |   4 +
 core/ai/mcp/Cargo.toml                             |   3 +-
 core/bench/dashboard/server/Cargo.toml             |   4 +-
 core/cli/Cargo.toml                                |   2 +-
 core/common/Cargo.toml                             |   2 +-
 core/common/src/utils/expiry.rs                    |   2 +-
 core/configs/server.toml                           |  12 +-
 core/integration/Cargo.toml                        |   4 +-
 core/integration/src/test_mcp_server.rs            |   1 +
 core/integration/src/test_server.rs                |  16 +
 core/server/Cargo.toml                             |   3 +-
 core/server/src/http/jwt/jwt_manager.rs            |   4 +-
 .../streaming/systems/personal_access_tokens.rs    |   2 +-
 core/server/src/streaming/systems/users.rs         |  14 +-
 core/server/src/streaming/utils/crypto.rs          |  26 +-
 foreign/cpp/tests/e2e/server.toml                  |  12 +-
 web/README.md                                      |   2 +-
 23 files changed, 600 insertions(+), 498 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index c6c50ea5..4a52e543 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,7 +8,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "bytes",
  "futures-core",
  "futures-sink",
@@ -36,15 +36,15 @@ dependencies = [
 
 [[package]]
 name = "actix-files"
-version = "0.6.7"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "22c8b5536deb14cd9c3e505bd0e3366e1a12383b659c92f2b4fa4d323d583599"
+checksum = "6c0d87f10d70e2948ad40e8edea79c8e77c6c66e0250a4c1f09b690465199576"
 dependencies = [
  "actix-http",
  "actix-service",
  "actix-utils",
  "actix-web",
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "bytes",
  "derive_more 2.0.1",
  "futures-core",
@@ -68,7 +68,7 @@ dependencies = [
  "actix-service",
  "actix-utils",
  "base64 0.22.1",
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "brotli",
  "bytes",
  "bytestring",
@@ -328,12 +328,6 @@ version = "0.2.21"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
 
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
 [[package]]
 name = "android_system_properties"
 version = "0.1.5"
@@ -420,6 +414,18 @@ version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
+[[package]]
+name = "argon2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
+dependencies = [
+ "base64ct",
+ "blake2",
+ "cpufeatures",
+ "password-hash",
+]
+
 [[package]]
 name = "arraydeque"
 version = "0.5.1"
@@ -623,17 +629,18 @@ checksum = 
"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "attohttpc"
-version = "0.28.5"
+version = "0.30.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "07a9b245ba0739fc90935094c29adbaee3f977218b5fb95e822e261cda7f56a3"
+checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9"
 dependencies = [
+ "base64 0.22.1",
  "http 1.3.1",
  "log",
  "rustls",
  "serde",
  "serde_json",
  "url",
- "webpki-roots 0.26.11",
+ "webpki-roots 1.0.2",
 ]
 
 [[package]]
@@ -644,26 +651,26 @@ checksum = 
"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
 
 [[package]]
 name = "aws-creds"
-version = "0.38.0"
+version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ba912106484991c456adb3364338a2534d0818bd9374b324b608074e3b55f581"
+checksum = "b13804829a843b3f26e151c97acbb315ee1177a2724690edfcd28f1894146200"
 dependencies = [
  "attohttpc",
  "home",
  "log",
- "quick-xml 0.32.0",
+ "quick-xml",
  "rust-ini",
  "serde",
- "thiserror 1.0.69",
+ "thiserror 2.0.16",
  "time",
  "url",
 ]
 
 [[package]]
 name = "aws-lc-rs"
-version = "1.13.3"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba"
+checksum = "94b8ff6c09cd57b16da53641caa860168b88c172a5ee163b0288d3d6eea12786"
 dependencies = [
  "aws-lc-sys",
  "zeroize",
@@ -671,9 +678,9 @@ dependencies = [
 
 [[package]]
 name = "aws-lc-sys"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff"
+checksum = "0e44d16778acaf6a9ec9899b92cebd65580b83f685446bf2e1f5d3d732f99dcd"
 dependencies = [
  "bindgen",
  "cc",
@@ -684,11 +691,11 @@ dependencies = [
 
 [[package]]
 name = "aws-region"
-version = "0.26.0"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "73ae4ae7c45238b60af0a3b27ef2fcc7bd5b8fdcd8a6d679919558b40d3eff7a"
+checksum = "5532f65342f789f9c1b7078ea9c9cd9293cd62dcc284fa99adc4a1c9ba43469c"
 dependencies = [
- "thiserror 1.0.69",
+ "thiserror 2.0.16",
 ]
 
 [[package]]
@@ -847,19 +854,6 @@ version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
 
-[[package]]
-name = "bcrypt"
-version = "0.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "abaf6da45c74385272ddf00e1ac074c7d8a6c1a1dda376902bd6a427522a8b2c"
-dependencies = [
- "base64 0.22.1",
- "blowfish",
- "getrandom 0.3.3",
- "subtle",
- "zeroize",
-]
-
 [[package]]
 name = "bdd"
 version = "0.0.1"
@@ -970,25 +964,22 @@ dependencies = [
 
 [[package]]
 name = "bindgen"
-version = "0.69.5"
+version = "0.72.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
+checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "cexpr",
  "clang-sys",
- "itertools 0.12.1",
- "lazy_static",
- "lazycell",
+ "itertools 0.13.0",
  "log",
  "prettyplease",
  "proc-macro2",
  "quote",
  "regex",
- "rustc-hash 1.1.0",
+ "rustc-hash",
  "shlex",
  "syn 2.0.106",
- "which",
 ]
 
 [[package]]
@@ -999,9 +990,9 @@ checksum = 
"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.9.3"
+version = "2.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d"
+checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
 dependencies = [
  "serde",
 ]
@@ -1018,6 +1009,15 @@ dependencies = [
  "wyz",
 ]
 
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
 [[package]]
 name = "blake3"
 version = "1.8.2"
@@ -1040,21 +1040,11 @@ dependencies = [
  "generic-array",
 ]
 
-[[package]]
-name = "blowfish"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
-dependencies = [
- "byteorder",
- "cipher",
-]
-
 [[package]]
 name = "bon"
-version = "3.7.1"
+version = "3.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "537c317ddf588aab15c695bf92cf55dec159b93221c074180ca3e0e5a94da415"
+checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb"
 dependencies = [
  "bon-macros",
  "rustversion",
@@ -1062,9 +1052,9 @@ dependencies = [
 
 [[package]]
 name = "bon-macros"
-version = "3.7.1"
+version = "3.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ca5abbf2d4a4c6896197c9de13d6d7cb7eff438c63dacde1dde980569cb00248"
+checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005"
 dependencies = [
  "darling 0.21.3",
  "ident_case",
@@ -1098,7 +1088,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3"
 dependencies = [
  "once_cell",
- "proc-macro-crate 3.3.0",
+ "proc-macro-crate 3.4.0",
  "proc-macro2",
  "quote",
  "syn 2.0.106",
@@ -1201,9 +1191,9 @@ checksum = 
"d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
 
 [[package]]
 name = "bytestring"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f"
+checksum = "113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289"
 dependencies = [
  "bytes",
 ]
@@ -1219,11 +1209,11 @@ dependencies = [
 
 [[package]]
 name = "camino"
-version = "1.1.12"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5"
+checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603"
 dependencies = [
- "serde",
+ "serde_core",
 ]
 
 [[package]]
@@ -1260,10 +1250,11 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.2.34"
+version = "1.2.37"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc"
+checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44"
 dependencies = [
+ "find-msvc-tools",
  "jobserver",
  "libc",
  "shlex",
@@ -1326,17 +1317,16 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.41"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
+checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
 dependencies = [
- "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-link",
+ "windows-link 0.2.0",
 ]
 
 [[package]]
@@ -1385,9 +1375,9 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.5.57"
+version = "4.5.58"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4d9501bd3f5f09f7bbee01da9a511073ed30a80cd7a509f1214bb74eadea71ad"
+checksum = "75bf0b32ad2e152de789bb635ea4d3078f6b838ad7974143e99b99f45a04af4a"
 dependencies = [
  "clap",
 ]
@@ -1455,9 +1445,9 @@ dependencies = [
 
 [[package]]
 name = "comfy-table"
-version = "7.2.0"
+version = "7.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3f8e18d0dca9578507f13f9803add0df13362b02c501c1c17734f0dbb52eaf0b"
+checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b"
 dependencies = [
  "crossterm",
  "unicode-segmentation",
@@ -1508,9 +1498,9 @@ dependencies = [
 
 [[package]]
 name = "config"
-version = "0.15.15"
+version = "0.15.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0faa974509d38b33ff89282db9c3295707ccf031727c0de9772038ec526852ba"
+checksum = "cef036f0ecf99baef11555578630e2cca559909b4c50822dbba828c252d21c49"
 dependencies = [
  "async-trait",
  "convert_case 0.6.0",
@@ -1518,10 +1508,10 @@ dependencies = [
  "pathdiff",
  "ron",
  "rust-ini",
- "serde",
  "serde-untagged",
+ "serde_core",
  "serde_json",
- "toml 0.9.5",
+ "toml 0.9.6",
  "winnow 0.7.13",
  "yaml-rust2",
 ]
@@ -1766,11 +1756,11 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "crossterm_winapi",
  "document-features",
  "parking_lot 0.12.4",
- "rustix 1.0.8",
+ "rustix",
  "winapi",
 ]
 
@@ -2009,9 +1999,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.4.0"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
+checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc"
 dependencies = [
  "powerfmt",
  "serde",
@@ -2150,7 +2140,7 @@ dependencies = [
  "libc",
  "option-ext",
  "redox_users",
- "windows-sys 0.60.2",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -2341,11 +2331,12 @@ checksum = 
"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
 
 [[package]]
 name = "erased-serde"
-version = "0.4.6"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
+checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b"
 dependencies = [
  "serde",
+ "serde_core",
  "typeid",
 ]
 
@@ -2360,12 +2351,12 @@ dependencies = [
 
 [[package]]
 name = "errno"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
 dependencies = [
  "libc",
- "windows-sys 0.60.2",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -2507,13 +2498,19 @@ dependencies = [
  "tokio",
 ]
 
+[[package]]
+name = "find-msvc-tools"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
+
 [[package]]
 name = "flatbuffers"
 version = "25.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "1045398c1bfd89168b5fd3f1fc11f6e70b34f6f66300c87d44d3de849463abf1"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "rustc_version",
 ]
 
@@ -2593,9 +2590,9 @@ checksum = 
"28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619"
 
 [[package]]
 name = "fs-err"
-version = "3.1.1"
+version = "3.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "88d7be93788013f265201256d58f04936a8079ad5dc898743aa20525f503b683"
+checksum = "44f150ffc8782f35521cec2b23727707cb4045706ba3c854e86bef66b3a8cdbd"
 dependencies = [
  "autocfg",
  "tokio",
@@ -2788,7 +2785,7 @@ dependencies = [
  "js-sys",
  "libc",
  "r-efi",
- "wasi 0.14.3+wasi-0.2.4",
+ "wasi 0.14.7+wasi-0.2.4",
  "wasm-bindgen",
 ]
 
@@ -2831,7 +2828,7 @@ version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "libc",
  "libgit2-sys",
  "log",
@@ -2863,7 +2860,7 @@ version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "ignore",
  "walkdir",
 ]
@@ -3312,7 +3309,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http 0.2.12",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -3331,7 +3328,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "http 1.3.1",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -3494,7 +3491,7 @@ checksum = 
"a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65"
 dependencies = [
  "cfg-if",
  "libc",
- "windows-link",
+ "windows-link 0.1.3",
 ]
 
 [[package]]
@@ -3568,9 +3565,9 @@ checksum = 
"f58b778a5761513caf593693f8951c97a5b610841e754788400f32102eefdff1"
 
 [[package]]
 name = "humantime"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f"
+checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
 
 [[package]]
 name = "hyper"
@@ -3629,9 +3626,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e"
+checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8"
 dependencies = [
  "base64 0.22.1",
  "bytes",
@@ -3653,9 +3650,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.63"
+version = "0.1.64"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8"
+checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3663,7 +3660,7 @@ dependencies = [
  "js-sys",
  "log",
  "wasm-bindgen",
- "windows-core 0.61.2",
+ "windows-core 0.62.0",
 ]
 
 [[package]]
@@ -3841,7 +3838,7 @@ dependencies = [
  "serde",
  "sysinfo 0.37.0",
  "tokio",
- "toml 0.9.5",
+ "toml 0.9.6",
  "tracing",
  "tracing-appender",
  "tracing-subscriber",
@@ -3919,7 +3916,7 @@ dependencies = [
  "strum",
  "thiserror 2.0.16",
  "tokio",
- "toml 0.9.5",
+ "toml 0.9.6",
  "tower-http",
  "tracing",
  "tracing-subscriber",
@@ -3937,6 +3934,7 @@ dependencies = [
  "iggy",
  "rmcp",
  "serde",
+ "serde_json",
  "strum",
  "thiserror 2.0.16",
  "tokio",
@@ -3962,7 +3960,7 @@ dependencies = [
  "serde",
  "serde_json",
  "tokio",
- "toml 0.9.5",
+ "toml 0.9.6",
  "tracing",
 ]
 
@@ -4153,7 +4151,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "f8a9aa791c7b5a71b636b7a68207fdebf171ddfc593d9c8506ec4cbc527b6a84"
 dependencies = [
  "implicit-clone-derive",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
 ]
 
 [[package]]
@@ -4179,13 +4177,14 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.11.0"
+version = "2.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9"
+checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3"
 dependencies = [
  "equivalent",
  "hashbrown 0.15.5",
  "serde",
+ "serde_core",
 ]
 
 [[package]]
@@ -4212,7 +4211,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "inotify-sys",
  "libc",
 ]
@@ -4298,7 +4297,7 @@ version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "cfg-if",
  "libc",
 ]
@@ -4325,15 +4324,6 @@ version = "1.70.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
 
-[[package]]
-name = "itertools"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
-dependencies = [
- "either",
-]
-
 [[package]]
 name = "itertools"
 version = "0.13.0"
@@ -4416,9 +4406,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.77"
+version = "0.3.80"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
+checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e"
 dependencies = [
  "once_cell",
  "wasm-bindgen",
@@ -4530,12 +4520,6 @@ dependencies = [
  "spin",
 ]
 
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
 [[package]]
 name = "lending-iterator"
 version = "0.1.7"
@@ -4643,11 +4627,11 @@ dependencies = [
 
 [[package]]
 name = "libredox"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
+checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "libc",
  "redox_syscall 0.5.17",
 ]
@@ -4674,9 +4658,9 @@ dependencies = [
 
 [[package]]
 name = "libz-rs-sys"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221"
+checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd"
 dependencies = [
  "zlib-rs",
 ]
@@ -4701,15 +4685,9 @@ checksum = 
"0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.15"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.9.4"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
 
 [[package]]
 name = "litemap"
@@ -4752,9 +4730,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.27"
+version = "0.4.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
+checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
 
 [[package]]
 name = "logos"
@@ -4809,6 +4787,16 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
 
+[[package]]
+name = "lzma-rust2"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "c60a23ffb90d527e23192f1246b14746e2f7f071cb84476dd879071696c18a4a"
+dependencies = [
+ "crc",
+ "sha2",
+]
+
 [[package]]
 name = "macro_rules_attribute"
 version = "0.1.3"
@@ -4869,9 +4857,9 @@ dependencies = [
 
 [[package]]
 name = "md5"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+checksum = "ae960838283323069879657ca3de837e9f7bbb4c7bf6ea7f1b290d5e9476d2e0"
 
 [[package]]
 name = "memchr"
@@ -5031,7 +5019,7 @@ version = "0.30.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "cfg-if",
  "cfg_aliases",
  "libc",
@@ -5082,7 +5070,7 @@ version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "fsevent-sys",
  "inotify",
  "kqueue",
@@ -5242,7 +5230,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
 ]
 
 [[package]]
@@ -5266,9 +5254,9 @@ dependencies = [
 
 [[package]]
 name = "octocrab"
-version = "0.44.1"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "86996964f8b721067b6ed238aa0ccee56ecad6ee5e714468aa567992d05d2b91"
+checksum = "e9142159757f166a7b20e3dcd410a5af008a63747c73e836a01fa4f7af84d2c4"
 dependencies = [
  "arc-swap",
  "async-trait",
@@ -5328,7 +5316,7 @@ version = "0.10.73"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -5551,6 +5539,17 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
 [[package]]
 name = "paste"
 version = "1.0.15"
@@ -5650,9 +5649,9 @@ checksum = 
"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
 
 [[package]]
 name = "pest"
-version = "2.8.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323"
+checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8"
 dependencies = [
  "memchr",
  "thiserror 2.0.16",
@@ -5661,9 +5660,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.8.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc"
+checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663"
 dependencies = [
  "pest",
  "pest_generator",
@@ -5671,9 +5670,9 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.8.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966"
+checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f"
 dependencies = [
  "pest",
  "pest_meta",
@@ -5684,9 +5683,9 @@ dependencies = [
 
 [[package]]
 name = "pest_meta"
-version = "2.8.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5"
+checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420"
 dependencies = [
  "pest",
  "sha2",
@@ -5890,11 +5889,11 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
+checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
 dependencies = [
- "toml_edit 0.22.27",
+ "toml_edit 0.23.5",
 ]
 
 [[package]]
@@ -6123,19 +6122,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.32.0"
+version = "0.38.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2"
-dependencies = [
- "memchr",
- "serde",
-]
-
-[[package]]
-name = "quick-xml"
-version = "0.36.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
+checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
 dependencies = [
  "memchr",
  "serde",
@@ -6152,7 +6141,7 @@ dependencies = [
  "pin-project-lite",
  "quinn-proto",
  "quinn-udp",
- "rustc-hash 2.1.1",
+ "rustc-hash",
  "rustls",
  "socket2 0.6.0",
  "thiserror 2.0.16",
@@ -6173,7 +6162,7 @@ dependencies = [
  "lru-slab",
  "rand 0.9.2",
  "ring",
- "rustc-hash 2.1.1",
+ "rustc-hash",
  "rustls",
  "rustls-pki-types",
  "rustls-platform-verifier",
@@ -6280,11 +6269,11 @@ dependencies = [
 
 [[package]]
 name = "raw-cpuid"
-version = "11.5.0"
+version = "11.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146"
+checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
 ]
 
 [[package]]
@@ -6309,9 +6298,9 @@ dependencies = [
 
 [[package]]
 name = "rcgen"
-version = "0.14.3"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0068c5b3cab1d4e271e0bb6539c87563c43411cad90b057b15c79958fbeb41f7"
+checksum = "4c83367ba62b3f1dbd0f086ede4e5ebfb4713fb234dbbc5807772a31245ff46d"
 dependencies = [
  "pem",
  "ring",
@@ -6335,7 +6324,7 @@ version = "0.5.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
 ]
 
 [[package]]
@@ -6552,9 +6541,9 @@ dependencies = [
 
 [[package]]
 name = "rmcp"
-version = "0.6.1"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1f521fbd040eba82684b17d787d423f43afb6e97974029b51f679157a589592a"
+checksum = "41ab0892f4938752b34ae47cb53910b1b0921e55e77ddb6e44df666cab17939f"
 dependencies = [
  "axum 0.8.4",
  "base64 0.22.1",
@@ -6584,9 +6573,9 @@ dependencies = [
 
 [[package]]
 name = "rmcp-macros"
-version = "0.6.1"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c162bf8a2846f70464ded6dda6430b60d1e2fb4b0e371f0906e39f63916641b9"
+checksum = "1827cd98dab34cade0513243c6fe0351f0f0b2c9d6825460bcf45b42804bdda0"
 dependencies = [
  "darling 0.21.3",
  "proc-macro2",
@@ -6602,7 +6591,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64 0.21.7",
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "serde",
  "serde_derive",
 ]
@@ -6645,9 +6634,9 @@ dependencies = [
 
 [[package]]
 name = "rust-s3"
-version = "0.36.0-beta.2"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "cc7d6f3a3dd397743e8f344ffc80ea7137aee423983ae25b512e5332ad11362f"
+checksum = "94f9b973bd4097f5bb47e5827dcb9fb5dc17e93879e46badc27d2a4e9a4e5588"
 dependencies = [
  "async-trait",
  "aws-creds",
@@ -6655,7 +6644,7 @@ dependencies = [
  "base64 0.22.1",
  "bytes",
  "cfg-if",
- "futures",
+ "futures-util",
  "hex",
  "hmac",
  "http 1.3.1",
@@ -6664,13 +6653,14 @@ dependencies = [
  "md5",
  "minidom",
  "percent-encoding",
- "quick-xml 0.36.2",
+ "quick-xml",
  "reqwest",
  "serde",
  "serde_derive",
  "serde_json",
  "sha2",
- "thiserror 1.0.69",
+ "sysinfo 0.37.0",
+ "thiserror 2.0.16",
  "time",
  "tokio",
  "tokio-stream",
@@ -6679,9 +6669,9 @@ dependencies = [
 
 [[package]]
 name = "rust_decimal"
-version = "1.37.2"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d"
+checksum = "c8975fc98059f365204d635119cf9c5a60ae67b841ed49b5422a9a7e56cdfac0"
 dependencies = [
  "arrayvec",
  "borsh",
@@ -6699,12 +6689,6 @@ version = "0.1.26"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
 
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
 [[package]]
 name = "rustc-hash"
 version = "2.1.1"
@@ -6722,28 +6706,15 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.44"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
-dependencies = [
- "bitflags 2.9.3",
- "errno",
- "libc",
- "linux-raw-sys 0.4.15",
- "windows-sys 0.59.0",
-]
-
-[[package]]
-name = "rustix"
-version = "1.0.8"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
+checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "errno",
  "libc",
- "linux-raw-sys 0.9.4",
- "windows-sys 0.60.2",
+ "linux-raw-sys",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -6822,9 +6793,9 @@ checksum = 
"f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.103.4"
+version = "0.103.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc"
+checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb"
 dependencies = [
  "aws-lc-rs",
  "ring",
@@ -6883,11 +6854,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.27"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d"
+checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
 dependencies = [
- "windows-sys 0.59.0",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -6975,11 +6946,11 @@ dependencies = [
 
 [[package]]
 name = "security-framework"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c"
+checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -6988,9 +6959,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.14.0"
+version = "2.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32"
+checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -6998,30 +6969,33 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.26"
+version = "1.0.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
 dependencies = [
  "serde",
+ "serde_core",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.219"
+version = "1.0.225"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d"
 dependencies = [
+ "serde_core",
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-untagged"
-version = "0.1.8"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3"
+checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058"
 dependencies = [
  "erased-serde",
  "serde",
+ "serde_core",
  "typeid",
 ]
 
@@ -7047,11 +7021,20 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "serde_core"
+version = "1.0.225"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383"
+dependencies = [
+ "serde_derive",
+]
+
 [[package]]
 name = "serde_derive"
-version = "1.0.219"
+version = "1.0.225"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -7071,24 +7054,26 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.143"
+version = "1.0.145"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
+checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
 dependencies = [
  "itoa",
  "memchr",
  "ryu",
  "serde",
+ "serde_core",
 ]
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.17"
+version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a"
+checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
 dependencies = [
  "itoa",
  "serde",
+ "serde_core",
 ]
 
 [[package]]
@@ -7102,11 +7087,11 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83"
+checksum = "2789234a13a53fc4be1b51ea1bab45a3c338bdb884862a257d10e5a74ae009e6"
 dependencies = [
- "serde",
+ "serde_core",
 ]
 
 [[package]]
@@ -7131,7 +7116,7 @@ dependencies = [
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "schemars 0.9.0",
  "schemars 1.0.4",
  "serde",
@@ -7159,7 +7144,7 @@ version = "0.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd"
 dependencies = [
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "itoa",
  "libyml",
  "memchr",
@@ -7199,10 +7184,10 @@ version = "0.5.0"
 dependencies = [
  "ahash 0.8.12",
  "anyhow",
+ "argon2",
  "async_zip",
  "axum 0.8.4",
  "axum-server",
- "bcrypt",
  "bincode 2.0.1",
  "blake3",
  "bytes",
@@ -7235,6 +7220,7 @@ dependencies = [
  "opentelemetry_sdk",
  "prometheus-client",
  "quinn",
+ "rand 0.9.2",
  "reqwest",
  "ring",
  "rust-s3",
@@ -7251,7 +7237,7 @@ dependencies = [
  "tokio",
  "tokio-rustls",
  "tokio-util",
- "toml 0.9.5",
+ "toml 0.9.6",
  "tower-http",
  "tracing",
  "tracing-appender",
@@ -7327,11 +7313,10 @@ checksum = 
"d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "simd-json"
-version = "0.15.1"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c962f626b54771990066e5435ec8331d1462576cd2d1e62f24076ae014f92112"
+checksum = "90daf33666402178ddbb5d595e6d5e6d7d372da948e23ea26762f5a23e02a04e"
 dependencies = [
- "getrandom 0.3.3",
  "halfbrown",
  "ref-cast",
  "serde",
@@ -7398,18 +7383,18 @@ checksum = 
"b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "snafu"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4800ae0e2ebdfaea32ffb9745642acdc378740dcbd74d3fb3cd87572a34810c6"
+checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2"
 dependencies = [
  "snafu-derive",
 ]
 
 [[package]]
 name = "snafu-derive"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "186f5ba9999528053fb497fdf0dd330efcc69cfe4ad03776c9d704bc54fee10f"
+checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
@@ -7497,7 +7482,7 @@ dependencies = [
  "futures-util",
  "hashbrown 0.15.5",
  "hashlink",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "log",
  "memchr",
  "once_cell",
@@ -7562,7 +7547,7 @@ checksum = 
"aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526"
 dependencies = [
  "atoi",
  "base64 0.22.1",
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "byteorder",
  "bytes",
  "chrono",
@@ -7606,7 +7591,7 @@ checksum = 
"db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46"
 dependencies = [
  "atoi",
  "base64 0.22.1",
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "byteorder",
  "chrono",
  "crc",
@@ -7862,15 +7847,15 @@ checksum = 
"55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
 name = "tempfile"
-version = "3.21.0"
+version = "3.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
+checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53"
 dependencies = [
  "fastrand",
  "getrandom 0.3.3",
  "once_cell",
- "rustix 1.0.8",
- "windows-sys 0.60.2",
+ "rustix",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -7879,7 +7864,7 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
 dependencies = [
- "rustix 1.0.8",
+ "rustix",
  "windows-sys 0.60.2",
 ]
 
@@ -7984,12 +7969,11 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.41"
+version = "0.3.43"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
+checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031"
 dependencies = [
  "deranged",
- "itoa",
  "libc",
  "num-conv",
  "num_threads",
@@ -8001,15 +7985,15 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.4"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
+checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
 
 [[package]]
 name = "time-macros"
-version = "0.2.22"
+version = "0.2.24"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
+checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
 dependencies = [
  "num-conv",
  "time-core",
@@ -8083,9 +8067,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.26.2"
+version = "0.26.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b"
+checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd"
 dependencies = [
  "rustls",
  "tokio",
@@ -8130,14 +8114,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8"
+checksum = "ae2a4cf385da23d1d53bc15cdfa5c2109e93d8d362393c801e87da2f72f0e201"
 dependencies = [
- "indexmap 2.11.0",
- "serde",
- "serde_spanned 1.0.0",
- "toml_datetime 0.7.0",
+ "indexmap 2.11.3",
+ "serde_core",
+ "serde_spanned 1.0.1",
+ "toml_datetime 0.7.1",
  "toml_parser",
  "toml_writer",
  "winnow 0.7.13",
@@ -8154,11 +8138,11 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3"
+checksum = "a197c0ec7d131bfc6f7e82c8442ba1595aeab35da7adbf05b6b73cd06a16b6be"
 dependencies = [
- "serde",
+ "serde_core",
 ]
 
 [[package]]
@@ -8167,7 +8151,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "toml_datetime 0.6.11",
  "winnow 0.5.40",
 ]
@@ -8178,7 +8162,7 @@ version = "0.22.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
 dependencies = [
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "serde",
  "serde_spanned 0.6.9",
  "toml_datetime 0.6.11",
@@ -8186,6 +8170,18 @@ dependencies = [
  "winnow 0.7.13",
 ]
 
+[[package]]
+name = "toml_edit"
+version = "0.23.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "c2ad0b7ae9cfeef5605163839cb9221f453399f15cfb5c10be9885fcf56611f9"
+dependencies = [
+ "indexmap 2.11.3",
+ "toml_datetime 0.7.1",
+ "toml_parser",
+ "winnow 0.7.13",
+]
+
 [[package]]
 name = "toml_parser"
 version = "1.0.2"
@@ -8304,7 +8300,7 @@ checksum = 
"d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
 dependencies = [
  "futures-core",
  "futures-util",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "pin-project-lite",
  "slab",
  "sync_wrapper",
@@ -8321,7 +8317,7 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
 dependencies = [
- "bitflags 2.9.3",
+ "bitflags 2.9.4",
  "bytes",
  "futures-util",
  "http 1.3.1",
@@ -8457,9 +8453,9 @@ checksum = 
"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "twox-hash"
-version = "2.1.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56"
+checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c"
 dependencies = [
  "rand 0.9.2",
 ]
@@ -8535,9 +8531,9 @@ checksum = 
"5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.18"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
+checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
 
 [[package]]
 name = "unicode-linebreak"
@@ -8644,9 +8640,9 @@ checksum = 
"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
 
 [[package]]
 name = "uuid"
-version = "1.18.0"
+version = "1.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be"
+checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
 dependencies = [
  "getrandom 0.3.3",
  "js-sys",
@@ -8777,9 +8773,18 @@ checksum = 
"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
 
 [[package]]
 name = "wasi"
-version = "0.14.3+wasi-0.2.4"
+version = "0.14.7+wasi-0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c"
+dependencies = [
+ "wasip2",
+]
+
+[[package]]
+name = "wasip2"
+version = "1.0.1+wasi-0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95"
+checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
 dependencies = [
  "wit-bindgen",
 ]
@@ -8792,21 +8797,22 @@ checksum = 
"b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.100"
+version = "0.2.103"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
+checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819"
 dependencies = [
  "cfg-if",
  "once_cell",
  "rustversion",
  "wasm-bindgen-macro",
+ "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.100"
+version = "0.2.103"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
+checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c"
 dependencies = [
  "bumpalo",
  "log",
@@ -8818,9 +8824,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.50"
+version = "0.4.53"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
+checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -8831,9 +8837,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.100"
+version = "0.2.103"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
+checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -8841,9 +8847,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.100"
+version = "0.2.103"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
+checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8854,9 +8860,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.100"
+version = "0.2.103"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
+checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf"
 dependencies = [
  "unicode-ident",
 ]
@@ -8891,9 +8897,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.77"
+version = "0.3.80"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
+checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8937,18 +8943,6 @@ dependencies = [
  "rustls-pki-types",
 ]
 
-[[package]]
-name = "which"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
-dependencies = [
- "either",
- "home",
- "once_cell",
- "rustix 0.38.44",
-]
-
 [[package]]
 name = "whoami"
 version = "1.6.1"
@@ -8977,11 +8971,11 @@ checksum = 
"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22"
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
 dependencies = [
- "windows-sys 0.60.2",
+ "windows-sys 0.61.0",
 ]
 
 [[package]]
@@ -9009,7 +9003,7 @@ dependencies = [
  "windows-collections",
  "windows-core 0.61.2",
  "windows-future",
- "windows-link",
+ "windows-link 0.1.3",
  "windows-numerics",
 ]
 
@@ -9042,9 +9036,22 @@ checksum = 
"c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
 dependencies = [
  "windows-implement 0.60.0",
  "windows-interface 0.59.1",
- "windows-link",
+ "windows-link 0.1.3",
  "windows-result 0.3.4",
- "windows-strings",
+ "windows-strings 0.4.2",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.62.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c"
+dependencies = [
+ "windows-implement 0.60.0",
+ "windows-interface 0.59.1",
+ "windows-link 0.2.0",
+ "windows-result 0.4.0",
+ "windows-strings 0.5.0",
 ]
 
 [[package]]
@@ -9054,7 +9061,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
 dependencies = [
  "windows-core 0.61.2",
- "windows-link",
+ "windows-link 0.1.3",
  "windows-threading",
 ]
 
@@ -9108,6 +9115,12 @@ version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
 
+[[package]]
+name = "windows-link"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
+
 [[package]]
 name = "windows-numerics"
 version = "0.2.0"
@@ -9115,7 +9128,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
 dependencies = [
  "windows-core 0.61.2",
- "windows-link",
+ "windows-link 0.1.3",
 ]
 
 [[package]]
@@ -9133,7 +9146,16 @@ version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
 dependencies = [
- "windows-link",
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f"
+dependencies = [
+ "windows-link 0.2.0",
 ]
 
 [[package]]
@@ -9142,7 +9164,16 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
 dependencies = [
- "windows-link",
+ "windows-link 0.1.3",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda"
+dependencies = [
+ "windows-link 0.2.0",
 ]
 
 [[package]]
@@ -9190,6 +9221,15 @@ dependencies = [
  "windows-targets 0.53.3",
 ]
 
+[[package]]
+name = "windows-sys"
+version = "0.61.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa"
+dependencies = [
+ "windows-link 0.2.0",
+]
+
 [[package]]
 name = "windows-targets"
 version = "0.42.2"
@@ -9242,7 +9282,7 @@ version = "0.53.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91"
 dependencies = [
- "windows-link",
+ "windows-link 0.1.3",
  "windows_aarch64_gnullvm 0.53.0",
  "windows_aarch64_msvc 0.53.0",
  "windows_i686_gnu 0.53.0",
@@ -9259,7 +9299,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
 dependencies = [
- "windows-link",
+ "windows-link 0.1.3",
 ]
 
 [[package]]
@@ -9462,9 +9502,9 @@ dependencies = [
 
 [[package]]
 name = "wit-bindgen"
-version = "0.45.0"
+version = "0.46.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814"
+checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
 
 [[package]]
 name = "writeable"
@@ -9483,9 +9523,9 @@ dependencies = [
 
 [[package]]
 name = "yaml-rust2"
-version = "0.10.3"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7"
+checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9"
 dependencies = [
  "arraydeque",
  "encoding_rs",
@@ -9517,7 +9557,7 @@ dependencies = [
  "futures",
  "gloo 0.10.0",
  "implicit-clone",
- "indexmap 2.11.0",
+ "indexmap 2.11.3",
  "js-sys",
  "prokio",
  "rustversion",
@@ -9619,18 +9659,18 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.8.26"
+version = "0.8.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
+checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.8.26"
+version = "0.8.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
+checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -9713,9 +9753,9 @@ dependencies = [
 
 [[package]]
 name = "zip"
-version = "4.6.0"
+version = "5.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c034aa6c54f654df20e7dc3713bc51705c12f280748fb6d7f40f87c696623e34"
+checksum = "2f852905151ac8d4d06fdca66520a661c09730a74c6d4e2b0f27b436b382e532"
 dependencies = [
  "aes",
  "arbitrary",
@@ -9726,8 +9766,8 @@ dependencies = [
  "flate2",
  "getrandom 0.3.3",
  "hmac",
- "indexmap 2.11.0",
- "liblzma",
+ "indexmap 2.11.3",
+ "lzma-rust2",
  "memchr",
  "pbkdf2",
  "ppmd-rust",
@@ -9740,9 +9780,9 @@ dependencies = [
 
 [[package]]
 name = "zlib-rs"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a"
+checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2"
 
 [[package]]
 name = "zopfli"
@@ -9776,9 +9816,9 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.15+zstd.1.5.7"
+version = "2.0.16+zstd.1.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237"
+checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748"
 dependencies = [
  "cc",
  "pkg-config",
diff --git a/Cargo.toml b/Cargo.toml
index 5b8adccb..db4e5c7f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -62,7 +62,7 @@ async_zip = { version = "0.0.18", features = [
 axum = "0.8.4"
 axum-server = { version = "0.7.2", features = ["tls-rustls"] }
 base64 = "0.22.1"
-bcrypt = "0.17.1"
+argon2 = "0.5.3"
 bench-dashboard-frontend = { path = "core/bench/dashboard/frontend" }
 bench-dashboard-server = { path = "core/bench/dashboard/server" }
 bench-dashboard-shared = { path = "core/bench/dashboard/shared" }
@@ -70,7 +70,7 @@ bench-report = { path = "core/bench/report" }
 bench-runner = { path = "core/bench/runner" }
 bincode = { version = "2.0.1", features = ["serde"] }
 blake3 = "1.8.2"
-bon = "3.7.1"
+bon = "3.7.2"
 byte-unit = { version = "5.1.6", default-features = false, features = [
     "serde",
     "byte",
@@ -78,11 +78,11 @@ byte-unit = { version = "5.1.6", default-features = false, 
features = [
 ] }
 bytes = "1.10.1"
 charming = "0.6.0"
-chrono = { version = "0.4.41", features = ["serde"] }
+chrono = { version = "0.4.42", features = ["serde"] }
 clap = { version = "4.5.47", features = ["derive", "wrap_help"] }
 colored = "3.0.0"
-comfy-table = "7.2.0"
-config = { version = "0.15.15" }
+comfy-table = "7.2.1"
+config = { version = "0.15.16" }
 console-subscriber = "0.4.1"
 crc32fast = "1.5.0"
 crossbeam = "0.8.4"
@@ -100,7 +100,7 @@ flume = "0.11.1"
 futures = "0.3.31"
 futures-util = "0.3.31"
 human-repr = "1.1.0"
-humantime = "2.2.0"
+humantime = "2.3.0"
 iggy = { path = "core/sdk", version = "0.7.0" }
 iggy_binary_protocol = { path = "core/binary_protocol", version = "0.7.0" }
 iggy_common = { path = "core/common", version = "0.7.0" }
@@ -108,7 +108,7 @@ iggy_connector_sdk = { path = "core/connectors/sdk", 
version = "0.1.0" }
 integration = { path = "core/integration" }
 keyring = { version = "3.6.3", features = ["sync-secret-service", "vendored"] }
 lazy_static = "1.5.0"
-log = "0.4.27"
+log = "0.4.28"
 mimalloc = "0.1"
 mockall = "0.13.1"
 nonzero_lit = "0.1.2"
@@ -125,28 +125,28 @@ reqwest = { version = "0.12.23", default-features = 
false, features = [
 ] }
 reqwest-middleware = { version = "0.4.2", features = ["json"] }
 reqwest-retry = "0.7.0"
-rust-s3 = { version = "0.36.0-beta.2", default-features = false, features = [
+rust-s3 = { version = "0.37.0", default-features = false, features = [
     "tokio-rustls-tls",
     "tags",
 ] }
 rustls = { version = "0.23.31", features = ["ring"] }
-serde = { version = "1.0.219", features = ["derive", "rc"] }
-serde_json = "1.0.143"
+serde = { version = "1.0.225", features = ["derive", "rc"] }
+serde_json = "1.0.145"
 serde_with = { version = "3.14.0", features = ["base64", "macros"] }
 serde_yml = "0.0.12"
 serial_test = "3.2.0"
 server = { path = "core/server" }
-simd-json = { version = "0.15.1", features = ["serde_impl"] }
+simd-json = { version = "0.16.0", features = ["serde_impl"] }
 strum = { version = "0.27.2", features = ["derive"] }
 strum_macros = "0.27.2"
 sysinfo = "0.37.0"
-tempfile = "3.21.0"
+tempfile = "3.22.0"
 test-case = "3.3.1"
 thiserror = "2.0.16"
 tokio = { version = "1.47.1", features = ["full"] }
-tokio-rustls = "0.26.2"
+tokio-rustls = "0.26.3"
 tokio-util = { version = "0.7.16", features = ["compat"] }
-toml = "0.9.5"
+toml = "0.9.6"
 tower-http = { version = "0.6.6", features = [
     "add-extension",
     "cors",
@@ -160,8 +160,8 @@ tracing-subscriber = { version = "0.3.20", default-features 
= false, features =
     "ansi",
 ] }
 trait-variant = "0.1.2"
-twox-hash = { version = "2.1.1", features = ["xxhash32"] }
-uuid = { version = "1.18.0", features = [
+twox-hash = { version = "2.1.2", features = ["xxhash32"] }
+uuid = { version = "1.18.1", features = [
     "v4",
     "v7",
     "fast-rng",
@@ -169,7 +169,7 @@ uuid = { version = "1.18.0", features = [
     "zerocopy",
 ] }
 webpki-roots = "1.0.2"
-zip = "4.6.0"
+zip = "5.1.1"
 
 [profile.release]
 lto = true
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index 99313168..34a7bc6d 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -2,7 +2,7 @@
 
 actix-codec: 0.5.2, "Apache-2.0 OR MIT",
 actix-cors: 0.7.1, "Apache-2.0 OR MIT",
-actix-files: 0.6.7, "Apache-2.0 OR MIT",
+actix-files: 0.6.8, "Apache-2.0 OR MIT",
 actix-http: 3.11.1, "Apache-2.0 OR MIT",
 actix-macros: 0.2.4, "Apache-2.0 OR MIT",
 actix-router: 0.5.3, "Apache-2.0 OR MIT",
@@ -23,7 +23,6 @@ aho-corasick: 1.1.3, "MIT OR Unlicense",
 alloc-no-stdlib: 2.0.4, "BSD-3-Clause",
 alloc-stdlib: 0.2.2, "BSD-3-Clause",
 allocator-api2: 0.2.21, "Apache-2.0 OR MIT",
-android-tzdata: 0.1.1, "Apache-2.0 OR MIT",
 android_system_properties: 0.1.5, "Apache-2.0 OR MIT",
 anstream: 0.6.20, "Apache-2.0 OR MIT",
 anstyle: 1.0.11, "Apache-2.0 OR MIT",
@@ -34,6 +33,7 @@ anyhow: 1.0.99, "Apache-2.0 OR MIT",
 anymap2: 0.13.0, "Apache-2.0 OR MIT",
 arbitrary: 1.4.2, "Apache-2.0 OR MIT",
 arc-swap: 1.7.1, "Apache-2.0 OR MIT",
+argon2: 0.5.3, "Apache-2.0 OR MIT",
 arraydeque: 0.5.1, "Apache-2.0 OR MIT",
 arrayref: 0.3.9, "BSD-2-Clause",
 arrayvec: 0.7.6, "Apache-2.0 OR MIT",
@@ -53,12 +53,12 @@ atoi: 2.0.0, "MIT",
 atomic: 0.6.1, "Apache-2.0 OR MIT",
 atomic-polyfill: 1.0.3, "Apache-2.0 OR MIT",
 atomic-waker: 1.1.2, "Apache-2.0 OR MIT",
-attohttpc: 0.28.5, "MPL-2.0",
+attohttpc: 0.30.1, "MPL-2.0",
 autocfg: 1.5.0, "Apache-2.0 OR MIT",
-aws-creds: 0.38.0, "MIT",
-aws-lc-rs: 1.13.3, "(Apache-2.0 OR ISC) AND ISC",
-aws-lc-sys: 0.30.0, "(Apache-2.0 OR ISC) AND ISC AND OpenSSL",
-aws-region: 0.26.0, "MIT",
+aws-creds: 0.39.0, "MIT",
+aws-lc-rs: 1.14.0, "(Apache-2.0 OR ISC) AND ISC",
+aws-lc-sys: 0.31.0, "(Apache-2.0 OR ISC) AND ISC AND OpenSSL",
+aws-region: 0.28.0, "MIT",
 axum: 0.7.9, "MIT",
 axum: 0.8.4, "MIT",
 axum-core: 0.4.5, "MIT",
@@ -68,7 +68,6 @@ backtrace: 0.3.75, "Apache-2.0 OR MIT",
 base64: 0.21.7, "Apache-2.0 OR MIT",
 base64: 0.22.1, "Apache-2.0 OR MIT",
 base64ct: 1.8.0, "Apache-2.0 OR MIT",
-bcrypt: 0.17.1, "MIT",
 bdd: 0.0.1, "Apache-2.0",
 beef: 0.5.2, "Apache-2.0 OR MIT",
 bench-dashboard-frontend: 0.4.1, "Apache-2.0",
@@ -78,15 +77,15 @@ bench-runner: 0.1.0, "Apache-2.0",
 bincode: 1.3.3, "MIT",
 bincode: 2.0.1, "MIT",
 bincode_derive: 2.0.1, "MIT",
-bindgen: 0.69.5, "BSD-3-Clause",
+bindgen: 0.72.1, "BSD-3-Clause",
 bitflags: 1.3.2, "Apache-2.0 OR MIT",
-bitflags: 2.9.3, "Apache-2.0 OR MIT",
+bitflags: 2.9.4, "Apache-2.0 OR MIT",
 bitvec: 1.0.1, "MIT",
+blake2: 0.10.6, "Apache-2.0 OR MIT",
 blake3: 1.8.2, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR CC0-1.0",
 block-buffer: 0.10.4, "Apache-2.0 OR MIT",
-blowfish: 0.9.1, "Apache-2.0 OR MIT",
-bon: 3.7.1, "Apache-2.0 OR MIT",
-bon-macros: 3.7.1, "Apache-2.0 OR MIT",
+bon: 3.7.2, "Apache-2.0 OR MIT",
+bon-macros: 3.7.2, "Apache-2.0 OR MIT",
 boolinator: 2.4.0, "Apache-2.0 OR MIT",
 borsh: 1.5.7, "Apache-2.0 OR MIT",
 borsh-derive: 1.5.7, "Apache-2.0",
@@ -101,25 +100,25 @@ bytecount: 0.6.9, "Apache-2.0 OR MIT",
 bytemuck: 1.23.2, "Apache-2.0 OR MIT OR Zlib",
 byteorder: 1.5.0, "MIT OR Unlicense",
 bytes: 1.10.1, "MIT",
-bytestring: 1.4.0, "Apache-2.0 OR MIT",
+bytestring: 1.5.0, "Apache-2.0 OR MIT",
 bzip2: 0.6.0, "Apache-2.0 OR MIT",
-camino: 1.1.12, "Apache-2.0 OR MIT",
+camino: 1.2.0, "Apache-2.0 OR MIT",
 cargo-platform: 0.1.9, "Apache-2.0 OR MIT",
 cargo_metadata: 0.19.2, "MIT",
 castaway: 0.2.4, "MIT",
-cc: 1.2.34, "Apache-2.0 OR MIT",
+cc: 1.2.37, "Apache-2.0 OR MIT",
 cesu8: 1.1.0, "Apache-2.0 OR MIT",
 cexpr: 0.6.0, "Apache-2.0 OR MIT",
 cfg-if: 1.0.3, "Apache-2.0 OR MIT",
 cfg_aliases: 0.2.1, "MIT",
 charming: 0.6.0, "Apache-2.0 OR MIT",
 charming_macros: 0.1.0, "Apache-2.0 OR MIT",
-chrono: 0.4.41, "Apache-2.0 OR MIT",
+chrono: 0.4.42, "Apache-2.0 OR MIT",
 cipher: 0.4.4, "Apache-2.0 OR MIT",
 clang-sys: 1.8.1, "Apache-2.0",
 clap: 4.5.47, "Apache-2.0 OR MIT",
 clap_builder: 4.5.47, "Apache-2.0 OR MIT",
-clap_complete: 4.5.57, "Apache-2.0 OR MIT",
+clap_complete: 4.5.58, "Apache-2.0 OR MIT",
 clap_derive: 4.5.47, "Apache-2.0 OR MIT",
 clap_lex: 0.7.5, "Apache-2.0 OR MIT",
 cmake: 0.1.54, "Apache-2.0 OR MIT",
@@ -127,12 +126,12 @@ cobs: 0.3.0, "Apache-2.0 OR MIT",
 colorchoice: 1.0.4, "Apache-2.0 OR MIT",
 colored: 3.0.0, "MPL-2.0",
 combine: 4.6.7, "MIT",
-comfy-table: 7.2.0, "MIT",
+comfy-table: 7.2.1, "MIT",
 compact_str: 0.7.1, "MIT",
 compression-codecs: 0.4.30, "Apache-2.0 OR MIT",
 compression-core: 0.4.29, "Apache-2.0 OR MIT",
 concurrent-queue: 2.5.0, "Apache-2.0 OR MIT",
-config: 0.15.15, "Apache-2.0 OR MIT",
+config: 0.15.16, "Apache-2.0 OR MIT",
 console: 0.15.11, "MIT",
 console-api: 0.8.1, "MIT",
 console-subscriber: 0.4.1, "MIT",
@@ -178,7 +177,7 @@ dbus: 0.9.9, "Apache-2.0 OR MIT",
 dbus-secret-service: 4.1.0, "Apache-2.0 OR MIT",
 deflate64: 0.1.9, "MIT",
 der: 0.7.10, "Apache-2.0 OR MIT",
-deranged: 0.4.0, "Apache-2.0 OR MIT",
+deranged: 0.5.3, "Apache-2.0 OR MIT",
 derive-new: 0.7.0, "MIT",
 derive_arbitrary: 1.4.2, "Apache-2.0 OR MIT",
 derive_builder: 0.20.2, "Apache-2.0 OR MIT",
@@ -215,9 +214,9 @@ enum_dispatch: 0.3.13, "Apache-2.0 OR MIT",
 env_filter: 0.1.3, "Apache-2.0 OR MIT",
 env_logger: 0.11.8, "Apache-2.0 OR MIT",
 equivalent: 1.0.2, "Apache-2.0 OR MIT",
-erased-serde: 0.4.6, "Apache-2.0 OR MIT",
+erased-serde: 0.4.8, "Apache-2.0 OR MIT",
 err_trail: 0.8.5, "Apache-2.0",
-errno: 0.3.13, "Apache-2.0 OR MIT",
+errno: 0.3.14, "Apache-2.0 OR MIT",
 error_set: 0.8.5, "Apache-2.0",
 error_set_impl: 0.8.5, "Apache-2.0",
 etcetera: 0.8.0, "Apache-2.0 OR MIT",
@@ -232,6 +231,7 @@ fastrand: 2.3.0, "Apache-2.0 OR MIT",
 figlet-rs: 0.1.5, "Apache-2.0",
 figment: 0.10.19, "Apache-2.0 OR MIT",
 file-operation: 0.8.4, "MIT",
+find-msvc-tools: 0.1.1, "Apache-2.0 OR MIT",
 flatbuffers: 25.2.10, "Apache-2.0",
 flate2: 1.1.2, "Apache-2.0 OR MIT",
 float-cmp: 0.10.0, "MIT",
@@ -242,7 +242,7 @@ foreign-types: 0.3.2, "Apache-2.0 OR MIT",
 foreign-types-shared: 0.1.1, "Apache-2.0 OR MIT",
 form_urlencoded: 1.2.2, "Apache-2.0 OR MIT",
 fragile: 2.0.1, "Apache-2.0",
-fs-err: 3.1.1, "Apache-2.0 OR MIT",
+fs-err: 3.1.2, "Apache-2.0 OR MIT",
 fs_extra: 1.3.0, "MIT",
 fsevent-sys: 4.1.0, "MIT",
 funty: 2.0.0, "MIT",
@@ -325,12 +325,12 @@ http-range: 0.1.5, "MIT",
 httparse: 1.10.1, "Apache-2.0 OR MIT",
 httpdate: 1.0.3, "Apache-2.0 OR MIT",
 human-repr: 1.1.0, "MIT",
-humantime: 2.2.0, "Apache-2.0 OR MIT",
+humantime: 2.3.0, "Apache-2.0 OR MIT",
 hyper: 1.7.0, "MIT",
 hyper-rustls: 0.27.7, "Apache-2.0 OR ISC OR MIT",
 hyper-timeout: 0.5.2, "Apache-2.0 OR MIT",
-hyper-util: 0.1.16, "MIT",
-iana-time-zone: 0.1.63, "Apache-2.0 OR MIT",
+hyper-util: 0.1.17, "MIT",
+iana-time-zone: 0.1.64, "Apache-2.0 OR MIT",
 iana-time-zone-haiku: 0.1.2, "Apache-2.0 OR MIT",
 icu_collections: 2.0.0, "Unicode-3.0",
 icu_locale_core: 2.0.0, "Unicode-3.0",
@@ -362,7 +362,7 @@ impl-more: 0.1.9, "Apache-2.0 OR MIT",
 implicit-clone: 0.4.9, "Apache-2.0 OR MIT",
 implicit-clone-derive: 0.1.2, "Apache-2.0 OR MIT",
 indexmap: 1.9.3, "Apache-2.0 OR MIT",
-indexmap: 2.11.0, "Apache-2.0 OR MIT",
+indexmap: 2.11.3, "Apache-2.0 OR MIT",
 indices: 0.3.6, "Apache-2.0",
 inflections: 1.1.1, "MIT",
 inlinable_string: 0.1.15, "Apache-2.0 OR MIT",
@@ -376,7 +376,6 @@ io-uring: 0.7.10, "Apache-2.0 OR MIT",
 ipnet: 2.11.0, "Apache-2.0 OR MIT",
 iri-string: 0.7.8, "Apache-2.0 OR MIT",
 is_terminal_polyfill: 1.70.1, "Apache-2.0 OR MIT",
-itertools: 0.12.1, "Apache-2.0 OR MIT",
 itertools: 0.13.0, "Apache-2.0 OR MIT",
 itertools: 0.14.0, "Apache-2.0 OR MIT",
 itoa: 1.0.15, "Apache-2.0 OR MIT",
@@ -385,7 +384,7 @@ jiff-static: 0.2.15, "MIT OR Unlicense",
 jni: 0.21.1, "Apache-2.0 OR MIT",
 jni-sys: 0.3.0, "Apache-2.0 OR MIT",
 jobserver: 0.1.34, "Apache-2.0 OR MIT",
-js-sys: 0.3.77, "Apache-2.0 OR MIT",
+js-sys: 0.3.80, "Apache-2.0 OR MIT",
 json5: 0.4.1, "ISC",
 jsonwebtoken: 9.3.1, "MIT",
 jwalk: 0.8.1, "MIT",
@@ -396,7 +395,6 @@ language-tags: 0.3.2, "Apache-2.0 OR MIT",
 lazy-regex: 3.4.1, "MIT",
 lazy-regex-proc_macros: 3.4.1, "MIT",
 lazy_static: 1.5.0, "Apache-2.0 OR MIT",
-lazycell: 1.3.0, "Apache-2.0 OR MIT",
 lending-iterator: 0.1.7, "Apache-2.0 OR MIT OR Zlib",
 lending-iterator-proc_macros: 0.1.7, "Apache-2.0 OR MIT OR Zlib",
 libbz2-rs-sys: 0.2.2, "bzip2-1.0.6",
@@ -408,25 +406,25 @@ liblzma: 0.4.4, "Apache-2.0 OR MIT",
 liblzma-sys: 0.4.4, "Apache-2.0 OR MIT",
 libm: 0.2.15, "MIT",
 libmimalloc-sys: 0.1.44, "MIT",
-libredox: 0.1.9, "MIT",
+libredox: 0.1.10, "MIT",
 libsqlite3-sys: 0.30.1, "MIT",
 libyml: 0.0.5, "MIT",
-libz-rs-sys: 0.5.1, "Zlib",
+libz-rs-sys: 0.5.2, "Zlib",
 libz-sys: 1.1.22, "Apache-2.0 OR MIT",
 linked-hash-map: 0.5.6, "Apache-2.0 OR MIT",
-linux-raw-sys: 0.4.15, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
-linux-raw-sys: 0.9.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+linux-raw-sys: 0.11.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
 litemap: 0.8.0, "Unicode-3.0",
 litrs: 0.4.2, "Apache-2.0 OR MIT",
 local-channel: 0.1.5, "Apache-2.0 OR MIT",
 local-waker: 0.1.4, "Apache-2.0 OR MIT",
 lock_api: 0.4.13, "Apache-2.0 OR MIT",
-log: 0.4.27, "Apache-2.0 OR MIT",
+log: 0.4.28, "Apache-2.0 OR MIT",
 logos: 0.15.1, "Apache-2.0 OR MIT",
 logos-codegen: 0.15.1, "Apache-2.0 OR MIT",
 logos-derive: 0.15.1, "Apache-2.0 OR MIT",
 loom: 0.7.2, "MIT",
 lru-slab: 0.1.2, "Apache-2.0 OR MIT OR Zlib",
+lzma-rust2: 0.13.0, "Apache-2.0",
 macro_rules_attribute: 0.1.3, "MIT",
 macro_rules_attribute-proc_macro: 0.1.3, "MIT",
 matchers: 0.2.0, "MIT",
@@ -434,7 +432,7 @@ matchit: 0.7.3, "BSD-3-Clause AND MIT",
 matchit: 0.8.4, "BSD-3-Clause AND MIT",
 maybe-async: 0.2.10, "MIT",
 md-5: 0.10.6, "Apache-2.0 OR MIT",
-md5: 0.7.0, "Apache-2.0 OR MIT",
+md5: 0.8.0, "Apache-2.0 OR MIT",
 memchr: 2.7.5, "MIT OR Unlicense",
 miette: 7.6.0, "Apache-2.0",
 miette-derive: 7.6.0, "Apache-2.0",
@@ -475,7 +473,7 @@ num_threads: 0.1.7, "Apache-2.0 OR MIT",
 objc2-core-foundation: 0.3.1, "Apache-2.0 OR MIT OR Zlib",
 objc2-io-kit: 0.3.1, "Apache-2.0 OR MIT OR Zlib",
 object: 0.36.7, "Apache-2.0 OR MIT",
-octocrab: 0.44.1, "Apache-2.0 OR MIT",
+octocrab: 0.45.0, "Apache-2.0 OR MIT",
 once_cell: 1.21.3, "Apache-2.0 OR MIT",
 once_cell_polyfill: 1.70.1, "Apache-2.0 OR MIT",
 opaque-debug: 0.3.1, "Apache-2.0 OR MIT",
@@ -499,6 +497,7 @@ parking_lot: 0.12.4, "Apache-2.0 OR MIT",
 parking_lot_core: 0.8.6, "Apache-2.0 OR MIT",
 parking_lot_core: 0.9.11, "Apache-2.0 OR MIT",
 passterm: 2.0.1, "BSD-3-Clause",
+password-hash: 0.5.0, "Apache-2.0 OR MIT",
 paste: 1.0.15, "Apache-2.0 OR MIT",
 pathdiff: 0.2.3, "Apache-2.0 OR MIT",
 pbkdf2: 0.12.2, "Apache-2.0 OR MIT",
@@ -510,10 +509,10 @@ peg-runtime: 0.6.3, "MIT",
 pem: 3.0.5, "MIT",
 pem-rfc7468: 0.7.0, "Apache-2.0 OR MIT",
 percent-encoding: 2.3.2, "Apache-2.0 OR MIT",
-pest: 2.8.1, "Apache-2.0 OR MIT",
-pest_derive: 2.8.1, "Apache-2.0 OR MIT",
-pest_generator: 2.8.1, "Apache-2.0 OR MIT",
-pest_meta: 2.8.1, "Apache-2.0 OR MIT",
+pest: 2.8.2, "Apache-2.0 OR MIT",
+pest_derive: 2.8.2, "Apache-2.0 OR MIT",
+pest_generator: 2.8.2, "Apache-2.0 OR MIT",
+pest_meta: 2.8.2, "Apache-2.0 OR MIT",
 pin-project: 1.1.10, "Apache-2.0 OR MIT",
 pin-project-internal: 1.1.10, "Apache-2.0 OR MIT",
 pin-project-lite: 0.2.16, "Apache-2.0 OR MIT",
@@ -536,7 +535,7 @@ predicates-core: 1.0.9, "Apache-2.0 OR MIT",
 predicates-tree: 1.0.12, "Apache-2.0 OR MIT",
 prettyplease: 0.2.37, "Apache-2.0 OR MIT",
 proc-macro-crate: 1.3.1, "Apache-2.0 OR MIT",
-proc-macro-crate: 3.3.0, "Apache-2.0 OR MIT",
+proc-macro-crate: 3.4.0, "Apache-2.0 OR MIT",
 proc-macro-error: 1.0.4, "Apache-2.0 OR MIT",
 proc-macro-error-attr: 1.0.4, "Apache-2.0 OR MIT",
 proc-macro2: 1.0.101, "Apache-2.0 OR MIT",
@@ -556,8 +555,7 @@ protox-parse: 0.9.0, "Apache-2.0 OR MIT",
 ptr_meta: 0.1.4, "MIT",
 ptr_meta_derive: 0.1.4, "MIT",
 quanta: 0.12.6, "MIT",
-quick-xml: 0.32.0, "MIT",
-quick-xml: 0.36.2, "MIT",
+quick-xml: 0.38.3, "MIT",
 quinn: 0.11.9, "Apache-2.0 OR MIT",
 quinn-proto: 0.11.13, "Apache-2.0 OR MIT",
 quinn-udp: 0.5.14, "Apache-2.0 OR MIT",
@@ -570,10 +568,10 @@ rand_chacha: 0.3.1, "Apache-2.0 OR MIT",
 rand_chacha: 0.9.0, "Apache-2.0 OR MIT",
 rand_core: 0.6.4, "Apache-2.0 OR MIT",
 rand_core: 0.9.3, "Apache-2.0 OR MIT",
-raw-cpuid: 11.5.0, "MIT",
+raw-cpuid: 11.6.0, "MIT",
 rayon: 1.11.0, "Apache-2.0 OR MIT",
 rayon-core: 1.13.0, "Apache-2.0 OR MIT",
-rcgen: 0.14.3, "Apache-2.0 OR MIT",
+rcgen: 0.14.4, "Apache-2.0 OR MIT",
 redox_syscall: 0.2.16, "MIT",
 redox_syscall: 0.5.17, "MIT",
 redox_users: 0.5.2, "MIT",
@@ -592,34 +590,32 @@ retry-policies: 0.4.0, "Apache-2.0 OR MIT",
 ring: 0.17.14, "Apache-2.0 AND ISC",
 rkyv: 0.7.45, "MIT",
 rkyv_derive: 0.7.45, "MIT",
-rmcp: 0.6.1, "MIT",
-rmcp-macros: 0.6.1, "MIT",
+rmcp: 0.6.4, "MIT",
+rmcp-macros: 0.6.4, "MIT",
 ron: 0.8.1, "Apache-2.0 OR MIT",
 route-recognizer: 0.3.1, "MIT",
 rsa: 0.9.8, "Apache-2.0 OR MIT",
 rust-ini: 0.21.3, "MIT",
-rust-s3: 0.36.0-beta.2, "MIT",
-rust_decimal: 1.37.2, "MIT",
+rust-s3: 0.37.0, "MIT",
+rust_decimal: 1.38.0, "MIT",
 rustc-demangle: 0.1.26, "Apache-2.0 OR MIT",
-rustc-hash: 1.1.0, "Apache-2.0 OR MIT",
 rustc-hash: 2.1.1, "Apache-2.0 OR MIT",
 rustc_version: 0.4.1, "Apache-2.0 OR MIT",
-rustix: 0.38.44, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
-rustix: 1.0.8, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+rustix: 1.1.2, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
 rustls: 0.23.31, "Apache-2.0 OR ISC OR MIT",
 rustls-native-certs: 0.8.1, "Apache-2.0 OR ISC OR MIT",
 rustls-pemfile: 2.2.0, "Apache-2.0 OR ISC OR MIT",
 rustls-pki-types: 1.12.0, "Apache-2.0 OR MIT",
 rustls-platform-verifier: 0.6.1, "Apache-2.0 OR MIT",
 rustls-platform-verifier-android: 0.1.1, "Apache-2.0 OR MIT",
-rustls-webpki: 0.103.4, "ISC",
+rustls-webpki: 0.103.6, "ISC",
 rustversion: 1.0.22, "Apache-2.0 OR MIT",
 rxml: 0.11.1, "MIT",
 rxml_validation: 0.11.0, "MIT",
 ryu: 1.0.20, "Apache-2.0 OR BSL-1.0",
 same-file: 1.0.6, "MIT OR Unlicense",
 scc: 2.4.0, "Apache-2.0",
-schannel: 0.1.27, "MIT",
+schannel: 0.1.28, "MIT",
 schemars: 0.9.0, "MIT",
 schemars: 1.0.4, "MIT",
 schemars_derive: 1.0.4, "MIT",
@@ -629,19 +625,20 @@ sdd: 3.0.10, "Apache-2.0",
 seahash: 4.1.0, "MIT",
 sealed: 0.5.0, "Apache-2.0 OR MIT",
 secrecy: 0.10.3, "Apache-2.0 OR MIT",
-security-framework: 3.3.0, "Apache-2.0 OR MIT",
-security-framework-sys: 2.14.0, "Apache-2.0 OR MIT",
-semver: 1.0.26, "Apache-2.0 OR MIT",
-serde: 1.0.219, "Apache-2.0 OR MIT",
-serde-untagged: 0.1.8, "Apache-2.0 OR MIT",
+security-framework: 3.4.0, "Apache-2.0 OR MIT",
+security-framework-sys: 2.15.0, "Apache-2.0 OR MIT",
+semver: 1.0.27, "Apache-2.0 OR MIT",
+serde: 1.0.225, "Apache-2.0 OR MIT",
+serde-untagged: 0.1.9, "Apache-2.0 OR MIT",
 serde-wasm-bindgen: 0.5.0, "MIT",
 serde-wasm-bindgen: 0.6.5, "MIT",
-serde_derive: 1.0.219, "Apache-2.0 OR MIT",
+serde_core: 1.0.225, "Apache-2.0 OR MIT",
+serde_derive: 1.0.225, "Apache-2.0 OR MIT",
 serde_derive_internals: 0.29.1, "Apache-2.0 OR MIT",
-serde_json: 1.0.143, "Apache-2.0 OR MIT",
-serde_path_to_error: 0.1.17, "Apache-2.0 OR MIT",
+serde_json: 1.0.145, "Apache-2.0 OR MIT",
+serde_path_to_error: 0.1.20, "Apache-2.0 OR MIT",
 serde_spanned: 0.6.9, "Apache-2.0 OR MIT",
-serde_spanned: 1.0.0, "Apache-2.0 OR MIT",
+serde_spanned: 1.0.1, "Apache-2.0 OR MIT",
 serde_urlencoded: 0.7.1, "Apache-2.0 OR MIT",
 serde_with: 3.14.0, "Apache-2.0 OR MIT",
 serde_with_macros: 3.14.0, "Apache-2.0 OR MIT",
@@ -656,7 +653,7 @@ shlex: 1.3.0, "Apache-2.0 OR MIT",
 signal-hook-registry: 1.4.6, "Apache-2.0 OR MIT",
 signature: 2.2.0, "Apache-2.0 OR MIT",
 simd-adler32: 0.3.7, "MIT",
-simd-json: 0.15.1, "Apache-2.0 OR MIT",
+simd-json: 0.16.0, "Apache-2.0 OR MIT",
 simdutf8: 0.1.5, "Apache-2.0 OR MIT",
 simple_asn1: 0.6.3, "ISC",
 siphasher: 1.0.1, "Apache-2.0 OR MIT",
@@ -664,8 +661,8 @@ slab: 0.4.11, "MIT",
 smallvec: 1.15.1, "Apache-2.0 OR MIT",
 smart-default: 0.7.1, "MIT",
 smawk: 0.3.2, "MIT",
-snafu: 0.8.8, "Apache-2.0 OR MIT",
-snafu-derive: 0.8.8, "Apache-2.0 OR MIT",
+snafu: 0.8.9, "Apache-2.0 OR MIT",
+snafu-derive: 0.8.9, "Apache-2.0 OR MIT",
 socket2: 0.5.10, "Apache-2.0 OR MIT",
 socket2: 0.6.0, "Apache-2.0 OR MIT",
 spin: 0.9.8, "MIT",
@@ -698,7 +695,7 @@ sysinfo: 0.34.2, "MIT",
 sysinfo: 0.37.0, "MIT",
 tagptr: 0.2.0, "Apache-2.0 OR MIT",
 tap: 1.0.1, "MIT",
-tempfile: 3.21.0, "Apache-2.0 OR MIT",
+tempfile: 3.22.0, "Apache-2.0 OR MIT",
 terminal_size: 0.4.3, "Apache-2.0 OR MIT",
 termtree: 0.5.1, "MIT",
 test-case: 3.3.1, "MIT",
@@ -710,24 +707,25 @@ thiserror: 2.0.16, "Apache-2.0 OR MIT",
 thiserror-impl: 1.0.69, "Apache-2.0 OR MIT",
 thiserror-impl: 2.0.16, "Apache-2.0 OR MIT",
 thread_local: 1.1.9, "Apache-2.0 OR MIT",
-time: 0.3.41, "Apache-2.0 OR MIT",
-time-core: 0.1.4, "Apache-2.0 OR MIT",
-time-macros: 0.2.22, "Apache-2.0 OR MIT",
+time: 0.3.43, "Apache-2.0 OR MIT",
+time-core: 0.1.6, "Apache-2.0 OR MIT",
+time-macros: 0.2.24, "Apache-2.0 OR MIT",
 tiny-keccak: 2.0.2, "CC0-1.0",
 tinystr: 0.8.1, "Unicode-3.0",
 tinyvec: 1.10.0, "Apache-2.0 OR MIT OR Zlib",
 tinyvec_macros: 0.1.1, "Apache-2.0 OR MIT OR Zlib",
 tokio: 1.47.1, "MIT",
 tokio-macros: 2.5.0, "MIT",
-tokio-rustls: 0.26.2, "Apache-2.0 OR MIT",
+tokio-rustls: 0.26.3, "Apache-2.0 OR MIT",
 tokio-stream: 0.1.17, "MIT",
 tokio-util: 0.7.16, "MIT",
 toml: 0.8.23, "Apache-2.0 OR MIT",
-toml: 0.9.5, "Apache-2.0 OR MIT",
+toml: 0.9.6, "Apache-2.0 OR MIT",
 toml_datetime: 0.6.11, "Apache-2.0 OR MIT",
-toml_datetime: 0.7.0, "Apache-2.0 OR MIT",
+toml_datetime: 0.7.1, "Apache-2.0 OR MIT",
 toml_edit: 0.19.15, "Apache-2.0 OR MIT",
 toml_edit: 0.22.27, "Apache-2.0 OR MIT",
+toml_edit: 0.23.5, "Apache-2.0 OR MIT",
 toml_parser: 1.0.2, "Apache-2.0 OR MIT",
 toml_write: 0.1.2, "Apache-2.0 OR MIT",
 toml_writer: 1.0.2, "Apache-2.0 OR MIT",
@@ -748,7 +746,7 @@ tracing-opentelemetry: 0.31.0, "MIT",
 tracing-subscriber: 0.3.20, "MIT",
 trait-variant: 0.1.2, "Apache-2.0 OR MIT",
 try-lock: 0.2.5, "MIT",
-twox-hash: 2.1.1, "MIT",
+twox-hash: 2.1.2, "MIT",
 typed-builder: 0.15.2, "Apache-2.0 OR MIT",
 typed-builder-macro: 0.15.2, "Apache-2.0 OR MIT",
 typeid: 1.0.3, "Apache-2.0 OR MIT",
@@ -758,7 +756,7 @@ ulid: 1.2.1, "MIT",
 uncased: 0.9.10, "Apache-2.0 OR MIT",
 unicase: 2.8.1, "Apache-2.0 OR MIT",
 unicode-bidi: 0.3.18, "Apache-2.0 OR MIT",
-unicode-ident: 1.0.18, "(Apache-2.0 OR MIT) AND Unicode-3.0",
+unicode-ident: 1.0.19, "(Apache-2.0 OR MIT) AND Unicode-3.0",
 unicode-linebreak: 0.1.5, "Apache-2.0",
 unicode-normalization: 0.1.24, "Apache-2.0 OR MIT",
 unicode-properties: 0.1.3, "Apache-2.0 OR MIT",
@@ -774,7 +772,7 @@ urlencoding: 2.1.3, "MIT",
 utf8-width: 0.1.7, "MIT",
 utf8_iter: 1.0.4, "Apache-2.0 OR MIT",
 utf8parse: 0.2.2, "Apache-2.0 OR MIT",
-uuid: 1.18.0, "Apache-2.0 OR MIT",
+uuid: 1.18.1, "Apache-2.0 OR MIT",
 v_htmlescape: 0.15.8, "Apache-2.0 OR MIT",
 valuable: 0.1.1, "MIT",
 value-trait: 0.11.0, "Apache-2.0 OR MIT",
@@ -788,47 +786,52 @@ wait-timeout: 0.2.1, "Apache-2.0 OR MIT",
 walkdir: 2.5.0, "MIT OR Unlicense",
 want: 0.3.1, "MIT",
 wasi: 0.11.1+wasi-snapshot-preview1, "Apache-2.0 OR Apache-2.0 WITH 
LLVM-exception OR MIT",
-wasi: 0.14.3+wasi-0.2.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+wasi: 0.14.7+wasi-0.2.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+wasip2: 1.0.1+wasi-0.2.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR 
MIT",
 wasite: 0.1.0, "Apache-2.0 OR BSL-1.0 OR MIT",
-wasm-bindgen: 0.2.100, "Apache-2.0 OR MIT",
-wasm-bindgen-backend: 0.2.100, "Apache-2.0 OR MIT",
-wasm-bindgen-futures: 0.4.50, "Apache-2.0 OR MIT",
-wasm-bindgen-macro: 0.2.100, "Apache-2.0 OR MIT",
-wasm-bindgen-macro-support: 0.2.100, "Apache-2.0 OR MIT",
-wasm-bindgen-shared: 0.2.100, "Apache-2.0 OR MIT",
+wasm-bindgen: 0.2.103, "Apache-2.0 OR MIT",
+wasm-bindgen-backend: 0.2.103, "Apache-2.0 OR MIT",
+wasm-bindgen-futures: 0.4.53, "Apache-2.0 OR MIT",
+wasm-bindgen-macro: 0.2.103, "Apache-2.0 OR MIT",
+wasm-bindgen-macro-support: 0.2.103, "Apache-2.0 OR MIT",
+wasm-bindgen-shared: 0.2.103, "Apache-2.0 OR MIT",
 wasm-streams: 0.4.2, "Apache-2.0 OR MIT",
 wasm-timer: 0.2.5, "MIT",
-web-sys: 0.3.77, "Apache-2.0 OR MIT",
+web-sys: 0.3.80, "Apache-2.0 OR MIT",
 web-time: 1.1.0, "Apache-2.0 OR MIT",
 webpki-root-certs: 1.0.2, "CDLA-Permissive-2.0",
 webpki-roots: 0.26.11, "CDLA-Permissive-2.0",
 webpki-roots: 1.0.2, "CDLA-Permissive-2.0",
-which: 4.4.2, "MIT",
 whoami: 1.6.1, "Apache-2.0 OR BSL-1.0 OR MIT",
 winapi: 0.3.9, "Apache-2.0 OR MIT",
 winapi-i686-pc-windows-gnu: 0.4.0, "Apache-2.0 OR MIT",
-winapi-util: 0.1.10, "MIT OR Unlicense",
+winapi-util: 0.1.11, "MIT OR Unlicense",
 winapi-x86_64-pc-windows-gnu: 0.4.0, "Apache-2.0 OR MIT",
 windows: 0.57.0, "Apache-2.0 OR MIT",
 windows: 0.61.3, "Apache-2.0 OR MIT",
 windows-collections: 0.2.0, "Apache-2.0 OR MIT",
 windows-core: 0.57.0, "Apache-2.0 OR MIT",
 windows-core: 0.61.2, "Apache-2.0 OR MIT",
+windows-core: 0.62.0, "Apache-2.0 OR MIT",
 windows-future: 0.2.1, "Apache-2.0 OR MIT",
 windows-implement: 0.57.0, "Apache-2.0 OR MIT",
 windows-implement: 0.60.0, "Apache-2.0 OR MIT",
 windows-interface: 0.57.0, "Apache-2.0 OR MIT",
 windows-interface: 0.59.1, "Apache-2.0 OR MIT",
 windows-link: 0.1.3, "Apache-2.0 OR MIT",
+windows-link: 0.2.0, "Apache-2.0 OR MIT",
 windows-numerics: 0.2.0, "Apache-2.0 OR MIT",
 windows-result: 0.1.2, "Apache-2.0 OR MIT",
 windows-result: 0.3.4, "Apache-2.0 OR MIT",
+windows-result: 0.4.0, "Apache-2.0 OR MIT",
 windows-strings: 0.4.2, "Apache-2.0 OR MIT",
+windows-strings: 0.5.0, "Apache-2.0 OR MIT",
 windows-sys: 0.45.0, "Apache-2.0 OR MIT",
 windows-sys: 0.48.0, "Apache-2.0 OR MIT",
 windows-sys: 0.52.0, "Apache-2.0 OR MIT",
 windows-sys: 0.59.0, "Apache-2.0 OR MIT",
 windows-sys: 0.60.2, "Apache-2.0 OR MIT",
+windows-sys: 0.61.0, "Apache-2.0 OR MIT",
 windows-targets: 0.42.2, "Apache-2.0 OR MIT",
 windows-targets: 0.48.5, "Apache-2.0 OR MIT",
 windows-targets: 0.52.6, "Apache-2.0 OR MIT",
@@ -866,10 +869,10 @@ windows_x86_64_msvc: 0.52.6, "Apache-2.0 OR MIT",
 windows_x86_64_msvc: 0.53.0, "Apache-2.0 OR MIT",
 winnow: 0.5.40, "MIT",
 winnow: 0.7.13, "MIT",
-wit-bindgen: 0.45.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+wit-bindgen: 0.46.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
 writeable: 0.6.1, "Unicode-3.0",
 wyz: 0.5.1, "MIT",
-yaml-rust2: 0.10.3, "Apache-2.0 OR MIT",
+yaml-rust2: 0.10.4, "Apache-2.0 OR MIT",
 yansi: 1.0.1, "Apache-2.0 OR MIT",
 yasna: 0.5.2, "Apache-2.0 OR MIT",
 yew: 0.21.0, "Apache-2.0 OR MIT",
@@ -879,8 +882,8 @@ yew-router: 0.18.0, "Apache-2.0 OR MIT",
 yew-router-macro: 0.18.0, "Apache-2.0 OR MIT",
 yoke: 0.8.0, "Unicode-3.0",
 yoke-derive: 0.8.0, "Unicode-3.0",
-zerocopy: 0.8.26, "Apache-2.0 OR BSD-2-Clause OR MIT",
-zerocopy-derive: 0.8.26, "Apache-2.0 OR BSD-2-Clause OR MIT",
+zerocopy: 0.8.27, "Apache-2.0 OR BSD-2-Clause OR MIT",
+zerocopy-derive: 0.8.27, "Apache-2.0 OR BSD-2-Clause OR MIT",
 zerofrom: 0.1.6, "Unicode-3.0",
 zerofrom-derive: 0.1.6, "Unicode-3.0",
 zeroize: 1.8.1, "Apache-2.0 OR MIT",
@@ -888,9 +891,9 @@ zeroize_derive: 1.4.2, "Apache-2.0 OR MIT",
 zerotrie: 0.2.2, "Unicode-3.0",
 zerovec: 0.11.4, "Unicode-3.0",
 zerovec-derive: 0.11.1, "Unicode-3.0",
-zip: 4.6.0, "MIT",
-zlib-rs: 0.5.1, "Zlib",
+zip: 5.1.1, "MIT",
+zlib-rs: 0.5.2, "Zlib",
 zopfli: 0.8.2, "Apache-2.0",
 zstd: 0.13.3, "MIT",
 zstd-safe: 7.2.4, "Apache-2.0 OR MIT",
-zstd-sys: 2.0.15+zstd.1.5.7, "Apache-2.0 OR MIT",
+zstd-sys: 2.0.16+zstd.1.5.7, "Apache-2.0 OR MIT",
diff --git a/Dockerfile b/Dockerfile
index e945c5ba..41d315c6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -31,4 +31,8 @@ COPY ./core/configs ./configs
 COPY --from=builder /build/target/release/iggy .
 COPY --from=builder /build/target/release/iggy-server .
 
+ENV IGGY_HTTP_ADDRESS=0.0.0.0:3000
+ENV IGGY_QUIC_ADDRESS=0.0.0.0:8080
+ENV IGGY_TCP_ADDRESS=0.0.0.0:8090
+
 CMD ["/iggy-server"]
diff --git a/bdd/Dockerfile b/bdd/Dockerfile
index 1df144d9..aff8375e 100644
--- a/bdd/Dockerfile
+++ b/bdd/Dockerfile
@@ -42,6 +42,10 @@ RUN mkdir -p /app/local_data
 
 WORKDIR /app
 
+ENV IGGY_HTTP_ADDRESS=0.0.0.0:3000
+ENV IGGY_QUIC_ADDRESS=0.0.0.0:8080
+ENV IGGY_TCP_ADDRESS=0.0.0.0:8090
+
 # Expose ports
 EXPOSE 8090 3000 8080
 
diff --git a/bdd/csharp/Dockerfile b/bdd/csharp/Dockerfile
index 8b771805..32e6b25c 100644
--- a/bdd/csharp/Dockerfile
+++ b/bdd/csharp/Dockerfile
@@ -21,6 +21,10 @@ COPY ./foreign/csharp ./foreign/csharp
 COPY ./bdd/scenarios ./bdd/scenarios
 
 WORKDIR /foreign/csharp/Iggy_SDK.Tests.BDD
-RUN dotnet build -c Release 
+RUN dotnet build -c Release
+
+ENV IGGY_HTTP_ADDRESS=0.0.0.0:3000
+ENV IGGY_QUIC_ADDRESS=0.0.0.0:8080
+ENV IGGY_TCP_ADDRESS=0.0.0.0:8090
 
 CMD ["dotnet", "test"]
diff --git a/bdd/rust/Dockerfile b/bdd/rust/Dockerfile
index 63119a37..9a42afdd 100644
--- a/bdd/rust/Dockerfile
+++ b/bdd/rust/Dockerfile
@@ -29,5 +29,9 @@ RUN mkdir -p /app/features
 # Build tests
 RUN cargo test --no-run -p bdd --features "iggy-server-in-docker bdd"
 
+ENV IGGY_HTTP_ADDRESS=0.0.0.0:3000
+ENV IGGY_QUIC_ADDRESS=0.0.0.0:8080
+ENV IGGY_TCP_ADDRESS=0.0.0.0:8090
+
 # Default command will be overridden by docker-compose
 CMD ["cargo", "test", "-p", "bdd", "--features", "iggy-server-in-docker", 
"--features", "bdd"]
diff --git a/core/ai/mcp/Cargo.toml b/core/ai/mcp/Cargo.toml
index ba394606..206dc351 100644
--- a/core/ai/mcp/Cargo.toml
+++ b/core/ai/mcp/Cargo.toml
@@ -33,13 +33,14 @@ config = { workspace = true }
 dotenvy = { workspace = true }
 figlet-rs = { workspace = true }
 iggy = { workspace = true }
-rmcp = { version = "0.6.1", features = [
+rmcp = { version = "0.6.4", features = [
     "server",
     "transport-io",
     "transport-sse-server",
     "transport-streamable-http-server",
 ] }
 serde = { workspace = true }
+serde_json = { workspace = true }
 strum = { workspace = true }
 thiserror = { workspace = true }
 tokio = { workspace = true }
diff --git a/core/bench/dashboard/server/Cargo.toml 
b/core/bench/dashboard/server/Cargo.toml
index 1c689f5c..8a48a70d 100644
--- a/core/bench/dashboard/server/Cargo.toml
+++ b/core/bench/dashboard/server/Cargo.toml
@@ -23,7 +23,7 @@ edition = "2024"
 
 [dependencies]
 actix-cors = "0.7.1"
-actix-files = "0.6.7"
+actix-files = "0.6.8"
 actix-web = "4.11.0"
 bench-dashboard-shared = { path = "../shared" }
 bench-report = { workspace = true }
@@ -32,7 +32,7 @@ clap = { workspace = true }
 dashmap = { workspace = true }
 file-operation = "0.8.4"
 notify = "8.2.0"
-octocrab = "0.44.1"
+octocrab = "0.45.0"
 serde = { workspace = true, features = ["derive"] }
 serde_json = { workspace = true }
 tempfile = { workspace = true }
diff --git a/core/cli/Cargo.toml b/core/cli/Cargo.toml
index 9d407311..b29194be 100644
--- a/core/cli/Cargo.toml
+++ b/core/cli/Cargo.toml
@@ -43,7 +43,7 @@ login-session = ["dep:keyring"]
 ahash = { workspace = true }
 anyhow = { workspace = true }
 clap = { workspace = true }
-clap_complete = "4.5.57"
+clap_complete = "4.5.58"
 figlet-rs = { workspace = true }
 iggy = { workspace = true }
 iggy_binary_protocol = { workspace = true }
diff --git a/core/common/Cargo.toml b/core/common/Cargo.toml
index 80f92ebc..48affb57 100644
--- a/core/common/Cargo.toml
+++ b/core/common/Cargo.toml
@@ -46,7 +46,7 @@ crc32fast = { workspace = true }
 derive_more = { workspace = true }
 fast-async-mutex = { version = "0.6.7", optional = true }
 humantime = { workspace = true }
-rcgen = "0.14.3"
+rcgen = "0.14.4"
 rustls = { workspace = true }
 serde = { workspace = true }
 serde_json = { workspace = true }
diff --git a/core/common/src/utils/expiry.rs b/core/common/src/utils/expiry.rs
index a32ddc4d..1a54d08a 100644
--- a/core/common/src/utils/expiry.rs
+++ b/core/common/src/utils/expiry.rs
@@ -252,7 +252,7 @@ mod tests {
         assert!(x.is_err());
         assert_eq!(
             x.unwrap_err(),
-            "unknown time unit \"se\", supported units: ns, us, ms, sec, min, 
hours, days, weeks, months, years (and few variations)"
+            "unknown time unit \"se\", supported units: ns, us/µs, ms, sec, 
min, hours, days, weeks, months, years (and few variations)"
         );
     }
 
diff --git a/core/configs/server.toml b/core/configs/server.toml
index cd3cb4f8..5b9d0ad4 100644
--- a/core/configs/server.toml
+++ b/core/configs/server.toml
@@ -73,8 +73,8 @@ interval = "1 m"
 enabled = true
 
 # Specifies the network address and port for the HTTP server.
-# The format is "HOST:PORT". For example, "0.0.0.0:3000" listens on all 
network interfaces on port 3000.
-address = "0.0.0.0:3000"
+# The format is "HOST:PORT". For example, "127.0.0.1:3000" listens on 
localhost only on port 3000.
+address = "127.0.0.1:3000"
 
 # Maximum size of the request body in bytes. For security reasons, the default 
limit is 2 MB.
 max_request_size = "2 MB"
@@ -181,8 +181,8 @@ key_file = "core/certs/iggy_key.pem"
 enabled = true
 
 # Defines the network address and port for the TCP server.
-# For example, "0.0.0.0:8090" listens on all network interfaces on port 8090.
-address = "0.0.0.0:8090"
+# For example, "127.0.0.1:8090" listens on localhost only on port 8090.
+address = "127.0.0.1:8090"
 
 # Whether to use ipv4 or ipv6
 ipv6 = false
@@ -234,8 +234,8 @@ linger = "0 s"
 enabled = true
 
 # Network address and port for the QUIC server.
-# For example, "0.0.0.0:8080" binds to all interfaces on port 8080.
-address = "0.0.0.0:8080"
+# For example, "127.0.0.1:8080" binds to localhost on port 8080.
+address = "127.0.0.1:8080"
 
 # Maximum number of simultaneous bidirectional streams in QUIC.
 max_concurrent_bidi_streams = 10_000
diff --git a/core/integration/Cargo.toml b/core/integration/Cargo.toml
index 40fe00bd..61be6918 100644
--- a/core/integration/Cargo.toml
+++ b/core/integration/Cargo.toml
@@ -46,9 +46,9 @@ libc = "0.2.175"
 log = { workspace = true }
 predicates = { workspace = true }
 rand = { workspace = true }
-rcgen = "0.14.3"
+rcgen = "0.14.4"
 reqwest = { workspace = true }
-rmcp = { version = "0.6.1", features = [
+rmcp = { version = "0.6.4", features = [
     "client",
     "reqwest",
     "transport-streamable-http-client",
diff --git a/core/integration/src/test_mcp_server.rs 
b/core/integration/src/test_mcp_server.rs
index 8334e5f8..b2427090 100644
--- a/core/integration/src/test_mcp_server.rs
+++ b/core/integration/src/test_mcp_server.rs
@@ -190,6 +190,7 @@ impl TestMcpServer {
             client_info: Implementation {
                 name: "test-mcp-client".to_string(),
                 version: "1.0.0".to_string(),
+                ..Default::default()
             },
         };
         client_info
diff --git a/core/integration/src/test_server.rs 
b/core/integration/src/test_server.rs
index ccfdb988..2678eaee 100644
--- a/core/integration/src/test_server.rs
+++ b/core/integration/src/test_server.rs
@@ -40,6 +40,8 @@ use server::configs::config_provider::{ConfigProvider, 
FileConfigProvider};
 pub const SYSTEM_PATH_ENV_VAR: &str = "IGGY_SYSTEM_PATH";
 pub const TEST_VERBOSITY_ENV_VAR: &str = "IGGY_TEST_VERBOSE";
 pub const IPV6_ENV_VAR: &str = "IGGY_TCP_IPV6";
+pub const IGGY_ROOT_USERNAME_VAR: &str = "IGGY_ROOT_USERNAME";
+pub const IGGY_ROOT_PASSWORD_VAR: &str = "IGGY_ROOT_PASSWORD";
 const USER_PASSWORD: &str = "secret";
 const SLEEP_INTERVAL_MS: u64 = 20;
 const LOCAL_DATA_PREFIX: &str = "local_data_";
@@ -101,6 +103,20 @@ impl TestServer {
             envs.insert(IPV6_ENV_VAR.to_string(), "true".to_string());
         }
 
+        if !envs.contains_key(IGGY_ROOT_USERNAME_VAR) {
+            envs.insert(
+                IGGY_ROOT_USERNAME_VAR.to_string(),
+                DEFAULT_ROOT_USERNAME.to_string(),
+            );
+        }
+
+        if !envs.contains_key(IGGY_ROOT_PASSWORD_VAR) {
+            envs.insert(
+                IGGY_ROOT_PASSWORD_VAR.to_string(),
+                DEFAULT_ROOT_PASSWORD.to_string(),
+            );
+        }
+
         // If IGGY_SYSTEM_PATH is not set, use a random path starting with 
"local_data_"
         let local_data_path = if let Some(system_path) = 
envs.get(SYSTEM_PATH_ENV_VAR) {
             system_path.to_string()
diff --git a/core/server/Cargo.toml b/core/server/Cargo.toml
index c85c7809..049e6290 100644
--- a/core/server/Cargo.toml
+++ b/core/server/Cargo.toml
@@ -41,10 +41,10 @@ mimalloc = ["dep:mimalloc"]
 [dependencies]
 ahash = { workspace = true }
 anyhow = { workspace = true }
+argon2 = { workspace = true }
 async_zip = { workspace = true }
 axum = { workspace = true }
 axum-server = { workspace = true }
-bcrypt = { workspace = true }
 bincode = { workspace = true }
 blake3 = { workspace = true }
 bytes = { workspace = true }
@@ -92,6 +92,7 @@ opentelemetry_sdk = { version = "0.30.0", features = [
 ] }
 prometheus-client = "0.24.0"
 quinn = { workspace = true }
+rand = { workspace = true }
 reqwest = { workspace = true, features = ["rustls-tls-no-provider"] }
 ring = "0.17.14"
 rust-s3 = { workspace = true }
diff --git a/core/server/src/http/jwt/jwt_manager.rs 
b/core/server/src/http/jwt/jwt_manager.rs
index 56e2ce9b..6bb70eda 100644
--- a/core/server/src/http/jwt/jwt_manager.rs
+++ b/core/server/src/http/jwt/jwt_manager.rs
@@ -190,8 +190,8 @@ impl JwtManager {
         };
 
         let access_token = encode::<JwtClaims>(&header, &claims, 
&self.issuer.key);
-        if let Err(err) = access_token {
-            error!("Cannot generate JWT token. Error: {}", err);
+        if let Err(error) = access_token {
+            error!("Cannot generate JWT token. Error: {error}");
             return Err(IggyError::CannotGenerateJwt);
         }
 
diff --git a/core/server/src/streaming/systems/personal_access_tokens.rs 
b/core/server/src/streaming/systems/personal_access_tokens.rs
index 945c853b..9330cc5d 100644
--- a/core/server/src/streaming/systems/personal_access_tokens.rs
+++ b/core/server/src/streaming/systems/personal_access_tokens.rs
@@ -150,7 +150,7 @@ impl System {
         }
 
         if personal_access_token.is_none() {
-            error!("Personal access token: {} does not exist.", token);
+            error!("Personal access token: {token} does not exist.");
             return Err(IggyError::ResourceNotFound(token.to_owned()));
         }
 
diff --git a/core/server/src/streaming/systems/users.rs 
b/core/server/src/streaming/systems/users.rs
index e3b1ef4f..3c5f5d5a 100644
--- a/core/server/src/streaming/systems/users.rs
+++ b/core/server/src/streaming/systems/users.rs
@@ -110,8 +110,8 @@ impl System {
     }
 
     fn create_root_user() -> User {
-        let username = env::var(IGGY_ROOT_USERNAME_ENV);
-        let password = env::var(IGGY_ROOT_PASSWORD_ENV);
+        let mut username = env::var(IGGY_ROOT_USERNAME_ENV);
+        let mut password = env::var(IGGY_ROOT_PASSWORD_ENV);
         if (username.is_ok() && password.is_err()) || (username.is_err() && 
password.is_ok()) {
             panic!(
                 "When providing the custom root user credentials, both 
username and password must be set."
@@ -120,11 +120,15 @@ impl System {
         if username.is_ok() && password.is_ok() {
             info!("Using the custom root user credentials.");
         } else {
-            info!("Using the default root user credentials.");
+            info!("Generating the default root user credentials.");
+            username = Ok(DEFAULT_ROOT_USERNAME.to_string());
+            let generated_password = crypto::generate_secret(20..40);
+            println!("Generated root user password: {generated_password}");
+            password = Ok(generated_password);
         }
 
-        let username = username.unwrap_or(DEFAULT_ROOT_USERNAME.to_string());
-        let password = password.unwrap_or(DEFAULT_ROOT_PASSWORD.to_string());
+        let username = username.expect("Root username is not set.");
+        let password = password.expect("Root password is not set.");
         if username.is_empty() || password.is_empty() {
             panic!("Root user credentials are not set.");
         }
diff --git a/core/server/src/streaming/utils/crypto.rs 
b/core/server/src/streaming/utils/crypto.rs
index 46ea7d4c..6d9747b5 100644
--- a/core/server/src/streaming/utils/crypto.rs
+++ b/core/server/src/streaming/utils/crypto.rs
@@ -16,12 +16,32 @@
  * under the License.
  */
 
-use bcrypt::{hash, verify};
+use argon2::{
+    Argon2,
+    password_hash::{PasswordHash, PasswordHasher, PasswordVerifier, 
SaltString, rand_core::OsRng},
+};
+use rand::{Rng, distr::Alphanumeric};
+use std::ops::Range;
 
 pub fn hash_password(password: &str) -> String {
-    hash(password, 4).unwrap()
+    let salt = SaltString::generate(&mut OsRng);
+    Argon2::default()
+        .hash_password(password.as_bytes(), &salt)
+        .expect("Password hashing failed")
+        .to_string()
 }
 
 pub fn verify_password(password: &str, hash: &str) -> bool {
-    verify(password, hash).unwrap_or(false)
+    let hash = PasswordHash::new(hash).expect("Failed to parse password hash");
+    Argon2::default()
+        .verify_password(password.as_bytes(), &hash)
+        .is_ok()
+}
+
+pub fn generate_secret(range: Range<usize>) -> String {
+    let length = rand::rng().random_range(range);
+    let mut rng = rand::rng();
+    (0..length)
+        .map(|_| rng.sample(Alphanumeric) as char)
+        .collect()
 }
diff --git a/foreign/cpp/tests/e2e/server.toml 
b/foreign/cpp/tests/e2e/server.toml
index c541a43c..de67367a 100644
--- a/foreign/cpp/tests/e2e/server.toml
+++ b/foreign/cpp/tests/e2e/server.toml
@@ -23,8 +23,8 @@
 enabled = true
 
 # Specifies the network address and port for the HTTP server.
-# The format is "HOST:PORT". For example, "0.0.0.0:3000" listens on all 
network interfaces on port 3000.
-address = "0.0.0.0:3000"
+# The format is "HOST:PORT". For example, "127.0.0.1:3000" listens on 
localhost only on port 3000.
+address = "127.0.0.1:3000"
 
 # Maximum size of the request body in bytes. For security reasons, the default 
limit is 2 MB.
 max_request_size = "2 MB"
@@ -134,8 +134,8 @@ key_file = "core/certs/iggy_key.pem"
 enabled = true
 
 # Defines the network address and port for the TCP server.
-# For example, "0.0.0.0:8090" listens on all network interfaces on port 8090.
-address = "0.0.0.0:8090"
+# For example, "127.0.0.1:8090" listens on localhost only on port 8090.
+address = "127.0.0.1:8090"
 
 # TLS configuration for the TCP server.
 [tcp.tls]
@@ -158,8 +158,8 @@ password = "iggy123"
 enabled = true
 
 # Network address and port for the QUIC server.
-# For example, "0.0.0.0:8080" binds to all interfaces on port 8080.
-address = "0.0.0.0:8080"
+# For example, "127.0.0.1:8080" binds to localhost on port 8080.
+address = "127.0.0.1:8080"
 
 # Maximum number of simultaneous bidirectional streams in QUIC.
 max_concurrent_bidi_streams = 10_000
diff --git a/web/README.md b/web/README.md
index db16e703..6f232423 100644
--- a/web/README.md
+++ b/web/README.md
@@ -50,7 +50,7 @@ The [docker 
image](https://hub.docker.com/r/apache/iggy-web-ui) is available, an
    **If Iggy server was run using cargo directly we need to change 
PUBLIC_IGGY_API_URL env in web ui root folder to:**
 
    ```sh
-   PUBLIC_IGGY_API_URL=http://0.0.0.0:3000
+   PUBLIC_IGGY_API_URL=http://127.0.0.1:3000
    ```
 
    **instead of**

Reply via email to