diff --git a/Cargo.lock b/Cargo.lock index 34310e226..8570ee139 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -102,11 +102,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] @@ -155,7 +156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41603f7cdbf5ac4af60760f17253eb6adf6ec5b6f14a7ed830cf687d375f163" dependencies = [ "askama", - "axum-core 0.4.5", + "axum-core", "http 1.2.0", ] @@ -172,7 +173,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -214,7 +215,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", "synstructure", ] @@ -226,7 +227,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -277,18 +278,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -330,34 +331,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core 0.3.4", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 0.1.2", - "tower 0.4.13", - "tower-layer", - "tower-service", -] - [[package]] name = "axum" version = "0.7.9" @@ -365,7 +338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", - "axum-core 0.4.5", + "axum-core", "axum-macros", "bytes", "futures-util", @@ -394,23 +367,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - [[package]] name = "axum-core" version = "0.4.5" @@ -438,8 +394,8 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" dependencies = [ - "axum 0.7.9", - "axum-core 0.4.5", + "axum", + "axum-core", "bytes", "cookie 0.18.1", "fastrand", @@ -463,7 +419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40f7051fdc094b6e5ea06cab9bca4b198c54dee4472a9419155f0ff19f19901e" dependencies = [ "async-trait", - "axum-core 0.4.5", + "axum-core", "futures-core", "http 1.2.0", "pin-project-lite", @@ -480,7 +436,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -573,7 +529,7 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cexpr", "clang-sys", "lazy_static", @@ -586,7 +542,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.93", + "syn 2.0.96", "which", ] @@ -596,7 +552,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -607,7 +563,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -654,9 +610,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "blake2" @@ -684,9 +640,9 @@ checksum = "3eeab4423108c5d7c744f4d234de88d18d636100093ae04caf4825134b9c3a32" [[package]] name = "bstr" -version = "1.11.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786a307d683a5bf92e6fd5fd69a7eb613751668d1d8d67d802846dfe367c62c8" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", "regex-automata 0.4.9", @@ -725,9 +681,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.6" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "shlex", ] @@ -787,9 +743,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -797,9 +753,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -809,23 +765,23 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.40" +version = "4.5.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2e663e3e3bed2d32d065a8404024dad306e699a04263ec59919529f803aee9" +checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -974,9 +930,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1104,7 +1060,7 @@ dependencies = [ "kanidmd_core", "mimalloc", "prctl", - "reqwest 0.12.11", + "reqwest 0.12.12", "sd-notify", "serde", "serde_json", @@ -1160,7 +1116,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -1182,14 +1138,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "der" @@ -1226,7 +1182,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -1353,7 +1309,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -1430,27 +1386,27 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -1516,9 +1472,9 @@ dependencies = [ [[package]] name = "fantoccini" -version = "0.21.3" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e681009c468d99de858e7757b0cfd5f16311ca999b13ccf543c87da3c04c2c5" +checksum = "7722aeee9c2be6fa131166990295089d73d973012b758a2208b9ba51af5dd024" dependencies = [ "base64 0.22.1", "cookie 0.18.1", @@ -1587,9 +1543,9 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flagset" @@ -1739,7 +1695,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -1871,16 +1827,16 @@ dependencies = [ "gix-utils", "itoa", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] name = "gix-chunk" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ffbeb3a5c0b8b84c3fe4133a6f8c82fa962f4caefe8d0762eced025d3eb4f7" +checksum = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f" dependencies = [ - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -1915,20 +1871,20 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "unicode-bom", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] name = "gix-config-value" -version = "0.14.10" +version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aaeef5d98390a3bcf9dbc6440b520b793d1bf3ed99317dc407b02be995b28e" +checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bstr", "gix-path", "libc", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -2007,7 +1963,7 @@ version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "bstr", "gix-features", "gix-path", @@ -2053,7 +2009,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -2072,7 +2028,7 @@ dependencies = [ "itoa", "smallvec", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -2115,26 +2071,26 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.13" +version = "0.10.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc292ef1a51e340aeb0e720800338c805975724c1dfbd243185452efd8645b7" +checksum = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f" dependencies = [ "bstr", "gix-trace", "home", "once_cell", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] name = "gix-quote" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a1e282216ec2ab2816cd57e6ed88f8009e634aec47562883c05ac8a7009a63" +checksum = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6" dependencies = [ "bstr", "gix-utils", - "thiserror 2.0.8", + "thiserror 2.0.11", ] [[package]] @@ -2155,7 +2111,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror 1.0.69", - "winnow 0.6.20", + "winnow 0.6.24", ] [[package]] @@ -2203,11 +2159,11 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.10" +version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8b876ef997a955397809a2ec398d6a45b7a55b4918f2446344330f778d14fd6" +checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "gix-path", "libc", "windows-sys 0.52.0", @@ -2228,9 +2184,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04bdde120c29f1fc23a24d3e115aeeea3d60d8e65bab92cc5f9d90d9302eb952" +checksum = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7" [[package]] name = "gix-traverse" @@ -2238,7 +2194,7 @@ version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e499a18c511e71cf4a20413b743b9f5bcf64b3d9e81e9c3c6cd399eae55a8840" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "gix-commitgraph", "gix-date", "gix-hash", @@ -2265,9 +2221,9 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba427e3e9599508ed98a6ddf8ed05493db114564e338e41f6a996d2e4790335f" +checksum = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f" dependencies = [ "fastrand", "unicode-normalization", @@ -2285,9 +2241,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "h2" @@ -2301,7 +2257,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -2320,7 +2276,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -2525,20 +2481,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.5" @@ -2549,25 +2491,26 @@ dependencies = [ "http 1.2.0", "hyper 1.5.2", "hyper-util", - "rustls 0.23.20", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tower-service", - "webpki-roots 0.26.7", + "webpki-roots", ] [[package]] name = "hyper-timeout" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 0.14.32", + "hyper 1.5.2", + "hyper-util", "pin-project-lite", "tokio", - "tokio-io-timeout", + "tower-service", ] [[package]] @@ -2743,7 +2686,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -2825,9 +2768,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2856,9 +2799,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is_terminal_polyfill" @@ -2898,9 +2841,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -2908,9 +2851,9 @@ dependencies = [ [[package]] name = "jsonschema" -version = "0.28.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d8eb539cdb4222da29bb658cc9881aa2477b33fb1a74c5c31450395fc1a4b2" +checksum = "4b8f66fe41fa46a5c83ed1c717b7e0b4635988f427083108c8cf0a882cc13441" dependencies = [ "ahash", "base64 0.22.1", @@ -2925,7 +2868,7 @@ dependencies = [ "percent-encoding", "referencing", "regex-syntax 0.8.5", - "reqwest 0.12.11", + "reqwest 0.12.12", "serde", "serde_json", "uuid-simd", @@ -3016,7 +2959,7 @@ dependencies = [ "hyper 1.5.2", "kanidm_lib_file_permissions", "kanidm_proto", - "reqwest 0.12.11", + "reqwest 0.12.12", "serde", "serde_json", "serde_urlencoded", @@ -3036,8 +2979,8 @@ dependencies = [ "anyhow", "base64 0.22.1", "kanidm_proto", - "oauth2", - "reqwest 0.12.11", + "oauth2 5.0.0", + "reqwest 0.12.12", "sketching", "tokio", "tracing", @@ -3202,7 +3145,7 @@ version = "1.5.0-dev" dependencies = [ "askama", "askama_axum", - "axum 0.7.9", + "axum", "axum-extra", "axum-htmx", "axum-macros", @@ -3255,7 +3198,7 @@ version = "1.5.0-dev" dependencies = [ "base64 0.22.1", "base64urlsafedata", - "bitflags 2.6.0", + "bitflags 2.8.0", "compact_jwt", "concread", "dhat", @@ -3308,7 +3251,7 @@ version = "1.5.0-dev" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -3328,10 +3271,10 @@ dependencies = [ "kanidm_proto", "kanidmd_core", "kanidmd_lib", - "oauth2", + "oauth2 4.4.2", "openssl", "petgraph", - "reqwest 0.12.11", + "reqwest 0.12.12", "serde", "serde_json", "sketching", @@ -3474,7 +3417,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", "redox_syscall", ] @@ -3512,9 +3455,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" @@ -3540,9 +3483,9 @@ dependencies = [ [[package]] name = "lodepng" -version = "3.10.7" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2dea7cda68e381418c985fd8f32a9c279a21ae8c715f2376adb20c27a0fad3" +checksum = "a7720115060cd38dcfe5c758525a43fd34dc615d0566374212ff0dc3b6151eac" dependencies = [ "crc32fast", "flate2", @@ -3552,9 +3495,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lru" @@ -3652,9 +3595,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -3707,9 +3650,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -3728,7 +3671,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases", "libc", @@ -3759,7 +3702,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -3965,10 +3908,30 @@ dependencies = [ ] [[package]] -name = "object" -version = "0.36.5" +name = "oauth2" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d" +dependencies = [ + "base64 0.22.1", + "chrono", + "getrandom", + "http 1.2.0", + "rand", + "reqwest 0.12.12", + "serde", + "serde_json", + "serde_path_to_error", + "sha2", + "thiserror 1.0.69", + "url", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -3999,11 +3962,11 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "f5e534d133a060a3c19daec1eb3e98ec6f4685978834f2dbadfe2ec215bab64e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "foreign-types", "libc", @@ -4020,14 +3983,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" @@ -4043,39 +4006,42 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.20.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54" +checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" dependencies = [ - "opentelemetry_api", - "opentelemetry_sdk", + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 1.0.69", + "tracing", ] [[package]] name = "opentelemetry-http" -version = "0.9.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b" +checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" dependencies = [ "async-trait", "bytes", - "http 0.2.12", - "opentelemetry_api", + "http 1.2.0", + "opentelemetry", ] [[package]] name = "opentelemetry-otlp" -version = "0.13.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275" +checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" dependencies = [ "async-trait", "futures-core", - "http 0.2.12", + "http 1.2.0", + "opentelemetry", "opentelemetry-http", "opentelemetry-proto", - "opentelemetry-semantic-conventions", - "opentelemetry_api", "opentelemetry_sdk", "prost", "serde", @@ -4086,11 +4052,11 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.3.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e3f814aa9f8c905d0ee4bde026afd3b2577a97c10e1699912e3e44f0c4cbeb" +checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" dependencies = [ - "opentelemetry_api", + "opentelemetry", "opentelemetry_sdk", "prost", "tonic", @@ -4098,50 +4064,29 @@ dependencies = [ [[package]] name = "opentelemetry-semantic-conventions" -version = "0.12.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269" -dependencies = [ - "opentelemetry", -] - -[[package]] -name = "opentelemetry_api" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b" -dependencies = [ - "futures-channel", - "futures-util", - "indexmap 1.9.3", - "js-sys", - "once_cell", - "pin-project-lite", - "thiserror 1.0.69", - "urlencoding", -] +checksum = "bc1b6902ff63b32ef6c489e8048c5e253e2e4a803ea3ea7e783914536eb15c52" [[package]] name = "opentelemetry_sdk" -version = "0.20.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026" +checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" dependencies = [ "async-trait", - "crossbeam-channel", "futures-channel", "futures-executor", "futures-util", - "once_cell", - "opentelemetry_api", - "ordered-float", + "glob", + "opentelemetry", "percent-encoding", "rand", - "regex", "serde_json", "thiserror 1.0.69", "tokio", "tokio-stream", + "tracing", ] [[package]] @@ -4169,20 +4114,11 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "ordered-float" -version = "3.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" -dependencies = [ - "num-traits", -] - [[package]] name = "outref" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "overload" @@ -4292,12 +4228,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", ] @@ -4339,29 +4275,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -4429,12 +4365,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.25" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -4473,9 +4409,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -4488,9 +4424,9 @@ checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" [[package]] name = "prost" -version = "0.11.9" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -4498,15 +4434,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.13.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] @@ -4552,9 +4488,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustls", "socket2", - "thiserror 2.0.8", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -4570,10 +4506,10 @@ dependencies = [ "rand", "ring", "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.8", + "thiserror 2.0.11", "tinyvec", "tracing", "web-time", @@ -4638,7 +4574,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -4669,7 +4605,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -4680,9 +4616,9 @@ checksum = "5daffa8f5ca827e146485577fa9dba9bd9c6921e06e954ab8f6408c10f753086" [[package]] name = "referencing" -version = "0.28.0" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093a875008827c0ae15c746189966e162faa05bf347719d06302c548ac63630f" +checksum = "d0dcb5ab28989ad7c91eb1b9531a37a1a137cc69a0499aee4117cae4a107c464" dependencies = [ "ahash", "fluent-uri", @@ -4750,7 +4686,6 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.32", - "hyper-rustls 0.24.2", "ipnet", "js-sys", "log", @@ -4758,29 +4693,25 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", "system-configuration", "tokio", - "tokio-rustls 0.24.1", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.25.4", "winreg", ] [[package]] name = "reqwest" -version = "0.12.11" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe060fe50f524be480214aba758c71f99f90ee8c83c5a36b5e9e1d568eb4eb3" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "async-compression", "base64 0.22.1", @@ -4795,7 +4726,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.5.2", - "hyper-rustls 0.27.5", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -4806,16 +4737,16 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.20", + "rustls", "rustls-native-certs", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tokio-util", "tower 0.5.2", "tower-service", @@ -4823,7 +4754,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.7", + "webpki-roots", "windows-registry", ] @@ -4901,7 +4832,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.93", + "syn 2.0.96", "walkdir", ] @@ -4944,11 +4875,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.42" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", @@ -4957,26 +4888,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] @@ -4990,16 +4909,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.1.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.2.0", ] [[package]] @@ -5020,16 +4930,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.102.8" @@ -5043,9 +4943,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -5094,21 +4994,11 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sd-notify" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561e6b346a5e59e0b8a07894004897d7160567e3352d2ebd6c3741d4e086b6f5" +checksum = "b943eadf71d8b69e661330cb0e2656e31040acf21ee7708e2c238a0ec6af2bf4" dependencies = [ "libc", ] @@ -5119,7 +5009,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -5128,11 +5018,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -5141,9 +5031,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -5155,7 +5045,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0139b2436c81305eb6bda33af151851f75bd62783817b25f44daa371119c30b5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", "once_cell", "reference-counted-singleton", @@ -5177,9 +5067,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" @@ -5227,14 +5117,14 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.134" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -5274,7 +5164,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -5291,7 +5181,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -5370,9 +5260,11 @@ dependencies = [ "num_enum", "opentelemetry", "opentelemetry-otlp", + "opentelemetry-semantic-conventions", "opentelemetry_sdk", "serde", "tracing", + "tracing-core", "tracing-forest", "tracing-opentelemetry", "tracing-subscriber", @@ -5528,9 +5420,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.93" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -5560,7 +5452,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -5592,12 +5484,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", + "getrandom", "once_cell", "rustix", "windows-sys 0.59.0", @@ -5615,7 +5508,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -5629,11 +5522,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.8" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.8", + "thiserror-impl 2.0.11", ] [[package]] @@ -5644,18 +5537,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "2.0.8" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -5750,14 +5643,14 @@ checksum = "8d9ef545650e79f30233c0003bcc2504d7efac6dad25fca40744de773fe2049c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -5771,25 +5664,15 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -5813,23 +5696,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.20", + "rustls", "tokio", ] @@ -5879,31 +5752,33 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "tonic" -version = "0.9.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ + "async-stream", "async-trait", - "axum 0.6.20", - "base64 0.21.7", + "axum", + "base64 0.22.1", "bytes", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "h2 0.4.7", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.2", "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", "prost", + "socket2", "tokio", "tokio-stream", "tower 0.4.13", @@ -5956,7 +5831,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "async-compression", - "bitflags 2.6.0", + "bitflags 2.8.0", "bytes", "futures-core", "futures-util", @@ -6009,7 +5884,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -6036,17 +5911,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -6060,18 +5924,20 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.21.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8" +checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" dependencies = [ + "js-sys", "once_cell", "opentelemetry", "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", - "tracing-log 0.1.4", + "tracing-log", "tracing-subscriber", + "web-time", ] [[package]] @@ -6089,7 +5955,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", ] [[package]] @@ -6142,9 +6008,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-bom" @@ -6154,9 +6020,9 @@ checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unicode-normalization" @@ -6227,7 +6093,7 @@ version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afb1a60e207dca502682537fefcfd9921e71d0b83e9576060f09abc6efab23" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_json", "utoipa-gen", @@ -6243,7 +6109,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.93", + "syn 2.0.96", "url", "uuid", ] @@ -6254,7 +6120,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b39868d43c011961e04b41623e050aedf2cc93652562ff7935ce0f819aaf2da" dependencies = [ - "axum 0.7.9", + "axum", "mime_guess", "regex", "rust-embed", @@ -6266,9 +6132,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" dependencies = [ "getrandom", "serde", @@ -6287,9 +6153,9 @@ dependencies = [ [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -6351,34 +6217,35 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -6389,9 +6256,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6399,28 +6266,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -6557,12 +6427,6 @@ dependencies = [ "url", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.7" @@ -6887,9 +6751,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -6965,7 +6829,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", "synstructure", ] @@ -6987,7 +6851,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -7007,7 +6871,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", "synstructure", ] @@ -7028,7 +6892,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] @@ -7050,7 +6914,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.93", + "syn 2.0.96", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 875cccf72..2efec7e1d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -140,7 +140,7 @@ anyhow = { version = "1.0.95" } argon2 = { version = "0.5.3", features = ["alloc"] } askama = { version = "0.12.1", features = ["serde", "with-axum"] } askama_axum = { version = "0.4.0" } -async-trait = "^0.1.83" +async-trait = "^0.1.85" axum = { version = "0.7.9", features = [ "form", "json", @@ -155,10 +155,10 @@ axum-htmx = { version = "0.5.0", features = ["serde", "guards"] } base32 = "^0.5.1" base64 = "^0.22.1" base64urlsafedata = "0.5.1" -bitflags = "^2.6.0" +bitflags = "^2.8.0" bytes = "^1.9.0" -clap = { version = "^4.5.23", features = ["derive", "env"] } -clap_complete = "^4.5.38" +clap = { version = "^4.5.27", features = ["derive", "env"] } +clap_complete = "^4.5.42" # Forced by saffron/cron chrono = "^0.4.39" compact_jwt = { version = "^0.4.2", default-features = false } @@ -199,7 +199,7 @@ ldap3_proto = { version = "^0.5.2", features = ["serde"] } libc = "^0.2.168" libnss = "^0.8.0" libsqlite3-sys = "^0.25.2" -lodepng = "3.10.7" +lodepng = "3.11.0" lru = "^0.12.5" mathru = "^0.13.0" mimalloc = "0.1.43" @@ -207,31 +207,33 @@ notify-debouncer-full = { version = "0.1" } num_enum = "^0.5.11" oauth2_ext = { version = "^4.4.2", package = "oauth2", default-features = false } openssl-sys = "^0.9" -openssl = "^0.10.68" +openssl = "^0.10.69" -opentelemetry = { version = "0.20.0" } -opentelemetry_api = { version = "0.20.0", features = ["logs", "metrics"] } -opentelemetry-otlp = { version = "0.13.0", default-features = false, features = [ +opentelemetry = { version = "0.27.0" } +opentelemetry_api = { version = "0.27.0", features = ["logs", "metrics"] } +opentelemetry-otlp = { version = "0.27.0", default-features = false, features = [ "serde", "logs", "metrics", "http-proto", "grpc-tonic", ] } -opentelemetry_sdk = "0.20.0" -tracing-opentelemetry = "0.21.0" +opentelemetry_sdk = { version = "0.27.0", features = ["rt-tokio"] } +opentelemetry-semantic-conventions = "0.27.0" +tracing-opentelemetry = "0.28.0" +tracing-core = "0.1.33" paste = "^1.0.14" peg = "0.8" pkg-config = "^0.3.31" prctl = "1.0.0" -proc-macro2 = "1.0.92" +proc-macro2 = "1.0.93" qrcode = "^0.12.0" quote = "1" rand = "^0.8.5" rand_chacha = "0.3.1" regex = "1.11.0" -reqwest = { version = "0.12.11", default-features = false, features = [ +reqwest = { version = "0.12.12", default-features = false, features = [ "cookies", "http2", "json", @@ -239,15 +241,15 @@ reqwest = { version = "0.12.11", default-features = false, features = [ "rustls-tls-native-roots", ] } rusqlite = { version = "^0.28.0", features = ["array", "bundled"] } -rustls = { version = "0.23.20", default-features = false, features = [ +rustls = { version = "0.23.21", default-features = false, features = [ "aws_lc_rs", ] } -sd-notify = "^0.4.4" +sd-notify = "^0.4.5" selinux = "^0.4.6" serde = "^1.0.217" serde_cbor = { version = "0.12.0-dev", package = "serde_cbor_2" } -serde_json = "^1.0.134" +serde_json = "^1.0.137" serde_urlencoded = "^0.7.1" serde_with = "3.12.0" sha-crypt = "0.5.0" @@ -258,12 +260,12 @@ smolset = "^1.3.1" sshkey-attest = "^0.5.0" sshkeys = "0.3.3" svg = "0.13.1" -syn = { version = "2.0.93", features = ["full"] } -tempfile = "3.14.0" +syn = { version = "2.0.96", features = ["full"] } +tempfile = "3.15.0" testkit-macros = { path = "./server/testkit-macros" } time = { version = "^0.3.36", features = ["formatting", "local-offset"] } -tokio = "^1.42.0" +tokio = "^1.43.0" tokio-openssl = "^0.6.5" tokio-util = "^0.7.13" @@ -279,7 +281,7 @@ url = "^2.5.2" urlencoding = "2.1.3" utoipa = { version = "4.2.0", features = ["url", "uuid"] } utoipa-swagger-ui = "6.0.0" -uuid = "^1.11.0" +uuid = "^1.12.1" webauthn-authenticator-rs = { version = "0.5.1", features = [ "softpasskey", @@ -297,4 +299,3 @@ x509-cert = "0.2.5" zxcvbn = "^2.2.2" nonempty = "0.8.1" - diff --git a/libs/sketching/Cargo.toml b/libs/sketching/Cargo.toml index 33586fd88..71d997ccd 100644 --- a/libs/sketching/Cargo.toml +++ b/libs/sketching/Cargo.toml @@ -19,7 +19,7 @@ doctest = false [dependencies] gethostname = "0.5.0" num_enum = { workspace = true } -opentelemetry = { workspace = true, features = ["metrics", "rt-tokio"] } +opentelemetry = { workspace = true, features = ["metrics"] } opentelemetry-otlp = { workspace = true, default-features = false, features = [ "serde", "logs", @@ -27,9 +27,12 @@ opentelemetry-otlp = { workspace = true, default-features = false, features = [ "http-proto", "grpc-tonic", ] } -opentelemetry_sdk = { workspace = true } +opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] } +opentelemetry-semantic-conventions = { workspace = true } + serde = { workspace = true, features = ["derive"] } tracing = { workspace = true, features = ["attributes"] } +tracing-core = { workspace = true } tracing-forest = { workspace = true, features = [ "uuid", "smallvec", diff --git a/libs/sketching/src/otel.rs b/libs/sketching/src/otel.rs index 5c8fe32d8..d3220a4f5 100644 --- a/libs/sketching/src/otel.rs +++ b/libs/sketching/src/otel.rs @@ -1,16 +1,26 @@ -use gethostname::gethostname; -use opentelemetry::KeyValue; +use std::{str::FromStr, time::Duration}; + use opentelemetry_otlp::{Protocol, WithExportConfig}; -use opentelemetry_sdk::trace::{self, Sampler}; -use opentelemetry_sdk::Resource; -use std::time::Duration; + +use opentelemetry::{global, trace::TracerProvider as _, KeyValue}; + +use opentelemetry_sdk::{ + trace::{Sampler, TracerProvider}, + Resource, +}; use tracing::Subscriber; -use tracing_subscriber::Registry; -use tracing_subscriber::{prelude::*, EnvFilter}; +use tracing_core::Level; + +use tracing_subscriber::{filter::Directive, prelude::*, EnvFilter, Registry}; pub const MAX_EVENTS_PER_SPAN: u32 = 64 * 1024; pub const MAX_ATTRIBUTES_PER_SPAN: u32 = 128; +use opentelemetry_semantic_conventions::{ + attribute::{SERVICE_NAME, SERVICE_VERSION}, + SCHEMA_URL, +}; + // TODO: this is coming back later // #[allow(dead_code)] // pub fn init_metrics() -> metrics::Result { @@ -44,28 +54,26 @@ pub fn start_logging_pipeline( // adding these filters because when you close out the process the OTLP comms layer is NOISY let forest_filter = forest_filter .add_directive( - "tonic=info" - .parse() - .expect("Failed to set tonic logging to info"), + Directive::from_str("tonic=info").expect("Failed to set tonic logging to info"), ) - .add_directive("h2=info".parse().expect("Failed to set h2 logging to info")) .add_directive( - "hyper=info" - .parse() - .expect("Failed to set hyper logging to info"), + Directive::from_str("h2=info").expect("Failed to set h2 logging to info"), + ) + .add_directive( + Directive::from_str("hyper=info").expect("Failed to set hyper logging to info"), ); let forest_layer = tracing_forest::ForestLayer::default().with_filter(forest_filter); let t_filter: EnvFilter = EnvFilter::builder() .with_default_directive(log_filter.into()) .from_env_lossy(); - let tracer = opentelemetry_otlp::new_pipeline().tracing().with_exporter( - opentelemetry_otlp::new_exporter() - .tonic() - .with_endpoint(endpoint) - .with_timeout(Duration::from_secs(5)) - .with_protocol(Protocol::HttpBinary), - ); + let otlp_exporter = opentelemetry_otlp::SpanExporter::builder() + .with_tonic() + .with_endpoint(endpoint) + .with_protocol(Protocol::HttpBinary) + .with_timeout(Duration::from_secs(5)) + .build() + .map_err(|err| err.to_string())?; // this env var gets set at build time, if we can pull it, add it to the metadata let git_rev = match option_env!("KANIDM_PKG_COMMIT_REV") { @@ -74,39 +82,47 @@ pub fn start_logging_pipeline( }; let version = format!("{}{}", env!("CARGO_PKG_VERSION"), git_rev); - let hostname = gethostname(); - let hostname = hostname.to_string_lossy(); - let hostname = hostname.to_lowercase(); + // let hostname = gethostname::gethostname(); + // let hostname = hostname.to_string_lossy(); + // let hostname = hostname.to_lowercase(); - let tracer = tracer - .with_trace_config( - trace::config() - // we want *everything!* - .with_sampler(Sampler::AlwaysOn) - .with_max_events_per_span(MAX_EVENTS_PER_SPAN) - .with_max_attributes_per_span(MAX_ATTRIBUTES_PER_SPAN) - .with_resource(Resource::new(vec![ - KeyValue::new("service.name", service_name), - KeyValue::new("service.version", version), - KeyValue::new("host.name", hostname), - // TODO: it'd be really nice to be able to set the instance ID here, from the server UUID so we know *which* instance on this host is logging - ])), + let resource = Resource::from_schema_url( + [ + // TODO: it'd be really nice to be able to set the instance ID here, from the server UUID so we know *which* instance on this host is logging + KeyValue::new(SERVICE_NAME, service_name), + KeyValue::new(SERVICE_VERSION, version), + // TODO: currently marked as an experimental flag, leaving it out for now + // KeyValue::new(DEPLOYMENT_ENVIRONMENT_NAME, hostname), + ], + SCHEMA_URL, + ); + + let provider = TracerProvider::builder() + .with_batch_exporter(otlp_exporter, opentelemetry_sdk::runtime::Tokio) + // we want *everything!* + .with_sampler(Sampler::AlwaysOn) + .with_max_events_per_span(MAX_EVENTS_PER_SPAN) + .with_max_attributes_per_span(MAX_ATTRIBUTES_PER_SPAN) + .with_resource(resource) + .build(); + + global::set_tracer_provider(provider.clone()); + provider.tracer("tracing-otel-subscriber"); + use tracing_opentelemetry::OpenTelemetryLayer; + + let registry = tracing_subscriber::registry() + .with( + tracing_subscriber::filter::LevelFilter::from_level(Level::INFO) + .with_filter(t_filter), ) - .install_batch(opentelemetry::runtime::Tokio) - .map_err(|err| { - let err = format!("Failed to start OTLP pipeline: {:?}", err); - eprintln!("{}", err); - err - })?; - // Create a tracing layer with the configured tracer; - let telemetry = tracing_opentelemetry::layer() - .with_tracer(tracer) - .with_threads(true) - .with_filter(t_filter); + .with(tracing_subscriber::fmt::layer()) + // .with(MetricsLayer::new(meter_provider.clone())) + .with(forest_layer) + .with(OpenTelemetryLayer::new( + provider.tracer("tracing-otel-subscriber"), + )); - Ok(Box::new( - Registry::default().with(forest_layer).with(telemetry), - )) + Ok(Box::new(registry)) } None => { let forest_layer = tracing_forest::ForestLayer::default().with_filter(forest_filter); @@ -122,7 +138,6 @@ pub struct TracingPipelineGuard {} impl Drop for TracingPipelineGuard { fn drop(&mut self) { opentelemetry::global::shutdown_tracer_provider(); - opentelemetry::global::shutdown_logger_provider(); eprintln!("Logging pipeline completed shutdown"); } } diff --git a/server/core/Cargo.toml b/server/core/Cargo.toml index c0bab238d..3b7e6200c 100644 --- a/server/core/Cargo.toml +++ b/server/core/Cargo.toml @@ -25,7 +25,7 @@ askama_axum = { workspace = true } axum = { workspace = true } axum-htmx = { workspace = true } axum-extra = { version = "0.9.6", features = ["cookie"] } -axum-macros = "0.4.1" +axum-macros = "0.4.2" axum-server = { version = "0.7.1", default-features = false } bytes = { workspace = true } chrono = { workspace = true } diff --git a/server/lib/src/idm/application.rs b/server/lib/src/idm/application.rs index d5c3c1dd9..42fb98485 100644 --- a/server/lib/src/idm/application.rs +++ b/server/lib/src/idm/application.rs @@ -134,7 +134,7 @@ impl TryFrom>> for LdapApplications { } } -impl<'a> IdmServerAuthTransaction<'a> { +impl IdmServerAuthTransaction<'_> { pub async fn application_auth_ldap( &mut self, lae: &LdapApplicationAuthEvent, diff --git a/server/lib/src/idm/ldap.rs b/server/lib/src/idm/ldap.rs index 4f572f7cc..f71562b72 100644 --- a/server/lib/src/idm/ldap.rs +++ b/server/lib/src/idm/ldap.rs @@ -693,9 +693,9 @@ impl LdapServer { } // end match server op } - async fn bind_target_from_bind_dn<'a>( + async fn bind_target_from_bind_dn( &self, - idm_auth: &mut IdmServerAuthTransaction<'a>, + idm_auth: &mut IdmServerAuthTransaction<'_>, dn: &str, pw: &str, ) -> Result { diff --git a/server/lib/src/idm/oauth2.rs b/server/lib/src/idm/oauth2.rs index b555b3609..c5d564dfc 100644 --- a/server/lib/src/idm/oauth2.rs +++ b/server/lib/src/idm/oauth2.rs @@ -2968,7 +2968,7 @@ fn host_is_local(host: &Host<&str>) -> bool { /// Ensure that the redirect URI is a loopback/localhost address fn check_is_loopback(redirect_uri: &Url) -> bool { - redirect_uri.host().map_or(false, |host| { + redirect_uri.host().is_some_and(|host| { // Check if the host is a loopback/localhost address. host_is_local(&host) }) diff --git a/server/lib/src/idm/reauth.rs b/server/lib/src/idm/reauth.rs index 1895fc6a8..b09ceeae2 100644 --- a/server/lib/src/idm/reauth.rs +++ b/server/lib/src/idm/reauth.rs @@ -17,7 +17,7 @@ use kanidm_proto::v1::AuthIssueSession; use super::server::CredSoftLockMutex; -impl<'a> IdmServerAuthTransaction<'a> { +impl IdmServerAuthTransaction<'_> { pub async fn reauth_init( &mut self, ident: Identity, diff --git a/server/lib/src/idm/server.rs b/server/lib/src/idm/server.rs index 6b289e797..038c44fc5 100644 --- a/server/lib/src/idm/server.rs +++ b/server/lib/src/idm/server.rs @@ -1008,7 +1008,7 @@ impl<'a> IdmServerTransaction<'a> for IdmServerAuthTransaction<'a> { } } -impl<'a> IdmServerAuthTransaction<'a> { +impl IdmServerAuthTransaction<'_> { #[cfg(test)] pub fn is_sessionid_present(&self, sessionid: Uuid) -> bool { let session_read = self.sessions.read(); diff --git a/server/lib/src/modify.rs b/server/lib/src/modify.rs index d228dde1f..723c9a998 100644 --- a/server/lib/src/modify.rs +++ b/server/lib/src/modify.rs @@ -214,10 +214,7 @@ impl ModifyList { }) .collect(); - let valid_mods = match res { - Ok(v) => v, - Err(e) => return Err(e), - }; + let valid_mods = res?; // Return new ModifyList! Ok(ModifyList { diff --git a/server/lib/src/valueset/eckey.rs b/server/lib/src/valueset/eckey.rs index 8cb502764..5a512ea8b 100644 --- a/server/lib/src/valueset/eckey.rs +++ b/server/lib/src/valueset/eckey.rs @@ -158,8 +158,8 @@ impl ValueSetT for ValueSetEcKeyPrivate { fn equal(&self, other: &super::ValueSet) -> bool { #[allow(clippy::expect_used)] - other.as_ec_key_private().map_or(false, |other_key| { - self.set.as_ref().map_or(false, |key| { + other.as_ec_key_private().is_some_and(|other_key| { + self.set.as_ref().is_some_and(|key| { key.priv_key .private_key_to_der() .expect("Failed to retrieve key der") diff --git a/server/testkit/Cargo.toml b/server/testkit/Cargo.toml index 7d4f0f78a..1c0563c21 100644 --- a/server/testkit/Cargo.toml +++ b/server/testkit/Cargo.toml @@ -53,17 +53,17 @@ assert_cmd = "2.0.16" compact_jwt = { workspace = true } escargot = "0.5.13" # used for webdriver testing -fantoccini = { version = "0.21.3" } +fantoccini = { version = "0.21.4" } futures = { workspace = true } oauth2_ext = { workspace = true, default-features = false, features = [ "reqwest", ] } openssl = { workspace = true } -petgraph = { version = "0.6.4", features = ["serde", "serde-1"] } +petgraph = { version = "0.7.1", features = ["serde", "serde-1"] } serde_json = { workspace = true } time = { workspace = true } tokio-openssl = { workspace = true } kanidm_lib_crypto = { workspace = true } uuid = { workspace = true } webauthn-authenticator-rs = { workspace = true } -jsonschema = "0.28.0" +jsonschema = "0.28.3" diff --git a/tools/device_flow/Cargo.toml b/tools/device_flow/Cargo.toml index 373c99241..24417cd7f 100644 --- a/tools/device_flow/Cargo.toml +++ b/tools/device_flow/Cargo.toml @@ -20,8 +20,8 @@ doctest = false [dependencies] kanidm_proto = { workspace = true } anyhow = { workspace = true } -oauth2 = "4.4.2" -reqwest = { version = "0.12.11", default-features = false, features = [ +oauth2 = "5.0.0" +reqwest = { version = "0.12.12", default-features = false, features = [ "rustls-tls", ] } diff --git a/tools/device_flow/examples/device_flow.rs b/tools/device_flow/examples/device_flow.rs index 68c2e518b..a744c1c55 100644 --- a/tools/device_flow/examples/device_flow.rs +++ b/tools/device_flow/examples/device_flow.rs @@ -4,10 +4,11 @@ use kanidm_proto::constants::uri::{ OAUTH2_AUTHORISE, OAUTH2_AUTHORISE_DEVICE, OAUTH2_TOKEN_ENDPOINT, }; use oauth2::basic::BasicClient; -use oauth2::devicecode::StandardDeviceAuthorizationResponse; + use oauth2::http::StatusCode; use oauth2::{ - AuthUrl, ClientId, DeviceAuthorizationUrl, HttpRequest, HttpResponse, Scope, TokenUrl, + AuthUrl, ClientId, DeviceAuthorizationUrl, HttpRequest, HttpResponse, Scope, + StandardDeviceAuthorizationResponse, TokenUrl, }; use reqwest::Client; use sketching::tracing_subscriber::layer::SubscriberExt; @@ -16,41 +17,34 @@ use sketching::tracing_subscriber::{fmt, EnvFilter}; use tracing::level_filters::LevelFilter; use tracing::{debug, error, info}; -async fn http_client( - request: HttpRequest, -) -> Result> { +async fn http_client(request: HttpRequest) -> Result { let client = Client::builder() .danger_accept_invalid_certs(true) // Following redirects opens the client up to SSRF vulnerabilities. .redirect(reqwest::redirect::Policy::none()) - .build() - .map_err(oauth2::reqwest::Error::Reqwest)?; + .build()?; - let method = reqwest::Method::from_str(request.method.as_str()) - .map_err(|err| oauth2::reqwest::Error::Other(err.to_string()))?; + let method = reqwest::Method::from_str(request.method().as_str()) + .expect("this is definitely a bug but OK in an example!"); let mut request_builder = client - .request(method, request.url.as_str()) - .body(request.body); + .request(method, request.uri().to_string()) + .body(request.body().to_vec()); - for (name, value) in &request.headers { + for (name, value) in request.headers().iter() { request_builder = request_builder.header(name.as_str(), value.as_bytes()); } let response = client - .execute(request_builder.build().map_err(|err| { - error!("Failed to build request... {:?}", err); - oauth2::reqwest::Error::Reqwest(err) - })?) + .execute(request_builder.build()?) .await - .map_err(|err| { - error!("Failed to query url {} error={:?}", request.url, err); - oauth2::reqwest::Error::Reqwest(err) + .inspect_err(|err| { + error!("Failed to query url {} error={:?}", request.uri(), err); })?; - let status_code = StatusCode::from_u16(response.status().as_u16()) - .map_err(|err| oauth2::reqwest::Error::Other(err.to_string()))?; - let headers = response + let status_code = + StatusCode::from_u16(response.status().as_u16()).expect("This'll work, for an example"); + let headers: Vec<(oauth2::http::HeaderName, oauth2::http::HeaderValue)> = response .headers() .into_iter() .map(|(k, v)| { @@ -65,17 +59,17 @@ async fn http_client( }) .collect(); - let body = response.bytes().await.map_err(|err| { - error!("Failed to parse body...? {:?}", err); - oauth2::reqwest::Error::Reqwest(err) - })?; + let body = response.bytes().await?; info!("Response body: {:?}", String::from_utf8(body.to_vec())); - Ok(HttpResponse { - status_code, - headers, - body: body.to_vec(), - }) + let mut response = HttpResponse::new(body.to_vec()); + + let headers_mut = response.headers_mut(); + headers_mut.extend(headers); + + *response.status_mut() = status_code; + + Ok(response) } #[tokio::main] @@ -94,27 +88,25 @@ async fn main() -> anyhow::Result<()> { info!("building client..."); // kanidm system oauth2 create-public device_flow device_flow 'https://deviceauth' - let client = BasicClient::new( - ClientId::new("device_code".to_string()), - None, - AuthUrl::new(format!("https://localhost:8443{}", OAUTH2_AUTHORISE))?, - Some(TokenUrl::new(format!( + let client = BasicClient::new(ClientId::new("device_code".to_string())) + .set_token_uri(TokenUrl::from_url( + format!("https://localhost:8443{}", OAUTH2_TOKEN_ENDPOINT).parse()?, + )) + .set_auth_uri(AuthUrl::from_url( + format!("https://localhost:8443{}", OAUTH2_AUTHORISE).parse()?, + )) + .set_device_authorization_url(DeviceAuthorizationUrl::new(format!( "https://localhost:8443{}", - OAUTH2_TOKEN_ENDPOINT - ))?), - ) - .set_device_authorization_url(DeviceAuthorizationUrl::new(format!( - "https://localhost:8443{}", - OAUTH2_AUTHORISE_DEVICE - ))?); + OAUTH2_AUTHORISE_DEVICE + ))?); info!("Getting details..."); let details: StandardDeviceAuthorizationResponse = client .exchange_device_code() - .inspect_err(|err| error!("configuration error: {:?}", err))? + // .inspect_err(|err| error!("configuration error: {:?}", err))? .add_scope(Scope::new("read".to_string())) - .request_async(http_client) + .request_async(&http_client) .await?; println!( @@ -129,7 +121,7 @@ async fn main() -> anyhow::Result<()> { let token_result = client .exchange_device_access_token(&details) - .request_async(http_client, tokio::time::sleep, None) + .request_async(&http_client, tokio::time::sleep, None) .await?; println!("Result: {:?}", token_result); Ok(()) diff --git a/unix_integration/nss_kanidm/Cargo.toml b/unix_integration/nss_kanidm/Cargo.toml index 76ba3bf07..17a7a89c9 100644 --- a/unix_integration/nss_kanidm/Cargo.toml +++ b/unix_integration/nss_kanidm/Cargo.toml @@ -25,7 +25,7 @@ paste = { workspace = true } lazy_static = { workspace = true } [target."cfg(target_os = \"freebsd\")".build-dependencies] -cc = "^1.2.6" +cc = "^1.2.10" ## Debian packaging # The base metadata does **not** work to build a functioning package!