diff --git a/.gitattributes b/.gitattributes index 53c7506b..2b8e36d2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ nix/** linguist-generated Cargo.nix linguist-generated crate-hashes.json linguist-generated +extra/crds.yaml linguist-generated diff --git a/.gitignore b/.gitignore index 2dbc7ab0..abc7ff9a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ result image.tar tilt_options.json +local_values.yaml .direnv/ .direnvrc diff --git a/Cargo.lock b/Cargo.lock index 3a3ed0b9..05ca34d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -24,7 +15,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -45,12 +36,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" @@ -62,9 +47,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -77,9 +62,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -112,9 +97,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arc-swap" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "async-broadcast" @@ -147,7 +138,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -158,7 +149,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -175,9 +166,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" dependencies = [ "axum-core", "bytes", @@ -194,8 +185,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -209,9 +199,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" dependencies = [ "bytes", "futures-core", @@ -220,7 +210,6 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -229,9 +218,9 @@ dependencies = [ [[package]] name = "backon" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" +checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" dependencies = [ "fastrand", "gloo-timers", @@ -239,19 +228,10 @@ dependencies = [ ] [[package]] -name = "backtrace" -version = "0.3.75" +name = "base16ct" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -259,6 +239,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + [[package]] name = "bindgen" version = "0.71.1" @@ -276,7 +262,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -296,9 +282,9 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.9.3" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "block-buffer" @@ -357,10 +343,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.34" +version = "1.2.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -373,7 +360,7 @@ dependencies = [ "clap", "hex", "openssl", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-secret-operator-utils", "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1)", "tracing", @@ -391,21 +378,20 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[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", "num-traits", "serde", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -431,9 +417,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623" dependencies = [ "clap_builder", "clap_derive", @@ -441,9 +427,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0" dependencies = [ "anstream", "anstyle", @@ -453,21 +439,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "colorchoice" @@ -484,11 +470,17 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -585,6 +577,18 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -616,7 +620,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -627,7 +631,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -638,14 +642,38 @@ checksum = "6178a82cf56c836a3ba61a7935cdb1c49bfaa6fa4327cd5bf554a503087de26b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.107", ] [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" dependencies = [ "powerfmt", ] @@ -667,7 +695,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -686,6 +714,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", "subtle", ] @@ -698,7 +727,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -727,6 +756,20 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + [[package]] name = "educe" version = "0.6.0" @@ -736,7 +779,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -745,6 +788,26 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "encoding_rs" version = "0.8.35" @@ -780,7 +843,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -791,12 +854,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[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.2", ] [[package]] @@ -837,17 +900,39 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "fixedbitset" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" dependencies = [ "crc32fast", "miniz_oxide", @@ -951,7 +1036,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -987,12 +1072,13 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -1003,27 +1089,21 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "git2" version = "0.20.2" @@ -1055,6 +1135,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "h2" version = "0.4.12" @@ -1085,6 +1176,12 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + [[package]] name = "heck" version = "0.5.0" @@ -1129,7 +1226,7 @@ checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -1234,9 +1331,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", "bytes", @@ -1258,9 +1355,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", @@ -1268,7 +1365,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -1395,12 +1492,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.0", ] [[package]] @@ -1419,17 +1516,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - [[package]] name = "ipnet" version = "2.11.0" @@ -1493,15 +1579,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ "once_cell", "wasm-bindgen", @@ -1509,9 +1595,9 @@ dependencies = [ [[package]] name = "json-patch" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159294d661a039f7644cea7e4d844e6b25aaf71c1ffe9d73a96d768c24b0faf4" +checksum = "f300e415e2134745ef75f04562dd0145405c2f7fd92065db029ac4b16b57fe90" dependencies = [ "jsonptr", "serde", @@ -1529,7 +1615,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -1558,11 +1644,11 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "darling", "regex", - "snafu 0.8.7", + "snafu 0.8.9", ] [[package]] @@ -1571,7 +1657,7 @@ version = "0.1.0" source = "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#cba32789257540e31f262647f9b59cb592e2e011" dependencies = [ "krb5-sys", - "snafu 0.8.7", + "snafu 0.8.9", ] [[package]] @@ -1624,7 +1710,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tower", @@ -1648,7 +1734,7 @@ dependencies = [ "serde", "serde-value", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -1662,7 +1748,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -1677,7 +1763,7 @@ dependencies = [ "backon", "educe", "futures 0.3.31", - "hashbrown", + "hashbrown 0.15.5", "hostname", "json-patch", "k8s-openapi", @@ -1686,7 +1772,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tracing", @@ -1697,6 +1783,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "lber" @@ -1736,9 +1825,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libgit2-sys" @@ -1788,14 +1877,20 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-link 0.2.1", ] +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + [[package]] name = "libz-sys" version = "1.1.22" @@ -1810,9 +1905,9 @@ dependencies = [ [[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" @@ -1822,19 +1917,18 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[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 = "matchers" @@ -1853,9 +1947,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "mime" @@ -1876,17 +1970,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -1924,11 +2019,28 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", ] [[package]] @@ -1938,21 +2050,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "num-traits" -version = "0.2.19" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "object" -version = "0.36.7" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "memchr", + "autocfg", + "libm", ] [[package]] @@ -1969,9 +2093,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ "bitflags", "cfg-if", @@ -1990,7 +2114,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2001,9 +2125,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ "cc", "libc", @@ -2021,7 +2145,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -2035,7 +2159,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -2102,7 +2226,7 @@ dependencies = [ "opentelemetry_sdk 0.30.0", "prost 0.13.5", "reqwest", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tonic 0.13.1", "tracing", @@ -2121,9 +2245,9 @@ dependencies = [ "opentelemetry_sdk 0.31.0", "prost 0.14.1", "reqwest", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", - "tonic 0.14.1", + "tonic 0.14.2", "tracing", ] @@ -2148,7 +2272,7 @@ dependencies = [ "opentelemetry 0.31.0", "opentelemetry_sdk 0.31.0", "prost 0.14.1", - "tonic 0.14.1", + "tonic 0.14.2", "tonic-prost", ] @@ -2175,9 +2299,9 @@ dependencies = [ "futures-util", "opentelemetry 0.30.0", "percent-encoding", - "rand", + "rand 0.9.2", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", ] @@ -2193,8 +2317,8 @@ dependencies = [ "futures-util", "opentelemetry 0.31.0", "percent-encoding", - "rand", - "thiserror 2.0.16", + "rand 0.9.2", + "thiserror 2.0.17", "tokio", "tokio-stream", ] @@ -2224,6 +2348,18 @@ dependencies = [ "yasna", ] +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + [[package]] name = "parking" version = "2.2.1" @@ -2232,9 +2368,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -2242,25 +2378,34 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] name = "pem" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ "base64", - "serde", + "serde_core", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", ] [[package]] @@ -2271,20 +2416,19 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror 2.0.16", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" dependencies = [ "pest", "pest_generator", @@ -2292,22 +2436,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" dependencies = [ "pest", "sha2", @@ -2340,7 +2484,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2355,6 +2499,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -2363,9 +2528,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -2392,7 +2557,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 2.0.107", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", ] [[package]] @@ -2416,7 +2590,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "xml", ] @@ -2458,7 +2632,7 @@ dependencies = [ "pulldown-cmark", "pulldown-cmark-to-cmark", "regex", - "syn 2.0.106", + "syn 2.0.107", "tempfile", ] @@ -2472,7 +2646,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2485,7 +2659,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2519,9 +2693,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -2532,14 +2706,34 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha", - "rand_core", + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] @@ -2549,7 +2743,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", ] [[package]] @@ -2558,7 +2761,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] @@ -2572,9 +2775,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags", ] @@ -2596,14 +2799,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -2613,9 +2816,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -2624,15 +2827,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", @@ -2662,6 +2865,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "ring" version = "0.17.14" @@ -2677,10 +2890,25 @@ dependencies = [ ] [[package]] -name = "rustc-demangle" -version = "0.1.26" +name = "rsa" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "sha2", + "signature", + "spki", + "subtle", + "zeroize", +] [[package]] name = "rustc-hash" @@ -2690,22 +2918,22 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[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", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c" dependencies = [ "log", "once_cell", @@ -2718,14 +2946,14 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.5.1", ] [[package]] @@ -2739,9 +2967,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" dependencies = [ "ring", "rustls-pki-types", @@ -2771,11 +2999,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.2", ] [[package]] @@ -2801,7 +3029,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2810,6 +3038,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "secrecy" version = "0.10.3" @@ -2834,9 +3076,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ "bitflags", "core-foundation 0.10.1", @@ -2847,9 +3089,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", @@ -2857,16 +3099,17 @@ 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" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -2880,15 +3123,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -2899,29 +3151,31 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[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]] @@ -2995,6 +3249,22 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "slab" version = "0.4.11" @@ -3015,7 +3285,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3030,11 +3300,11 @@ dependencies = [ [[package]] name = "snafu" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0062a372b26c4a6e9155d099a3416d732514fd47ae2f235b3695b820afcee74a" +checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ - "snafu-derive 0.8.7", + "snafu-derive 0.8.9", ] [[package]] @@ -3050,31 +3320,71 @@ dependencies = [ [[package]] name = "snafu-derive" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5fd9e3263fc19d73abd5107dbd4d43e37949212d2b15d4d334ee5db53022b8" +checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "stackable-certs" +version = "0.4.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" +dependencies = [ + "const-oid", + "ecdsa", + "k8s-openapi", + "kube", + "p256", + "rand 0.9.2", + "rand_core 0.6.4", + "rsa", + "sha2", + "signature", + "snafu 0.8.9", + "stackable-shared", + "tokio", + "tokio-rustls", + "tracing", + "x509-cert", + "zeroize", +] [[package]] name = "stackable-krb5-provision-keytab" @@ -3085,10 +3395,10 @@ dependencies = [ "krb5", "ldap3", "native-tls", - "rand", + "rand 0.9.2", "serde", "serde_json", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-operator", "stackable-secret-operator-utils", "tokio", @@ -3098,8 +3408,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.99.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +version = "0.100.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "chrono", "clap", @@ -3121,11 +3431,12 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-operator-derive", "stackable-shared", - "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0)", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0)", "stackable-versioned", + "stackable-webhook", "strum", "tokio", "tracing", @@ -3137,12 +3448,12 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3163,11 +3474,11 @@ dependencies = [ "pin-project", "prost 0.14.1", "prost-types", - "rand", + "rand 0.9.2", "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "socket2", "stackable-krb5-provision-keytab", "stackable-operator", @@ -3178,7 +3489,7 @@ dependencies = [ "time", "tokio", "tokio-stream", - "tonic 0.14.1", + "tonic 0.14.2", "tonic-prost", "tonic-prost-build", "tonic-reflection", @@ -3210,7 +3521,7 @@ dependencies = [ "openssl", "p12", "serde", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-operator", "yasna", ] @@ -3218,7 +3529,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.0.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "chrono", "k8s-openapi", @@ -3227,7 +3538,7 @@ dependencies = [ "semver", "serde", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "strum", "time", ] @@ -3235,7 +3546,7 @@ dependencies = [ [[package]] name = "stackable-telemetry" version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "axum", "clap", @@ -3246,7 +3557,7 @@ dependencies = [ "opentelemetry-semantic-conventions 0.31.0", "opentelemetry_sdk 0.31.0", "pin-project", - "snafu 0.8.7", + "snafu 0.8.9", "strum", "tokio", "tower", @@ -3270,7 +3581,7 @@ dependencies = [ "opentelemetry-semantic-conventions 0.30.0", "opentelemetry_sdk 0.30.0", "pin-project", - "snafu 0.8.7", + "snafu 0.8.9", "strum", "tokio", "tower", @@ -3283,20 +3594,20 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "schemars", "serde", "serde_json", "serde_yaml", - "snafu 0.8.7", + "snafu 0.8.9", "stackable-versioned-macros", ] [[package]] name = "stackable-versioned-macros" version = "0.8.2" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#be422046081be2fb9f37dfece660e007273f4e32" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" dependencies = [ "convert_case", "darling", @@ -3307,7 +3618,36 @@ dependencies = [ "kube", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", +] + +[[package]] +name = "stackable-webhook" +version = "0.7.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#5ff7d2ea14a06e9d66ba4410b94cd23e43666d55" +dependencies = [ + "arc-swap", + "axum", + "futures-util", + "hyper", + "hyper-util", + "k8s-openapi", + "kube", + "opentelemetry 0.31.0", + "opentelemetry-semantic-conventions 0.31.0", + "rand 0.9.2", + "serde_json", + "snafu 0.8.9", + "stackable-certs", + "stackable-shared", + "stackable-telemetry 0.6.1 (git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0)", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tracing", + "tracing-opentelemetry 0.32.0", + "x509-cert", ] [[package]] @@ -3334,7 +3674,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3356,9 +3696,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b" dependencies = [ "proc-macro2", "quote", @@ -3382,7 +3722,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3400,15 +3740,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3422,11 +3762,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -3437,18 +3777,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3462,9 +3802,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -3477,15 +3817,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", @@ -3501,35 +3841,53 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.107", +] + [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", "socket2", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3544,9 +3902,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -3606,9 +3964,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", "axum", @@ -3636,54 +3994,54 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d" +checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "tonic-prost" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" dependencies = [ "bytes", "prost 0.14.1", - "tonic 0.14.1", + "tonic 0.14.2", ] [[package]] name = "tonic-prost-build" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1" +checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" dependencies = [ "prettyplease", "proc-macro2", "prost-build", "prost-types", "quote", - "syn 2.0.106", + "syn 2.0.107", "tempfile", "tonic-build", ] [[package]] name = "tonic-reflection" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0267a0073385cd94996197d12acb1856a3a0a2367482c726a48a769f6fed8a3a" +checksum = "34da53e8387581d66db16ff01f98a70b426b091fdf76856e289d5c1bd386ed7b" dependencies = [ "prost 0.14.1", "prost-types", "tokio", "tokio-stream", - "tonic 0.14.1", + "tonic 0.14.2", "tonic-prost", ] @@ -3771,7 +4129,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -3824,7 +4182,7 @@ dependencies = [ "opentelemetry_sdk 0.31.0", "rustversion", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "tracing-core", "tracing-log", @@ -3871,9 +4229,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -3889,9 +4247,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" [[package]] name = "unicode-segmentation" @@ -3943,11 +4301,11 @@ 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", + "getrandom 0.3.4", "js-sys", "wasm-bindgen", ] @@ -3996,45 +4354,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" dependencies = [ "cfg-if", "js-sys", @@ -4045,9 +4404,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4055,31 +4414,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" dependencies = [ "js-sys", "wasm-bindgen", @@ -4097,11 +4456,11 @@ dependencies = [ [[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.2", ] [[package]] @@ -4111,9 +4470,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core", + "windows-core 0.61.2", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -4123,7 +4482,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -4134,9 +4493,22 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -4145,31 +4517,31 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", - "windows-link", + "windows-core 0.61.2", + "windows-link 0.1.3", "windows-threading", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -4178,14 +4550,20 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-numerics" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", - "windows-link", + "windows-core 0.61.2", + "windows-link 0.1.3", ] [[package]] @@ -4194,7 +4572,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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -4203,7 +4590,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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -4230,7 +4626,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -4251,19 +4656,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -4272,7 +4677,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]] @@ -4283,9 +4688,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -4295,9 +4700,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -4307,9 +4712,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -4319,9 +4724,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -4331,9 +4736,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -4343,9 +4748,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -4355,9 +4760,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -4367,18 +4772,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" @@ -4386,11 +4788,25 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "sha1", + "signature", + "spki", + "tls_codec", +] + [[package]] name = "xml" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e6e0a83ae73d886ab66fc2f82b598fbbb8f373357d5f2f9f783e50e4d06435" +checksum = "58a4274c410d957424a1502b21126915b45d9956b2f80a88d4f6f906af29facc" [[package]] name = "yasna" @@ -4418,28 +4834,28 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", "synstructure", ] [[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", - "syn 2.0.106", + "syn 2.0.107", ] [[package]] @@ -4459,15 +4875,29 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.107", +] [[package]] name = "zerotrie" @@ -4499,5 +4929,5 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.107", ] diff --git a/Cargo.nix b/Cargo.nix index b50671c5..9f797968 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -126,36 +126,6 @@ rec { # inject test dependencies into the build crates = { - "addr2line" = rec { - crateName = "addr2line"; - version = "0.24.2"; - edition = "2018"; - crateBin = []; - sha256 = "1hd1i57zxgz08j6h5qrhsnm2fi0bcqvsh389fw400xm3arz2ggnz"; - dependencies = [ - { - name = "gimli"; - packageId = "gimli"; - usesDefaultFeatures = false; - features = [ "read" ]; - } - ]; - features = { - "all" = [ "bin" ]; - "alloc" = [ "dep:alloc" ]; - "bin" = [ "loader" "rustc-demangle" "cpp_demangle" "fallible-iterator" "smallvec" "dep:clap" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "cpp_demangle" = [ "dep:cpp_demangle" ]; - "default" = [ "rustc-demangle" "cpp_demangle" "loader" "fallible-iterator" "smallvec" ]; - "fallible-iterator" = [ "dep:fallible-iterator" ]; - "loader" = [ "std" "dep:object" "dep:memmap2" "dep:typed-arena" ]; - "rustc-demangle" = [ "dep:rustc-demangle" ]; - "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "gimli/rustc-dep-of-std" ]; - "smallvec" = [ "dep:smallvec" ]; - "std" = [ "gimli/std" ]; - }; - }; "adler2" = rec { crateName = "adler2"; version = "2.0.1"; @@ -186,7 +156,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; } { @@ -261,17 +231,6 @@ rec { }; resolvedDefaultFeatures = [ "alloc" ]; }; - "android-tzdata" = rec { - crateName = "android-tzdata"; - version = "0.1.1"; - edition = "2018"; - sha256 = "1w7ynjxrfs97xg3qlcdns4kgfpwcdv824g611fq32cag4cdr96g9"; - libName = "android_tzdata"; - authors = [ - "RumovZ" - ]; - - }; "android_system_properties" = rec { crateName = "android_system_properties"; version = "0.1.5"; @@ -290,9 +249,9 @@ rec { }; "anstream" = rec { crateName = "anstream"; - version = "0.6.20"; + version = "0.6.21"; edition = "2021"; - sha256 = "14k1iqdf3dx7hdjllmql0j9sjxkwr1lfdddi3adzff0r7mjn7r9s"; + sha256 = "0jjgixms4qjj58dzr846h2s29p8w7ynwr9b9x6246m1pwy0v5ma3"; dependencies = [ { name = "anstyle"; @@ -335,9 +294,9 @@ rec { }; "anstyle" = rec { crateName = "anstyle"; - version = "1.0.11"; + version = "1.0.13"; edition = "2021"; - sha256 = "1gbbzi0zbgff405q14v8hhpi1kz2drzl9a75r3qhks47lindjbl6"; + sha256 = "0y2ynjqajpny6q0amvfzzgw0gfw3l47z85km4gvx87vg02lcr4ji"; features = { "default" = [ "std" ]; }; @@ -406,9 +365,9 @@ rec { }; "anyhow" = rec { crateName = "anyhow"; - version = "1.0.99"; + version = "1.0.100"; edition = "2018"; - sha256 = "001icqvkfl28rxxmk99rm4gvdzxqngj5v50yg2bh3dzcvqfllrxh"; + sha256 = "0qbfmw4hhv2ampza1csyvf1jqjs2dgrj29cv3h3sh623c6qvcgm2"; authors = [ "David Tolnay " ]; @@ -418,6 +377,19 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "arc-swap" = rec { + crateName = "arc-swap"; + version = "1.7.1"; + edition = "2018"; + sha256 = "0mrl9a9r9p9bln74q6aszvf22q1ijiw089jkrmabfqkbj31zixv9"; + libName = "arc_swap"; + authors = [ + "Michal 'vorner' Vaner " + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "async-broadcast" = rec { crateName = "async-broadcast"; version = "0.7.2"; @@ -495,7 +467,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" "visit-mut" ]; } ]; @@ -522,7 +494,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "clone-impls" "full" "parsing" "printing" "proc-macro" "visit-mut" ]; } @@ -555,9 +527,9 @@ rec { }; "axum" = rec { crateName = "axum"; - version = "0.8.4"; + version = "0.8.6"; edition = "2021"; - sha256 = "1d99kb3vcjnhbgrf6hysllf25hzagw7m1i1nidjpgsaa30n8c7h2"; + sha256 = "0w9qyxcp77gwswc9sz3pf2rzpm4jycpxvd70yh8i60sjccrys64a"; dependencies = [ { name = "axum-core"; @@ -626,12 +598,8 @@ rec { packageId = "pin-project-lite"; } { - name = "rustversion"; - packageId = "rustversion"; - } - { - name = "serde"; - packageId = "serde"; + name = "serde_core"; + packageId = "serde_core"; } { name = "serde_json"; @@ -687,11 +655,6 @@ rec { packageId = "hyper"; features = [ "client" ]; } - { - name = "serde"; - packageId = "serde"; - features = [ "derive" ]; - } { name = "serde_json"; packageId = "serde_json"; @@ -716,7 +679,7 @@ rec { ]; features = { "__private" = [ "tokio" "http1" "dep:reqwest" ]; - "__private_docs" = [ "axum-core/__private_docs" "tower/full" "dep:tower-http" ]; + "__private_docs" = [ "axum-core/__private_docs" "tower/full" "dep:serde" "dep:tower-http" ]; "default" = [ "form" "http1" "json" "matched-path" "original-uri" "query" "tokio" "tower-log" "tracing" ]; "form" = [ "dep:form_urlencoded" "dep:serde_urlencoded" "dep:serde_path_to_error" ]; "http1" = [ "dep:hyper" "hyper?/http1" "hyper-util?/http1" ]; @@ -734,9 +697,9 @@ rec { }; "axum-core" = rec { crateName = "axum-core"; - version = "0.5.2"; + version = "0.5.5"; edition = "2021"; - sha256 = "19kwzksb4hwr3qfbrhjbqf83z6fjyng14wrkzck6fj1g8784qik8"; + sha256 = "08pa4752h96pai7j5avr2hnq35xh7qgv6vl57y1zhhnikkhnqi2r"; libName = "axum_core"; dependencies = [ { @@ -767,10 +730,6 @@ rec { name = "pin-project-lite"; packageId = "pin-project-lite"; } - { - name = "rustversion"; - packageId = "rustversion"; - } { name = "sync_wrapper"; packageId = "sync_wrapper"; @@ -798,9 +757,9 @@ rec { }; "backon" = rec { crateName = "backon"; - version = "1.5.2"; - edition = "2021"; - sha256 = "139s5dfvlxycp8xmb21aack9sc8zg2lafax0m76wxyqlhxhpf8jr"; + version = "1.6.0"; + edition = "2024"; + sha256 = "1vzphngmym91xh29x7px6vw1xgcv5vjzw86b9zy6ddkm329hxyyg"; dependencies = [ { name = "fastrand"; @@ -849,62 +808,18 @@ rec { }; resolvedDefaultFeatures = [ "default" "gloo-timers" "gloo-timers-sleep" "std" "std-blocking-sleep" "tokio" "tokio-sleep" ]; }; - "backtrace" = rec { - crateName = "backtrace"; - version = "0.3.75"; + "base16ct" = rec { + crateName = "base16ct"; + version = "0.2.0"; edition = "2021"; - sha256 = "00hhizz29mvd7cdqyz5wrj98vqkihgcxmv2vl7z0d0f53qrac1k8"; + sha256 = "1kylrjhdzk7qpknrvlphw8ywdnvvg39dizw9622w3wk5xba04zsc"; authors = [ - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "addr2line"; - packageId = "addr2line"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "miniz_oxide"; - packageId = "miniz_oxide"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - } - { - name = "object"; - packageId = "object"; - usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); - features = [ "read_core" "elf" "macho" "pe" "xcoff" "unaligned" "archive" ]; - } - { - name = "rustc-demangle"; - packageId = "rustc-demangle"; - } - { - name = "windows-targets"; - packageId = "windows-targets 0.52.6"; - target = { target, features }: ((target."windows" or false) || ("cygwin" == target."os" or null)); - } + "RustCrypto Developers" ]; features = { - "cpp_demangle" = [ "dep:cpp_demangle" ]; - "default" = [ "std" ]; - "ruzstd" = [ "dep:ruzstd" ]; - "serde" = [ "dep:serde" ]; - "serialize-serde" = [ "serde" ]; + "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ "alloc" ]; }; "base64" = rec { crateName = "base64"; @@ -920,6 +835,19 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "base64ct" = rec { + crateName = "base64ct"; + version = "1.8.0"; + edition = "2024"; + sha256 = "1fj4vc6ghy3j1120r7dwn4xw90crfy46b448g5pm9w6an13qn92m"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "bindgen" = rec { crateName = "bindgen"; version = "0.71.1"; @@ -987,7 +915,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" "extra-traits" "visit-mut" ]; } ]; @@ -1048,16 +976,17 @@ rec { }; "bitflags" = rec { crateName = "bitflags"; - version = "2.9.3"; + version = "2.10.0"; edition = "2021"; - sha256 = "0pgjwsd9qgdmsmwpvg47p9ccrsc26yfjqawbhsi9qds5sg6brvrl"; + sha256 = "1lqxwc3625lcjrjm5vygban9v8a6dlxisp1aqylibiaw52si4bl1"; authors = [ "The Rust Project Developers" ]; features = { "arbitrary" = [ "dep:arbitrary" ]; "bytemuck" = [ "dep:bytemuck" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "serde_core" ]; + "serde_core" = [ "dep:serde_core" ]; }; resolvedDefaultFeatures = [ "std" ]; }; @@ -1204,13 +1133,17 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.34"; + version = "1.2.41"; edition = "2018"; - sha256 = "1p5ycww65h7xca03lwdp264qalw8v357rg5h17s7naq3h3m4mg22"; + sha256 = "1dvwli6fljqc7kgmihb249rmdfs5irla1h0n6vkavdi4pg6yd7xc"; authors = [ "Alex Crichton " ]; dependencies = [ + { + name = "find-msvc-tools"; + packageId = "find-msvc-tools"; + } { name = "jobserver"; packageId = "jobserver"; @@ -1270,7 +1203,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-secret-operator-utils"; @@ -1308,9 +1241,9 @@ rec { }; "cfg-if" = rec { crateName = "cfg-if"; - version = "1.0.3"; + version = "1.0.4"; edition = "2018"; - sha256 = "1afg7146gbxjvkbjx7i5sdrpqp9q5akmk9004fr8rsm90jf2il9g"; + sha256 = "008q28ajc546z5p2hcwdnckmg0hia7rnx52fni04bwqkzyrghc4k"; libName = "cfg_if"; authors = [ "Alex Crichton " @@ -1322,16 +1255,10 @@ rec { }; "chrono" = rec { crateName = "chrono"; - version = "0.4.41"; + version = "0.4.42"; edition = "2021"; - sha256 = "0k8wy2mph0mgipq28vv3wirivhb31pqs7jyid0dzjivz0i9djsf4"; + sha256 = "1lp8iz9js9jwxw0sj8yi59v54lgvwdvm49b9wch77f25sfym4l0l"; dependencies = [ - { - name = "android-tzdata"; - packageId = "android-tzdata"; - optional = true; - target = { target, features }: ("android" == target."os" or null); - } { name = "iana-time-zone"; packageId = "iana-time-zone"; @@ -1352,15 +1279,14 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.2.1"; optional = true; target = { target, features }: (target."windows" or false); } ]; features = { - "android-tzdata" = [ "dep:android-tzdata" ]; "arbitrary" = [ "dep:arbitrary" ]; - "clock" = [ "winapi" "iana-time-zone" "android-tzdata" "now" ]; + "clock" = [ "winapi" "iana-time-zone" "now" ]; "default" = [ "clock" "std" "oldtime" "wasmbind" ]; "iana-time-zone" = [ "dep:iana-time-zone" ]; "js-sys" = [ "dep:js-sys" ]; @@ -1379,7 +1305,7 @@ rec { "winapi" = [ "windows-link" ]; "windows-link" = [ "dep:windows-link" ]; }; - resolvedDefaultFeatures = [ "alloc" "android-tzdata" "clock" "iana-time-zone" "now" "serde" "std" "winapi" "windows-link" ]; + resolvedDefaultFeatures = [ "alloc" "clock" "iana-time-zone" "now" "serde" "std" "winapi" "windows-link" ]; }; "cipher" = rec { crateName = "cipher"; @@ -1474,10 +1400,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.45"; + version = "4.5.50"; edition = "2021"; crateBin = []; - sha256 = "0663m85dd0aq1g3mkwz5b8pkjv4f5k2smlz7bagib4iqf15fgh0z"; + sha256 = "08qna2mzl9irqp0p3lbbn06pjiym0dsgwbz3lkd7s0d6z1xzsb0c"; dependencies = [ { name = "clap_builder"; @@ -1516,9 +1442,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.44"; + version = "4.5.50"; edition = "2021"; - sha256 = "1a48x3c9q1l7r6wbgy71mq6kfsihpqzxsnbaaamcgwvp88hz9rxk"; + sha256 = "1867h9y6fxbh35bv3f45m40grmm7ddxsv07hgqxcsp0cx2whak0a"; dependencies = [ { name = "anstream"; @@ -1555,9 +1481,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.45"; + version = "4.5.49"; edition = "2021"; - sha256 = "1xir8wn5d10wpmnzmzjf2k1ib7j5mmzsm6v3yap6qlvx1axk3jql"; + sha256 = "0wbngw649138v3jwx8pm5x9sq0qsml3sh0sfzyrdxcpamy3m82ra"; procMacro = true; dependencies = [ { @@ -1574,7 +1500,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -1587,9 +1513,9 @@ rec { }; "clap_lex" = rec { crateName = "clap_lex"; - version = "0.7.5"; + version = "0.7.6"; edition = "2021"; - sha256 = "0xb6pjza43irrl99axbhs12pxq4sr8x7xd36p703j57f5i3n2kxr"; + sha256 = "13cxw9m2rqvplgazgkq2awms0rgf34myc19bz6gywfngi762imx1"; }; "colorchoice" = rec { @@ -1624,11 +1550,25 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "const-oid" = rec { + crateName = "const-oid"; + version = "0.9.6"; + edition = "2021"; + sha256 = "1y0jnqaq7p2wvspnx7qj76m7hjcqpz73qzvr9l2p9n2s51vr6if2"; + libName = "const_oid"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + }; + resolvedDefaultFeatures = [ "db" "std" ]; + }; "const_format" = rec { crateName = "const_format"; - version = "0.2.34"; + version = "0.2.35"; edition = "2021"; - sha256 = "1pb3vx4k0bl3cy45fmba36hzds1jhkr8y9k3j5nnvm4abjb9fvqj"; + sha256 = "1b9h03z3k76ail1ldqxcqmsc4raa7dwgwwqwrjf6wmism5lp9akz"; authors = [ "rodrimati1992 " ]; @@ -1911,6 +1851,58 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "crypto-bigint" = rec { + crateName = "crypto-bigint"; + version = "0.5.5"; + edition = "2021"; + sha256 = "0xmbdff3g6ii5sbxjxc31xfkv9lrmyril4arh3dzckd4gjsjzj8d"; + libName = "crypto_bigint"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "generic-array"; + packageId = "generic-array"; + optional = true; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + optional = true; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + features = [ "std" ]; + } + ]; + features = { + "alloc" = [ "serdect?/alloc" ]; + "default" = [ "rand" ]; + "der" = [ "dep:der" ]; + "generic-array" = [ "dep:generic-array" ]; + "rand" = [ "rand_core/std" ]; + "rand_core" = [ "dep:rand_core" ]; + "rlp" = [ "dep:rlp" ]; + "serde" = [ "dep:serdect" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "generic-array" "rand_core" "zeroize" ]; + }; "crypto-common" = rec { crateName = "crypto-common"; version = "0.1.6"; @@ -1995,7 +1987,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" "extra-traits" ]; } ]; @@ -2026,7 +2018,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; @@ -2052,17 +2044,94 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" "visit-mut" ]; } ]; + }; + "der" = rec { + crateName = "der"; + version = "0.7.10"; + edition = "2021"; + sha256 = "1jyxacyxdx6mxbkfw99jz59dzvcd9k17rq01a7xvn1dr6wl87hg7"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } + { + name = "der_derive"; + packageId = "der_derive"; + optional = true; + } + { + name = "flagset"; + packageId = "flagset"; + optional = true; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "bytes" = [ "dep:bytes" "alloc" ]; + "derive" = [ "dep:der_derive" ]; + "flagset" = [ "dep:flagset" ]; + "oid" = [ "dep:const-oid" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; + "std" = [ "alloc" ]; + "time" = [ "dep:time" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "derive" "flagset" "oid" "pem" "std" "zeroize" ]; + }; + "der_derive" = rec { + crateName = "der_derive"; + version = "0.7.3"; + edition = "2021"; + sha256 = "065d2wy7zd0dank99hh58l5x7lv50hxnr7j6f3sphlb7i4ihjd40"; + procMacro = true; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.107"; + features = [ "extra-traits" ]; + } + ]; + }; "deranged" = rec { crateName = "deranged"; - version = "0.4.0"; + version = "0.5.4"; edition = "2021"; - sha256 = "13h6skwk411wzhf1l9l7d3yz5y6vg9d7s3dwhhb4a942r88nm7lw"; + sha256 = "0wch36gpg2crz2f72p7c0i5l4bzxjkwxw96sdj57c1cadzw566d4"; authors = [ "Jacob Pratt " ]; @@ -2075,7 +2144,6 @@ rec { } ]; features = { - "default" = [ "std" ]; "macros" = [ "dep:deranged-macros" ]; "num" = [ "dep:num-traits" ]; "powerfmt" = [ "dep:powerfmt" ]; @@ -2083,10 +2151,9 @@ rec { "rand" = [ "rand08" "rand09" ]; "rand08" = [ "dep:rand08" ]; "rand09" = [ "dep:rand09" ]; - "serde" = [ "dep:serde" ]; - "std" = [ "alloc" ]; + "serde" = [ "dep:serde_core" ]; }; - resolvedDefaultFeatures = [ "alloc" "powerfmt" "std" ]; + resolvedDefaultFeatures = [ "default" "powerfmt" ]; }; "derive_more" = rec { crateName = "derive_more"; @@ -2154,7 +2221,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; features = { @@ -2215,6 +2282,11 @@ rec { packageId = "block-buffer"; optional = true; } + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } { name = "crypto-common"; packageId = "crypto-common"; @@ -2239,7 +2311,7 @@ rec { "std" = [ "alloc" "crypto-common/std" ]; "subtle" = [ "dep:subtle" ]; }; - resolvedDefaultFeatures = [ "alloc" "block-buffer" "core-api" "default" "mac" "std" "subtle" ]; + resolvedDefaultFeatures = [ "alloc" "block-buffer" "const-oid" "core-api" "default" "mac" "oid" "std" "subtle" ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -2261,7 +2333,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; features = { @@ -2328,6 +2400,79 @@ rec { ]; }; + "ecdsa" = rec { + crateName = "ecdsa"; + version = "0.16.9"; + edition = "2021"; + sha256 = "1jhb0bcbkaz4001sdmfyv8ajrv8a1cg7z7aa5myrd4jjbhmz69zf"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + optional = true; + } + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "digest" "sec1" ]; + } + { + name = "rfc6979"; + packageId = "rfc6979"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + ]; + features = { + "alloc" = [ "elliptic-curve/alloc" "signature/alloc" "spki/alloc" ]; + "arithmetic" = [ "elliptic-curve/arithmetic" ]; + "default" = [ "digest" ]; + "der" = [ "dep:der" ]; + "dev" = [ "arithmetic" "digest" "elliptic-curve/dev" "hazmat" ]; + "digest" = [ "dep:digest" "signature/digest" ]; + "pem" = [ "elliptic-curve/pem" "pkcs8" ]; + "pkcs8" = [ "digest" "elliptic-curve/pkcs8" "der" ]; + "rfc6979" = [ "dep:rfc6979" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "sha2" = [ "dep:sha2" ]; + "signing" = [ "arithmetic" "digest" "hazmat" "rfc6979" ]; + "spki" = [ "dep:spki" ]; + "std" = [ "alloc" "elliptic-curve/std" "signature/std" ]; + "verifying" = [ "arithmetic" "digest" "hazmat" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "der" "digest" "hazmat" "pem" "pkcs8" "rfc6979" "signing" "spki" "std" "verifying" ]; + }; "educe" = rec { crateName = "educe"; version = "0.6.0"; @@ -2354,13 +2499,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -2385,17 +2530,115 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" "use_std" ]; }; - "encoding_rs" = rec { - crateName = "encoding_rs"; - version = "0.8.35"; - edition = "2018"; - sha256 = "1wv64xdrr9v37rqqdjsyb8l8wzlcbab80ryxhrszvnj59wy0y0vm"; + "elliptic-curve" = rec { + crateName = "elliptic-curve"; + version = "0.13.8"; + edition = "2021"; + sha256 = "0ixx4brgnzi61z29r3g1606nh2za88hzyz8c5r3p6ydzhqq09rmm"; + libName = "elliptic_curve"; authors = [ - "Henri Sivonen " + "RustCrypto Developers" ]; dependencies = [ { - name = "cfg-if"; + name = "base16ct"; + packageId = "base16ct"; + } + { + name = "crypto-bigint"; + packageId = "crypto-bigint"; + usesDefaultFeatures = false; + features = [ "rand_core" "generic-array" "zeroize" ]; + } + { + name = "digest"; + packageId = "digest"; + optional = true; + } + { + name = "ff"; + packageId = "ff"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "generic-array"; + packageId = "generic-array"; + usesDefaultFeatures = false; + features = [ "zeroize" ]; + } + { + name = "group"; + packageId = "group"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pem-rfc7468"; + packageId = "pem-rfc7468"; + optional = true; + features = [ "alloc" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sec1"; + packageId = "sec1"; + optional = true; + features = [ "subtle" "zeroize" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "base16ct/alloc" "ff?/alloc" "group?/alloc" "pkcs8?/alloc" "sec1?/alloc" "zeroize/alloc" ]; + "arithmetic" = [ "group" ]; + "bits" = [ "arithmetic" "ff/bits" "dep:tap" ]; + "default" = [ "arithmetic" ]; + "dev" = [ "arithmetic" "dep:hex-literal" "pem" "pkcs8" ]; + "digest" = [ "dep:digest" ]; + "ecdh" = [ "arithmetic" "digest" "dep:hkdf" ]; + "ff" = [ "dep:ff" ]; + "group" = [ "dep:group" "ff" ]; + "hash2curve" = [ "arithmetic" "digest" ]; + "jwk" = [ "dep:base64ct" "dep:serde_json" "alloc" "serde" "zeroize/alloc" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "arithmetic" "pkcs8" "sec1/pem" ]; + "pkcs8" = [ "dep:pkcs8" "sec1" ]; + "sec1" = [ "dep:sec1" ]; + "serde" = [ "dep:serdect" "alloc" "pkcs8" "sec1/serde" ]; + "std" = [ "alloc" "rand_core/std" "pkcs8?/std" "sec1?/std" ]; + "voprf" = [ "digest" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "digest" "ff" "group" "hazmat" "pem" "pkcs8" "sec1" "std" ]; + }; + "encoding_rs" = rec { + crateName = "encoding_rs"; + version = "0.8.35"; + edition = "2018"; + sha256 = "1wv64xdrr9v37rqqdjsyb8l8wzlcbab80ryxhrszvnj59wy0y0vm"; + authors = [ + "Henri Sivonen " + ]; + dependencies = [ + { + name = "cfg-if"; packageId = "cfg-if"; } ]; @@ -2463,7 +2706,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; features = { @@ -2478,9 +2721,9 @@ rec { }; "errno" = rec { crateName = "errno"; - version = "0.3.13"; + version = "0.3.14"; edition = "2018"; - sha256 = "1bd5g3srn66zr3bspac0150bvpg1s7zi6zwhwhlayivciz12m3kp"; + sha256 = "1szgccmh8vgryqyadg8xd58mnwwicf39zmin3bsn63df2wbbgjir"; authors = [ "Chris Wong " "Dan Gohman " @@ -2506,7 +2749,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Diagnostics_Debug" ]; } @@ -2637,6 +2880,48 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "ff" = rec { + crateName = "ff"; + version = "0.13.1"; + edition = "2021"; + sha256 = "14v3bc6q24gbcjnxjfbq2dddgf4as2z2gd4mj35gjlrncpxhpdf0"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + features = { + "bits" = [ "bitvec" ]; + "bitvec" = [ "dep:bitvec" ]; + "byteorder" = [ "dep:byteorder" ]; + "default" = [ "bits" "std" ]; + "derive" = [ "byteorder" "ff_derive" ]; + "derive_bits" = [ "bits" "ff_derive/bits" ]; + "ff_derive" = [ "dep:ff_derive" ]; + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; + "find-msvc-tools" = rec { + crateName = "find-msvc-tools"; + version = "0.1.4"; + edition = "2018"; + sha256 = "09x1sfinrz86bkm6i2d85lpsfnxn0w797g5zisv1nwhaz1w1h1aj"; + libName = "find_msvc_tools"; + + }; "fixedbitset" = rec { crateName = "fixedbitset"; version = "0.5.7"; @@ -2650,11 +2935,23 @@ rec { "serde" = [ "dep:serde" ]; }; }; + "flagset" = rec { + crateName = "flagset"; + version = "0.4.7"; + edition = "2021"; + sha256 = "1zplx30g76kl5la3ayl9ns5p3diqd9zphbcggqcm4nm7411q5b5p"; + authors = [ + "Nathaniel McCallum " + ]; + features = { + "serde" = [ "dep:serde" ]; + }; + }; "flate2" = rec { crateName = "flate2"; - version = "1.1.2"; + version = "1.1.4"; edition = "2018"; - sha256 = "07abz7v50lkdr5fjw8zaw2v8gm2vbppc0f7nqm8x3v3gb6wpsgaa"; + sha256 = "1a8a3pk2r2dxays4ikc47ygydhpd1dcxlgqdi3r9kiiq9rb4wnnw"; authors = [ "Alex Crichton " "Josh Triplett " @@ -2669,14 +2966,14 @@ rec { packageId = "miniz_oxide"; optional = true; usesDefaultFeatures = false; - features = [ "with-alloc" ]; + features = [ "with-alloc" "simd" ]; } { name = "miniz_oxide"; packageId = "miniz_oxide"; usesDefaultFeatures = false; target = { target, features }: (("wasm32" == target."arch" or null) && (!("emscripten" == target."os" or null))); - features = [ "with-alloc" ]; + features = [ "with-alloc" "simd" ]; } ]; features = { @@ -2949,7 +3246,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -3073,9 +3370,9 @@ rec { }; "generic-array" = rec { crateName = "generic-array"; - version = "0.14.7"; + version = "0.14.9"; edition = "2015"; - sha256 = "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45"; + sha256 = "1wpdn5ngpqkkyyibbg7wa4cfg0y8zjc57spaia2h47jkk0qp9djb"; libName = "generic_array"; authors = [ "Bartłomiej Kamiński " @@ -3086,6 +3383,12 @@ rec { name = "typenum"; packageId = "typenum"; } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } ]; buildDependencies = [ { @@ -3097,7 +3400,7 @@ rec { "serde" = [ "dep:serde" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "more_lengths" ]; + resolvedDefaultFeatures = [ "more_lengths" "zeroize" ]; }; "getrandom 0.2.16" = rec { crateName = "getrandom"; @@ -3120,7 +3423,7 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.1+wasi-snapshot-preview1"; + packageId = "wasi"; usesDefaultFeatures = false; target = { target, features }: ("wasi" == target."os" or null); } @@ -3133,12 +3436,13 @@ rec { "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; "wasm-bindgen" = [ "dep:wasm-bindgen" ]; }; + resolvedDefaultFeatures = [ "std" ]; }; - "getrandom 0.3.3" = rec { + "getrandom 0.3.4" = rec { crateName = "getrandom"; - version = "0.3.3"; + version = "0.3.4"; edition = "2021"; - sha256 = "1x6jl875zp6b2b6qp9ghc84b0l76bvng2lvm8zfcmwjl7rb5w516"; + sha256 = "1zbpvpicry9lrbjmkd4msgj3ihff1q92i334chk7pzf46xffz7c9"; authors = [ "The Rand Project Developers" ]; @@ -3202,44 +3506,26 @@ rec { target = { target, features }: (("uefi" == target."os" or null) && ("efi_rng" == target."getrandom_backend" or null)); } { - name = "wasi"; - packageId = "wasi 0.14.2+wasi-0.2.4"; + name = "wasip2"; + packageId = "wasip2"; usesDefaultFeatures = false; target = { target, features }: (("wasm32" == target."arch" or null) && ("wasi" == target."os" or null) && ("p2" == target."env" or null)); } ]; features = { - "rustc-dep-of-std" = [ "dep:compiler_builtins" "dep:core" ]; "wasm_js" = [ "dep:wasm-bindgen" "dep:js-sys" ]; }; resolvedDefaultFeatures = [ "std" ]; }; - "gimli" = rec { - crateName = "gimli"; - version = "0.31.1"; - edition = "2018"; - sha256 = "0gvqc0ramx8szv76jhfd4dms0zyamvlg4whhiz11j34hh3dqxqh7"; - features = { - "default" = [ "read-all" "write" ]; - "endian-reader" = [ "read" "dep:stable_deref_trait" ]; - "fallible-iterator" = [ "dep:fallible-iterator" ]; - "read" = [ "read-core" ]; - "read-all" = [ "read" "std" "fallible-iterator" "endian-reader" ]; - "rustc-dep-of-std" = [ "dep:core" "dep:alloc" "dep:compiler_builtins" ]; - "std" = [ "fallible-iterator?/std" "stable_deref_trait?/std" ]; - "write" = [ "dep:indexmap" ]; - }; - resolvedDefaultFeatures = [ "read" "read-core" ]; - }; - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-telemetry@0.6.1" = rec { + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1" = rec { crateName = "stackable-telemetry"; version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_telemetry"; authors = [ @@ -3290,7 +3576,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -3400,7 +3686,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -3539,6 +3825,42 @@ rec { }; resolvedDefaultFeatures = [ "default" "futures" "futures-channel" "futures-core" ]; }; + "group" = rec { + crateName = "group"; + version = "0.13.0"; + edition = "2021"; + sha256 = "0qqs2p5vqnv3zvq9mfjkmw3qlvgqb0c3cm6p33srkh7pc9sfzygh"; + authors = [ + "Sean Bowe " + "Jack Grigg " + ]; + dependencies = [ + { + name = "ff"; + packageId = "ff"; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "alloc" ]; + "memuse" = [ "dep:memuse" ]; + "rand" = [ "dep:rand" ]; + "rand_xorshift" = [ "dep:rand_xorshift" ]; + "tests" = [ "alloc" "rand" "rand_xorshift" ]; + "wnaf-memuse" = [ "alloc" "memuse" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "h2" = rec { crateName = "h2"; version = "0.4.12"; @@ -3611,7 +3933,7 @@ rec { features = { }; }; - "hashbrown" = rec { + "hashbrown 0.15.5" = rec { crateName = "hashbrown"; version = "0.15.5"; edition = "2021"; @@ -3654,6 +3976,27 @@ rec { }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; + "hashbrown 0.16.0" = rec { + crateName = "hashbrown"; + version = "0.16.0"; + edition = "2021"; + sha256 = "13blh9j2yv77a6ni236ixiwdzbc1sh2bc4bdpaz7y859yv2bs6al"; + authors = [ + "Amanieu d'Antras " + ]; + features = { + "alloc" = [ "dep:alloc" ]; + "allocator-api2" = [ "dep:allocator-api2" ]; + "core" = [ "dep:core" ]; + "default" = [ "default-hasher" "inline-more" "allocator-api2" "equivalent" "raw-entry" ]; + "default-hasher" = [ "dep:foldhash" ]; + "equivalent" = [ "dep:equivalent" ]; + "nightly" = [ "foldhash?/nightly" "bumpalo/allocator_api" ]; + "rayon" = [ "dep:rayon" ]; + "rustc-dep-of-std" = [ "nightly" "core" "alloc" "rustc-internal-api" ]; + "serde" = [ "dep:serde" ]; + }; + }; "heck" = rec { crateName = "heck"; version = "0.5.0"; @@ -3713,6 +4056,7 @@ rec { features = { "std" = [ "digest/std" ]; }; + resolvedDefaultFeatures = [ "reset" ]; }; "home" = rec { crateName = "home"; @@ -3749,7 +4093,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -3980,7 +4324,7 @@ rec { "server" = [ "dep:httpdate" "dep:pin-project-lite" "dep:smallvec" ]; "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "client" "default" "http1" "http2" "server" ]; + resolvedDefaultFeatures = [ "client" "default" "full" "http1" "http2" "server" ]; }; "hyper-rustls" = rec { crateName = "hyper-rustls"; @@ -4128,9 +4472,9 @@ rec { }; "hyper-util" = rec { crateName = "hyper-util"; - version = "0.1.16"; + version = "0.1.17"; edition = "2021"; - sha256 = "0pmw8gqkqjnsdrxdy5wd5q8z1gh7caxqk2an7b4s53byghkhb6wd"; + sha256 = "1a5fcnz0alrg4lx9xf6ja66ihaab58jnm5msnky804wg39cras9w"; libName = "hyper_util"; authors = [ "Sean McArthur " @@ -4257,9 +4601,9 @@ rec { }; "iana-time-zone" = rec { crateName = "iana-time-zone"; - version = "0.1.63"; + version = "0.1.64"; edition = "2021"; - sha256 = "1n171f5lbc7bryzmp1h30zw86zbvl5480aq02z92lcdwvvjikjdh"; + sha256 = "1yz980fmhaq9bdkasz35z63az37ci6kzzfhya83kgdqba61pzr9k"; libName = "iana_time_zone"; authors = [ "Andrew Straw " @@ -4299,7 +4643,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.62.2"; target = { target, features }: ("windows" == target."os" or null); } ]; @@ -4698,9 +5042,9 @@ rec { }; "indexmap" = rec { crateName = "indexmap"; - version = "2.11.0"; + version = "2.12.0"; edition = "2021"; - sha256 = "1sb3nmhisf9pdwfcxzqlvx97xifcvlh5g0rqj9j7i7qg8f01jj7j"; + sha256 = "17xs7cqf9nzv8iw8yzpvpjh43lcf9492i8a3xfia2ad9lp9ah5v7"; dependencies = [ { name = "equivalent"; @@ -4709,7 +5053,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.16.0"; usesDefaultFeatures = false; } ]; @@ -4719,7 +5063,7 @@ rec { "default" = [ "std" ]; "quickcheck" = [ "dep:quickcheck" ]; "rayon" = [ "dep:rayon" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde_core" "dep:serde" ]; "sval" = [ "dep:sval" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; @@ -4760,37 +5104,6 @@ rec { }; resolvedDefaultFeatures = [ "block-padding" ]; }; - "io-uring" = rec { - crateName = "io-uring"; - version = "0.7.10"; - edition = "2021"; - sha256 = "0yvjyygwdcqjcgw8zp254hvjbm7as1c075dl50spdshas3aa4vq4"; - libName = "io_uring"; - authors = [ - "quininer " - ]; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags"; - } - { - name = "cfg-if"; - packageId = "cfg-if"; - } - { - name = "libc"; - packageId = "libc"; - usesDefaultFeatures = false; - } - ]; - features = { - "bindgen" = [ "dep:bindgen" ]; - "direct-syscall" = [ "sc" ]; - "overwrite" = [ "bindgen" ]; - "sc" = [ "dep:sc" ]; - }; - }; "ipnet" = rec { crateName = "ipnet"; version = "2.11.0"; @@ -4940,7 +5253,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; target = { target, features }: (target."windows" or false); features = [ "std" ]; } @@ -4954,9 +5267,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.77"; + version = "0.3.81"; edition = "2021"; - sha256 = "13x2qcky5l22z4xgivi59xhjjx4kxir1zg7gcj0f1ijzd4yg7yhw"; + sha256 = "01ckbf16iwh7qj92fax9zh8vf2y9sk60cli6999cn7a1jxx96j7c"; libName = "js_sys"; authors = [ "The wasm-bindgen Developers" @@ -4981,9 +5294,9 @@ rec { }; "json-patch" = rec { crateName = "json-patch"; - version = "4.0.0"; + version = "4.1.0"; edition = "2021"; - sha256 = "1x7sn0j8qxkdm5rrvzhz3kvsl9bb9s24szpa9ijgffd0c7b994hm"; + sha256 = "147yaxmv3i4s0bdna86rgwpmqh2507fn4ighfpplaiqkw8ay807k"; libName = "json_patch"; authors = [ "Ivan Dubrov " @@ -5016,6 +5329,7 @@ rec { ]; features = { "default" = [ "diff" ]; + "schemars" = [ "dep:schemars" ]; "utoipa" = [ "dep:utoipa" ]; }; resolvedDefaultFeatures = [ "default" "diff" ]; @@ -5048,7 +5362,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } ]; @@ -5145,8 +5459,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "k8s_version"; authors = [ @@ -5164,7 +5478,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } ]; features = { @@ -5193,7 +5507,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } ]; @@ -5425,7 +5739,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } { name = "tokio"; @@ -5591,7 +5905,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } ]; devDependencies = [ @@ -5648,7 +5962,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "extra-traits" ]; } ]; @@ -5703,7 +6017,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.15.5"; } { name = "hostname"; @@ -5742,7 +6056,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; } { name = "tokio"; @@ -5789,10 +6103,20 @@ rec { authors = [ "Marvin Löbel " ]; + dependencies = [ + { + name = "spin"; + packageId = "spin"; + optional = true; + usesDefaultFeatures = false; + features = [ "once" ]; + } + ]; features = { "spin" = [ "dep:spin" ]; "spin_no_std" = [ "spin" ]; }; + resolvedDefaultFeatures = [ "spin" "spin_no_std" ]; }; "lber" = rec { crateName = "lber"; @@ -5931,9 +6255,9 @@ rec { }; "libc" = rec { crateName = "libc"; - version = "0.2.175"; + version = "0.2.177"; edition = "2021"; - sha256 = "0hw5sb3gjr0ivah7s3fmavlpvspjpd4mr009abmam2sr7r4sx0ka"; + sha256 = "0xjrn69cywaii1iq2lib201bhlvan7czmrm604h5qcm28yps4x18"; authors = [ "The Rust Project Developers" ]; @@ -6075,9 +6399,9 @@ rec { }; "libloading" = rec { crateName = "libloading"; - version = "0.8.8"; + version = "0.8.9"; edition = "2015"; - sha256 = "0rw6q94psj3d6k0bi9nymqhyrz78lbdblryphhaszsw9p9ikj0q7"; + sha256 = "0mfwxwjwi2cf0plxcd685yxzavlslz7xirss3b9cbrzyk4hv1i6p"; authors = [ "Simonas Kazlauskas " ]; @@ -6088,13 +6412,27 @@ rec { target = { target, features }: (target."unix" or false); } { - name = "windows-targets"; - packageId = "windows-targets 0.53.3"; + name = "windows-link"; + packageId = "windows-link 0.2.1"; target = { target, features }: (target."windows" or false); } ]; }; + "libm" = rec { + crateName = "libm"; + version = "0.2.15"; + edition = "2021"; + sha256 = "1plpzf0p829viazdj57yw5dhmlr8ywf3apayxc2f2bq5a6mvryzr"; + authors = [ + "Jorge Aparicio " + ]; + features = { + "default" = [ "arch" ]; + "unstable" = [ "unstable-intrinsics" "unstable-float" ]; + }; + resolvedDefaultFeatures = [ "arch" "default" ]; + }; "libz-sys" = rec { crateName = "libz-sys"; version = "1.1.22"; @@ -6139,20 +6477,19 @@ rec { }; "linux-raw-sys" = rec { crateName = "linux-raw-sys"; - version = "0.9.4"; + version = "0.11.0"; edition = "2021"; - sha256 = "04kyjdrq79lz9ibrf7czk6cv9d3jl597pb9738vzbsbzy1j5i56d"; + sha256 = "0fghx0nn8nvbz5yzgizfcwd6ap2pislp68j8c1bwyr6sacxkq7fz"; libName = "linux_raw_sys"; authors = [ "Dan Gohman " ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" "general" "errno" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" "no_std" ]; + "rustc-dep-of-std" = [ "core" "no_std" ]; }; - resolvedDefaultFeatures = [ "elf" "errno" "general" "ioctl" "no_std" ]; + resolvedDefaultFeatures = [ "auxvec" "elf" "errno" "general" "ioctl" "no_std" ]; }; "litemap" = rec { crateName = "litemap"; @@ -6173,9 +6510,9 @@ rec { }; "lock_api" = rec { crateName = "lock_api"; - version = "0.4.13"; + version = "0.4.14"; edition = "2021"; - sha256 = "0rd73p4299mjwl4hhlfj9qr88v3r0kc8s1nszkfmnq2ky43nb4wn"; + sha256 = "0rg9mhx7vdpajfxvdjmgmlyrn20ligzqvn8ifmaz7dc79gkrjhr2"; authors = [ "Amanieu d'Antras " ]; @@ -6186,12 +6523,6 @@ rec { usesDefaultFeatures = false; } ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg"; - } - ]; features = { "default" = [ "atomic_usize" ]; "owning_ref" = [ "dep:owning_ref" ]; @@ -6201,9 +6532,9 @@ rec { }; "log" = rec { crateName = "log"; - version = "0.4.27"; + version = "0.4.28"; edition = "2021"; - sha256 = "150x589dqil307rv0rwj0jsgz5bjbwvl83gyl61jf873a7rjvp0k"; + sha256 = "0cklpzrpxafbaq1nyxarhnmcw9z3xcjrad3ch55mmr58xw2ha21l"; authors = [ "The Rust Project Developers" ]; @@ -6256,9 +6587,9 @@ rec { }; "memchr" = rec { crateName = "memchr"; - version = "2.7.5"; + version = "2.7.6"; edition = "2021"; - sha256 = "1h2bh2jajkizz04fh047lpid5wgw2cr9igpkdhl3ibzscpd858ij"; + sha256 = "0wy29kf6pb4fbhfksjbs05jy2f32r2f3r1ga6qkmpz31k79h0azm"; authors = [ "Andrew Gallant " "bluss" @@ -6313,6 +6644,12 @@ rec { packageId = "adler2"; usesDefaultFeatures = false; } + { + name = "simd-adler32"; + packageId = "simd-adler32"; + optional = true; + usesDefaultFeatures = false; + } ]; features = { "alloc" = [ "dep:alloc" ]; @@ -6323,13 +6660,13 @@ rec { "simd" = [ "simd-adler32" ]; "simd-adler32" = [ "dep:simd-adler32" ]; }; - resolvedDefaultFeatures = [ "with-alloc" ]; + resolvedDefaultFeatures = [ "simd" "simd-adler32" "with-alloc" ]; }; "mio" = rec { crateName = "mio"; - version = "1.0.4"; + version = "1.1.0"; edition = "2021"; - sha256 = "073n3kam3nz8j8had35fd2nn7j6a33pi3y5w3kq608cari2d9gkq"; + sha256 = "0wr816q3jrjwiajvw807lgi540i9s6r78a5fx4ycz3nwhq03pn39"; authors = [ "Carl Lerche " "Thomas de Zeeuw " @@ -6353,14 +6690,14 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.1+wasi-snapshot-preview1"; + packageId = "wasi"; target = { target, features }: ("wasi" == target."os" or null); } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); - features = [ "Wdk_Foundation" "Wdk_Storage_FileSystem" "Wdk_System_IO" "Win32_Foundation" "Win32_Networking_WinSock" "Win32_Storage_FileSystem" "Win32_System_IO" "Win32_System_WindowsProgramming" ]; + features = [ "Wdk_Foundation" "Wdk_Storage_FileSystem" "Wdk_System_IO" "Win32_Foundation" "Win32_Networking_WinSock" "Win32_Storage_FileSystem" "Win32_Security" "Win32_System_IO" "Win32_System_WindowsProgramming" ]; } ]; features = { @@ -6479,9 +6816,9 @@ rec { }; "nu-ansi-term" = rec { crateName = "nu-ansi-term"; - version = "0.50.1"; + version = "0.50.3"; edition = "2021"; - sha256 = "16a3isvbxx8pa3lk71h3cq2fsx2d17zzq42j4mhpxy81gl2qx8nl"; + sha256 = "1ra088d885lbd21q1bxgpqdlk1zlndblmarn948jz2a40xsbjmvr"; libName = "nu_ansi_term"; authors = [ "ogham@bsago.me" @@ -6492,82 +6829,194 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.61.2"; rename = "windows"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_System_Console" "Win32_Storage_FileSystem" "Win32_Security" ]; } ]; features = { + "default" = [ "std" ]; "derive_serde_style" = [ "serde" ]; "serde" = [ "dep:serde" ]; }; + resolvedDefaultFeatures = [ "default" "std" ]; }; - "num-conv" = rec { - crateName = "num-conv"; - version = "0.1.0"; - edition = "2021"; - sha256 = "1ndiyg82q73783jq18isi71a7mjh56wxrk52rlvyx0mi5z9ibmai"; - libName = "num_conv"; - authors = [ - "Jacob Pratt " - ]; - - }; - "num-traits" = rec { - crateName = "num-traits"; - version = "0.2.19"; + "num-bigint-dig" = rec { + crateName = "num-bigint-dig"; + version = "0.8.4"; edition = "2021"; - sha256 = "0h984rhdkkqd4ny9cif7y2azl3xdfb7768hb9irhpsch4q3gq787"; - libName = "num_traits"; + sha256 = "0lb12df24wgxxbspz4gw1sf1kdqwvpdcpwq4fdlwg4gj41c1k16w"; + libName = "num_bigint_dig"; authors = [ + "dignifiedquire " "The Rust Project Developers" ]; - buildDependencies = [ + dependencies = [ { - name = "autocfg"; - packageId = "autocfg"; + name = "byteorder"; + packageId = "byteorder"; + usesDefaultFeatures = false; } - ]; - features = { - "default" = [ "std" ]; - "libm" = [ "dep:libm" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "object" = rec { - crateName = "object"; - version = "0.36.7"; - edition = "2018"; - sha256 = "11vv97djn9nc5n6w1gc6bd96d2qk2c8cg1kw5km9bsi3v4a8x532"; - dependencies = [ { - name = "memchr"; - packageId = "memchr"; + name = "lazy_static"; + packageId = "lazy_static"; usesDefaultFeatures = false; + features = [ "spin_no_std" ]; } - ]; - features = { - "all" = [ "read" "write" "build" "std" "compression" "wasm" ]; - "alloc" = [ "dep:alloc" ]; - "build" = [ "build_core" "write_std" "elf" ]; - "build_core" = [ "read_core" "write_core" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "compression" = [ "dep:flate2" "dep:ruzstd" "std" ]; - "core" = [ "dep:core" ]; - "default" = [ "read" "compression" ]; - "doc" = [ "read_core" "write_std" "build_core" "std" "compression" "archive" "coff" "elf" "macho" "pe" "wasm" "xcoff" ]; - "pe" = [ "coff" ]; - "read" = [ "read_core" "archive" "coff" "elf" "macho" "pe" "xcoff" "unaligned" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" "alloc" "memchr/rustc-dep-of-std" ]; - "std" = [ "memchr/std" ]; - "unstable-all" = [ "all" "unstable" ]; - "wasm" = [ "dep:wasmparser" ]; - "write" = [ "write_std" "coff" "elf" "macho" "pe" "xcoff" ]; - "write_core" = [ "dep:crc32fast" "dep:indexmap" "dep:hashbrown" ]; - "write_std" = [ "write_core" "std" "indexmap?/std" "crc32fast?/std" ]; - }; - resolvedDefaultFeatures = [ "archive" "coff" "elf" "macho" "pe" "read_core" "unaligned" "xcoff" ]; + { + name = "libm"; + packageId = "libm"; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "num-iter"; + packageId = "num-iter"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "rand"; + packageId = "rand 0.8.5"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "smallvec"; + packageId = "smallvec"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "rand"; + packageId = "rand 0.8.5"; + features = [ "small_rng" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + "default" = [ "std" "u64_digit" ]; + "fuzz" = [ "arbitrary" "smallvec/arbitrary" ]; + "prime" = [ "rand/std_rng" ]; + "rand" = [ "dep:rand" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ]; + }; + "num-conv" = rec { + crateName = "num-conv"; + version = "0.1.0"; + edition = "2021"; + sha256 = "1ndiyg82q73783jq18isi71a7mjh56wxrk52rlvyx0mi5z9ibmai"; + libName = "num_conv"; + authors = [ + "Jacob Pratt " + ]; + + }; + "num-integer" = rec { + crateName = "num-integer"; + version = "0.1.46"; + edition = "2018"; + sha256 = "13w5g54a9184cqlbsq80rnxw4jj4s0d8wv75jsq5r2lms8gncsbr"; + libName = "num_integer"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "num-traits/std" ]; + }; + resolvedDefaultFeatures = [ "i128" ]; + }; + "num-iter" = rec { + crateName = "num-iter"; + version = "0.1.45"; + edition = "2018"; + sha256 = "1gzm7vc5g9qsjjl3bqk9rz1h6raxhygbrcpbfl04swlh0i506a8l"; + libName = "num_iter"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "i128" ]; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg"; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "num-integer/std" "num-traits/std" ]; + }; + }; + "num-traits" = rec { + crateName = "num-traits"; + version = "0.2.19"; + edition = "2021"; + sha256 = "0h984rhdkkqd4ny9cif7y2azl3xdfb7768hb9irhpsch4q3gq787"; + libName = "num_traits"; + authors = [ + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "libm"; + packageId = "libm"; + optional = true; + } + ]; + buildDependencies = [ + { + name = "autocfg"; + packageId = "autocfg"; + } + ]; + features = { + "default" = [ "std" ]; + "libm" = [ "dep:libm" ]; + }; + resolvedDefaultFeatures = [ "i128" "libm" "std" ]; }; "once_cell" = rec { crateName = "once_cell"; @@ -6599,9 +7048,9 @@ rec { }; "openssl" = rec { crateName = "openssl"; - version = "0.10.73"; + version = "0.10.74"; edition = "2021"; - sha256 = "1y7b3kanpgb92wiqhwbyqfsdr1xdjzssxqywl4cixay88r6p61c5"; + sha256 = "0m5nxchp0lmkqclgxs4ym3sg9w340s7sslhglghnj8j18pfi9b94"; authors = [ "Steven Fackler " ]; @@ -6638,6 +7087,7 @@ rec { ]; features = { "aws-lc" = [ "ffi/aws-lc" ]; + "aws-lc-fips" = [ "ffi/aws-lc-fips" ]; "bindgen" = [ "ffi/bindgen" ]; "unstable_boringssl" = [ "ffi/unstable_boringssl" ]; "vendored" = [ "ffi/vendored" ]; @@ -6662,7 +7112,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -6681,10 +7131,10 @@ rec { }; "openssl-sys" = rec { crateName = "openssl-sys"; - version = "0.9.109"; + version = "0.9.110"; edition = "2021"; links = "openssl"; - sha256 = "0wc54dshsac1xicq6b5wz01p358zcbf542f2s6vph3b38wp6w2ch"; + sha256 = "1qnqrvgahzn9yfxjz3v4i29x860x9dc2c84bisgv089wp9sh17qa"; build = "build/main.rs"; libName = "openssl_sys"; authors = [ @@ -6713,6 +7163,7 @@ rec { ]; features = { "aws-lc" = [ "dep:aws-lc-sys" ]; + "aws-lc-fips" = [ "dep:aws-lc-fips-sys" ]; "bindgen" = [ "dep:bindgen" ]; "bssl-sys" = [ "dep:bssl-sys" ]; "openssl-src" = [ "dep:openssl-src" ]; @@ -6748,7 +7199,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; optional = true; usesDefaultFeatures = false; } @@ -6802,7 +7253,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; optional = true; usesDefaultFeatures = false; } @@ -7071,7 +7522,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7189,7 +7640,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7201,7 +7652,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; optional = true; usesDefaultFeatures = false; } @@ -7227,7 +7678,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "router" "server" ]; } @@ -7345,7 +7796,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; optional = true; usesDefaultFeatures = false; features = [ "codegen" ]; @@ -7439,7 +7890,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; optional = true; usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; @@ -7451,7 +7902,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7529,14 +7980,14 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; optional = true; usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -7669,6 +8120,79 @@ rec { ]; }; + "p256" = rec { + crateName = "p256"; + version = "0.13.2"; + edition = "2021"; + sha256 = "0jyd3c3k239ybs59ixpnl7dqkmm072fr1js8kh7ldx58bzc3m1n9"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + optional = true; + usesDefaultFeatures = false; + features = [ "der" ]; + } + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "hazmat" "sec1" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + optional = true; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "ecdsa"; + packageId = "ecdsa"; + rename = "ecdsa-core"; + usesDefaultFeatures = false; + features = [ "dev" ]; + } + { + name = "primeorder"; + packageId = "primeorder"; + features = [ "dev" ]; + } + ]; + features = { + "alloc" = [ "ecdsa-core?/alloc" "elliptic-curve/alloc" ]; + "arithmetic" = [ "dep:primeorder" "elliptic-curve/arithmetic" ]; + "bits" = [ "arithmetic" "elliptic-curve/bits" ]; + "default" = [ "arithmetic" "ecdsa" "pem" "std" ]; + "digest" = [ "ecdsa-core/digest" "ecdsa-core/hazmat" ]; + "ecdh" = [ "arithmetic" "elliptic-curve/ecdh" ]; + "ecdsa" = [ "arithmetic" "ecdsa-core/signing" "ecdsa-core/verifying" "sha256" ]; + "ecdsa-core" = [ "dep:ecdsa-core" ]; + "expose-field" = [ "arithmetic" ]; + "hash2curve" = [ "arithmetic" "elliptic-curve/hash2curve" ]; + "jwk" = [ "elliptic-curve/jwk" ]; + "pem" = [ "elliptic-curve/pem" "ecdsa-core/pem" "pkcs8" ]; + "pkcs8" = [ "ecdsa-core?/pkcs8" "elliptic-curve/pkcs8" ]; + "serde" = [ "ecdsa-core?/serde" "elliptic-curve/serde" "primeorder?/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "sha2" = [ "dep:sha2" ]; + "sha256" = [ "digest" "sha2" ]; + "std" = [ "alloc" "ecdsa-core?/std" "elliptic-curve/std" ]; + "test-vectors" = [ "dep:hex-literal" ]; + "voprf" = [ "elliptic-curve/voprf" "sha2" ]; + }; + resolvedDefaultFeatures = [ "alloc" "arithmetic" "default" "digest" "ecdsa" "ecdsa-core" "pem" "pkcs8" "sha2" "sha256" "std" ]; + }; "parking" = rec { crateName = "parking"; version = "2.2.1"; @@ -7684,9 +8208,9 @@ rec { }; "parking_lot" = rec { crateName = "parking_lot"; - version = "0.12.4"; + version = "0.12.5"; edition = "2021"; - sha256 = "04sab1c7304jg8k0d5b2pxbj1fvgzcf69l3n2mfpkdb96vs8pmbh"; + sha256 = "06jsqh9aqmc94j2rlm8gpccilqm6bskbd67zf6ypfc0f4m9p91ck"; authors = [ "Amanieu d'Antras " ]; @@ -7711,9 +8235,9 @@ rec { }; "parking_lot_core" = rec { crateName = "parking_lot_core"; - version = "0.9.11"; + version = "0.9.12"; edition = "2021"; - sha256 = "19g4d6m5k4ggacinqprnn8xvdaszc3y5smsmbz1adcdmaqm8v0xw"; + sha256 = "1hb4rggy70fwa1w9nb0svbyflzdc69h047482v2z3sx2hmcnh896"; authors = [ "Amanieu d'Antras " ]; @@ -7737,23 +8261,22 @@ rec { packageId = "smallvec"; } { - name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + name = "windows-link"; + packageId = "windows-link 0.2.1"; target = { target, features }: (target."windows" or false); } ]; features = { "backtrace" = [ "dep:backtrace" ]; - "deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ]; + "deadlock_detection" = [ "petgraph" "backtrace" ]; "petgraph" = [ "dep:petgraph" ]; - "thread-id" = [ "dep:thread-id" ]; }; }; "pem" = rec { crateName = "pem"; - version = "3.0.5"; + version = "3.0.6"; edition = "2021"; - sha256 = "1wwfk8sbyi9l18fvvn6z9p2gy7v7q7wimbhvrvixxj8a8zl3ibrq"; + sha256 = "1glia9vv51wx79cysqxgdha6g1bwbbr20bfhijlk2nxw4qycac0x"; authors = [ "Jonathan Creekmore " ]; @@ -7765,19 +8288,40 @@ rec { features = [ "alloc" ]; } { - name = "serde"; - packageId = "serde"; + name = "serde_core"; + packageId = "serde_core"; optional = true; usesDefaultFeatures = false; } ]; features = { "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "std" = [ "base64/std" "serde?/std" ]; + "serde" = [ "dep:serde_core" ]; + "std" = [ "base64/std" "serde_core?/std" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "pem-rfc7468" = rec { + crateName = "pem-rfc7468"; + version = "0.7.0"; + edition = "2021"; + sha256 = "04l4852scl4zdva31c1z6jafbak0ni5pi0j38ml108zwzjdrrcw8"; + libName = "pem_rfc7468"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + } + ]; + features = { + "alloc" = [ "base64ct/alloc" ]; + "std" = [ "alloc" "base64ct/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "percent-encoding" = rec { crateName = "percent-encoding"; version = "2.3.2"; @@ -7795,9 +8339,9 @@ rec { }; "pest" = rec { crateName = "pest"; - version = "2.8.1"; + version = "2.8.3"; edition = "2021"; - sha256 = "08s342r6vv6ml5in4jk7pb97wgpf0frcnrvg0sqshn23sdb5zc0x"; + sha256 = "1x3xc1s5vhwswmmr51i60kfbcnp1zgdblsxbqd8dxvs0l0hpb7lq"; authors = [ "Dragoș Tiselice " ]; @@ -7807,11 +8351,6 @@ rec { packageId = "memchr"; optional = true; } - { - name = "thiserror"; - packageId = "thiserror 2.0.16"; - optional = true; - } { name = "ucd-trie"; packageId = "ucd-trie"; @@ -7821,17 +8360,17 @@ rec { features = { "default" = [ "std" "memchr" ]; "memchr" = [ "dep:memchr" ]; - "miette-error" = [ "std" "pretty-print" "dep:miette" "dep:thiserror" ]; + "miette-error" = [ "std" "pretty-print" "dep:miette" ]; "pretty-print" = [ "dep:serde" "dep:serde_json" ]; - "std" = [ "ucd-trie/std" "dep:thiserror" ]; + "std" = [ "ucd-trie/std" ]; }; resolvedDefaultFeatures = [ "default" "memchr" "std" ]; }; "pest_derive" = rec { crateName = "pest_derive"; - version = "2.8.1"; + version = "2.8.3"; edition = "2021"; - sha256 = "1g20ma4y29axbjhi3z64ihhpqzmiix71qjn7bs224yd7isg6s1dv"; + sha256 = "1pp2g39k2vjdyzr89k8zx5y7pp3np4iv635jpyxzmfhd0fisjz8q"; procMacro = true; authors = [ "Dragoș Tiselice " @@ -7858,9 +8397,9 @@ rec { }; "pest_generator" = rec { crateName = "pest_generator"; - version = "2.8.1"; + version = "2.8.3"; edition = "2021"; - sha256 = "0rj9a20g4bjb4sl3zyzpxqg8mbn8c1kxp0nw08rfp0gp73k09r47"; + sha256 = "0hr80m5xzzrhzjvnmbawk72cxvn0ssc5j216gblynmspizch3d29"; authors = [ "Dragoș Tiselice " ]; @@ -7884,7 +8423,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; features = { @@ -7897,9 +8436,9 @@ rec { }; "pest_meta" = rec { crateName = "pest_meta"; - version = "2.8.1"; + version = "2.8.3"; edition = "2021"; - sha256 = "1mf01iln7shbnyxpdfnpf59gzn83nndqjkwiw3yh6n8g2wgi1lgd"; + sha256 = "0nh6w1mv8hx0p1jli8s12j2w62ia2apsbyl69nf07yg9zqn7mwkj"; authors = [ "Dragoș Tiselice " ]; @@ -7984,7 +8523,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "parsing" "printing" "clone-impls" "proc-macro" "full" "visit-mut" ]; } @@ -8010,6 +8549,74 @@ rec { ]; }; + "pkcs1" = rec { + crateName = "pkcs1"; + version = "0.7.5"; + edition = "2021"; + sha256 = "0zz4mil3nchnxljdfs2k5ab1cjqn7kq5lqp62n9qfix01zqvkzy8"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "alloc" = [ "der/alloc" "zeroize" "pkcs8?/alloc" ]; + "pem" = [ "alloc" "der/pem" "pkcs8?/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "std" = [ "der/std" "alloc" ]; + "zeroize" = [ "der/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "pkcs8" "std" "zeroize" ]; + }; + "pkcs8" = rec { + crateName = "pkcs8"; + version = "0.10.2"; + edition = "2021"; + sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "3des" = [ "encryption" "pkcs5/3des" ]; + "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "pem" = [ "alloc" "der/pem" "spki/pem" ]; + "pkcs5" = [ "dep:pkcs5" ]; + "rand_core" = [ "dep:rand_core" ]; + "sha1-insecure" = [ "encryption" "pkcs5/sha1-insecure" ]; + "std" = [ "alloc" "der/std" "spki/std" ]; + "subtle" = [ "dep:subtle" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; + }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.32"; @@ -8023,9 +8630,9 @@ rec { }; "potential_utf" = rec { crateName = "potential_utf"; - version = "0.1.2"; + version = "0.1.3"; edition = "2021"; - sha256 = "11dm6k3krx3drbvhgjw8z508giiv0m09wzl6ghza37176w4c79z5"; + sha256 = "12mhwvhpvvim6xqp6ifgkh1sniv9j2cmid6axn10fnjvpsnikpw4"; authors = [ "The ICU4X Project Developers" ]; @@ -8098,7 +8705,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "full" ]; } @@ -8111,7 +8718,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "clone-impls" "extra-traits" "parsing" "printing" "visit-mut" ]; } @@ -8121,6 +8728,29 @@ rec { }; resolvedDefaultFeatures = [ "verbatim" ]; }; + "primeorder" = rec { + crateName = "primeorder"; + version = "0.13.6"; + edition = "2021"; + sha256 = "1rp16710mxksagcjnxqjjq9r9wf5vf72fs8wxffnvhb6i6hiqgim"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "elliptic-curve"; + packageId = "elliptic-curve"; + usesDefaultFeatures = false; + features = [ "arithmetic" "sec1" ]; + } + ]; + features = { + "alloc" = [ "elliptic-curve/alloc" ]; + "serde" = [ "elliptic-curve/serde" "serdect" ]; + "serdect" = [ "dep:serdect" ]; + "std" = [ "alloc" "elliptic-curve/std" ]; + }; + }; "proc-macro2" = rec { crateName = "proc-macro2"; version = "1.0.101"; @@ -8188,7 +8818,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "xml"; @@ -8331,7 +8961,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; optional = true; features = [ "full" ]; } @@ -8379,7 +9009,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "extra-traits" ]; } ]; @@ -8417,7 +9047,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "extra-traits" ]; } ]; @@ -8509,9 +9139,9 @@ rec { }; "quote" = rec { crateName = "quote"; - version = "1.0.40"; + version = "1.0.41"; edition = "2018"; - sha256 = "1394cxjg6nwld82pzp2d4fp6pmaz32gai1zh9z5hvh0dawww118q"; + sha256 = "1lg108nb57lwbqlnpsii89cchk6i8pkcvrv88xh1p7a9gdz7c9ff"; authors = [ "David Tolnay " ]; @@ -8540,7 +9170,44 @@ rec { "rustc-dep-of-std" = [ "core" ]; }; }; - "rand" = rec { + "rand 0.8.5" = rec { + crateName = "rand"; + version = "0.8.5"; + edition = "2018"; + sha256 = "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "rand_chacha"; + packageId = "rand_chacha 0.3.1"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + ]; + features = { + "alloc" = [ "rand_core/alloc" ]; + "default" = [ "std" "std_rng" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "libc" = [ "dep:libc" ]; + "log" = [ "dep:log" ]; + "packed_simd" = [ "dep:packed_simd" ]; + "rand_chacha" = [ "dep:rand_chacha" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" "rand_core/serde1" ]; + "simd_support" = [ "packed_simd" ]; + "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; + "std_rng" = [ "rand_chacha" ]; + }; + resolvedDefaultFeatures = [ "rand_chacha" "std_rng" ]; + }; + "rand 0.9.2" = rec { crateName = "rand"; version = "0.9.2"; edition = "2021"; @@ -8552,13 +9219,13 @@ rec { dependencies = [ { name = "rand_chacha"; - packageId = "rand_chacha"; + packageId = "rand_chacha 0.9.0"; optional = true; usesDefaultFeatures = false; } { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; usesDefaultFeatures = false; } ]; @@ -8573,11 +9240,11 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "os_rng" "small_rng" "std" "std_rng" "thread_rng" ]; }; - "rand_chacha" = rec { + "rand_chacha 0.3.1" = rec { crateName = "rand_chacha"; - version = "0.9.0"; - edition = "2021"; - sha256 = "1jr5ygix7r60pz0s1cv3ms1f6pd1i9pcdmnxzzhjc3zn3mgjn0nk"; + version = "0.3.1"; + edition = "2018"; + sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; authors = [ "The Rand Project Developers" "The Rust Project Developers" @@ -8592,13 +9259,42 @@ rec { } { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.6.4"; } ]; - devDependencies = [ + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" ]; + "std" = [ "ppv-lite86/std" ]; + }; + }; + "rand_chacha 0.9.0" = rec { + crateName = "rand_chacha"; + version = "0.9.0"; + edition = "2021"; + sha256 = "1jr5ygix7r60pz0s1cv3ms1f6pd1i9pcdmnxzzhjc3zn3mgjn0nk"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + "The CryptoCorrosion Contributors" + ]; + dependencies = [ + { + name = "ppv-lite86"; + packageId = "ppv-lite86"; + usesDefaultFeatures = false; + features = [ "simd" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.9.3"; + } + ]; + devDependencies = [ { name = "rand_core"; - packageId = "rand_core"; + packageId = "rand_core 0.9.3"; features = [ "os_rng" ]; } ]; @@ -8610,7 +9306,31 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "rand_core" = rec { + "rand_core 0.6.4" = rec { + crateName = "rand_core"; + version = "0.6.4"; + edition = "2018"; + sha256 = "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"; + authors = [ + "The Rand Project Developers" + "The Rust Project Developers" + ]; + dependencies = [ + { + name = "getrandom"; + packageId = "getrandom 0.2.16"; + optional = true; + } + ]; + features = { + "getrandom" = [ "dep:getrandom" ]; + "serde" = [ "dep:serde" ]; + "serde1" = [ "serde" ]; + "std" = [ "alloc" "getrandom" "getrandom/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; + }; + "rand_core 0.9.3" = rec { crateName = "rand_core"; version = "0.9.3"; edition = "2021"; @@ -8622,7 +9342,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; } ]; @@ -8660,9 +9380,9 @@ rec { }; "redox_syscall" = rec { crateName = "redox_syscall"; - version = "0.5.17"; + version = "0.5.18"; edition = "2021"; - sha256 = "0xrvpchkaxph3r5ww2i04v9nwg3843fp3prf8kqlh1gv01b4c1sl"; + sha256 = "0b9n38zsxylql36vybw18if68yc9jczxmbyzdwyhb9sifmag4azd"; libName = "syscall"; authors = [ "Jeremy Soller " @@ -8718,16 +9438,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; }; "regex" = rec { crateName = "regex"; - version = "1.11.2"; + version = "1.12.2"; edition = "2021"; - sha256 = "04k9rzxd11hcahpyihlswy6f1zqw7lspirv4imm4h0lcdl8gvmr3"; + sha256 = "1m14zkg6xmkb0q5ah3y39cmggclsjdr1wpxfa4kf5wvm3wcw0fw4"; authors = [ "The Rust Project Developers" "Andrew Gallant " @@ -8783,9 +9503,9 @@ rec { }; "regex-automata" = rec { crateName = "regex-automata"; - version = "0.4.10"; + version = "0.4.13"; edition = "2021"; - sha256 = "1mllcfmgjcl6d52d5k09lwwq9wj5mwxccix4bhmw5spy1gx5i53b"; + sha256 = "070z0j23pjfidqz0z89id1fca4p572wxpcr20a0qsv68bbrclxjj"; libName = "regex_automata"; authors = [ "The Rust Project Developers" @@ -8844,9 +9564,9 @@ rec { }; "regex-syntax" = rec { crateName = "regex-syntax"; - version = "0.8.6"; + version = "0.8.8"; edition = "2021"; - sha256 = "00chjpglclfskmc919fj5aq308ffbrmcn7kzbkz92k231xdsmx6a"; + sha256 = "0n7ggnpk0r32rzgnycy5xrc1yp2kq19m6pz98ch3c6dkaxw9hbbs"; libName = "regex_syntax"; authors = [ "The Rust Project Developers" @@ -8861,9 +9581,9 @@ rec { }; "reqwest" = rec { crateName = "reqwest"; - version = "0.12.23"; + version = "0.12.24"; edition = "2021"; - sha256 = "1svw1k0jx17cmlwhixwqfv3bgpjapciw7klkghnd9cljh16g6afl"; + sha256 = "0vx3f2n6hfnv81y66v5wayrqh6jlzz4gakky88m0hywz1d0lc2cx"; authors = [ "Sean McArthur " ]; @@ -8986,6 +9706,7 @@ rec { { name = "tower-service"; packageId = "tower-service"; + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "url"; @@ -9091,6 +9812,29 @@ rec { }; resolvedDefaultFeatures = [ "blocking" ]; }; + "rfc6979" = rec { + crateName = "rfc6979"; + version = "0.4.0"; + edition = "2021"; + sha256 = "1chw95jgcfrysyzsq6a10b1j5qb7bagkx8h0wda4lv25in02mpgq"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "hmac"; + packageId = "hmac"; + usesDefaultFeatures = false; + features = [ "reset" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + ]; + + }; "ring" = rec { crateName = "ring"; version = "0.17.14"; @@ -9152,19 +9896,118 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" ]; }; - "rustc-demangle" = rec { - crateName = "rustc-demangle"; - version = "0.1.26"; - edition = "2015"; - sha256 = "1kja3nb0yhlm4j2p1hl8d7sjmn2g9fa1s4pj0qma5kj2lcndkxsn"; - libName = "rustc_demangle"; + "rsa" = rec { + crateName = "rsa"; + version = "0.9.8"; + edition = "2021"; + sha256 = "06v9zl604jsqjajm647l9jjirn7k4lc8lmvys6hmqshpxp0qm4kq"; authors = [ - "Alex Crichton " + "RustCrypto Developers" + "dignifiedquire " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + usesDefaultFeatures = false; + } + { + name = "digest"; + packageId = "digest"; + usesDefaultFeatures = false; + features = [ "alloc" "oid" ]; + } + { + name = "num-bigint-dig"; + packageId = "num-bigint-dig"; + rename = "num-bigint"; + usesDefaultFeatures = false; + features = [ "i128" "prime" "zeroize" ]; + } + { + name = "num-integer"; + packageId = "num-integer"; + usesDefaultFeatures = false; + } + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + features = [ "libm" ]; + } + { + name = "pkcs1"; + packageId = "pkcs1"; + usesDefaultFeatures = false; + features = [ "alloc" "pkcs8" ]; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + optional = true; + usesDefaultFeatures = false; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + features = [ "alloc" "digest" "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + features = [ "alloc" ]; + } + ]; + devDependencies = [ + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + usesDefaultFeatures = false; + features = [ "oid" ]; + } ]; features = { - "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" ]; + "default" = [ "std" "pem" "u64_digit" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "nightly" = [ "num-bigint/nightly" ]; + "pem" = [ "pkcs1/pem" "pkcs8/pem" ]; + "pkcs5" = [ "pkcs8/encryption" ]; + "serde" = [ "dep:serde" "num-bigint/serde" ]; + "sha1" = [ "dep:sha1" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "digest/std" "pkcs1/std" "pkcs8/std" "rand_core/std" "signature/std" ]; + "u64_digit" = [ "num-bigint/u64_digit" ]; }; + resolvedDefaultFeatures = [ "default" "pem" "sha2" "std" "u64_digit" ]; }; "rustc-hash" = rec { crateName = "rustc-hash"; @@ -9183,9 +10026,9 @@ rec { }; "rustix" = rec { crateName = "rustix"; - version = "1.0.8"; + version = "1.1.2"; edition = "2021"; - sha256 = "1j6ajqi61agdnh1avr4bplrsgydjw1n4mycdxw3v8g94pyx1y60i"; + sha256 = "0gpz343xfzx16x82s1x336n0kr49j02cvhgxdvaq86jmqnigh5fd"; authors = [ "Dan Gohman " "Jakub Konka " @@ -9235,7 +10078,7 @@ rec { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((("android" == target."os" or null) || ("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); + target = { target, features }: ((("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); features = [ "general" "ioctl" "no_std" ]; } { @@ -9243,11 +10086,11 @@ rec { packageId = "linux-raw-sys"; usesDefaultFeatures = false; target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && (("little" == target."endian" or null) || (("s390x" == target."arch" or null) || ("powerpc" == target."arch" or null))) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("s390x" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)))); - features = [ "general" "errno" "ioctl" "no_std" "elf" ]; + features = [ "auxvec" "general" "errno" "ioctl" "no_std" "elf" ]; } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" ]; } @@ -9290,9 +10133,9 @@ rec { }; "rustls" = rec { crateName = "rustls"; - version = "0.23.31"; + version = "0.23.33"; edition = "2021"; - sha256 = "1k5ncablbb2h7hzllq3j3panqnks295v56xd488zrq1xy39cpsy0"; + sha256 = "0b7qwspimfxf18mammg1yammlsyn4f6iahz0lnbvn06ajsj087km"; dependencies = [ { name = "log"; @@ -9359,9 +10202,9 @@ rec { }; "rustls-native-certs" = rec { crateName = "rustls-native-certs"; - version = "0.8.1"; + version = "0.8.2"; edition = "2021"; - sha256 = "1ls7laa3748mkn23fmi3g4mlwk131lx6chq2lyc8v2mmabfz5kvz"; + sha256 = "08vr6gyz78c4zmbi8r307pybyrs7hf81wl5s35hm7h5hxcbxk04r"; libName = "rustls_native_certs"; dependencies = [ { @@ -9382,7 +10225,7 @@ rec { } { name = "security-framework"; - packageId = "security-framework 3.3.0"; + packageId = "security-framework 3.5.1"; target = { target, features }: ("macos" == target."os" or null); } ]; @@ -9412,9 +10255,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.4"; + version = "0.103.7"; edition = "2021"; - sha256 = "1z4jmmgasjgk9glb160a66bshvgifa64mgfjrkqp7dy1w158h5qa"; + sha256 = "1gqlsd0yqiqch97g0wbsnbmyrp75j6nbzfpf8dmhxa78j50ky2z1"; libName = "webpki"; dependencies = [ { @@ -9489,9 +10332,9 @@ rec { }; "schannel" = rec { crateName = "schannel"; - version = "0.1.27"; + version = "0.1.28"; edition = "2018"; - sha256 = "0gbbhy28v72kd5iina0z2vcdl3vz63mk5idvkzn5r52z6jmfna8z"; + sha256 = "1qb6s5gyxfz2inz753a4z3mc1d266mwvz0c5w7ppd3h44swq27c9"; authors = [ "Steven Fackler " "Steffen Butzer " @@ -9499,14 +10342,14 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; features = [ "Win32_Foundation" "Win32_Security_Cryptography" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" ]; } ]; devDependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; features = [ "Win32_System_SystemInformation" "Win32_System_Time" ]; } ]; @@ -9614,13 +10457,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "extra-traits" ]; } ]; @@ -9638,6 +10481,66 @@ rec { "default" = [ "use_std" ]; }; }; + "sec1" = rec { + crateName = "sec1"; + version = "0.7.3"; + edition = "2021"; + sha256 = "1p273j8c87pid6a1iyyc7vxbvifrw55wbxgr0dh3l8vnbxb7msfk"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base16ct"; + packageId = "base16ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + optional = true; + features = [ "oid" ]; + } + { + name = "generic-array"; + packageId = "generic-array"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "der?/alloc" "pkcs8?/alloc" "zeroize?/alloc" ]; + "default" = [ "der" "point" ]; + "der" = [ "dep:der" "zeroize" ]; + "pem" = [ "alloc" "der/pem" "pkcs8/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "point" = [ "dep:base16ct" "dep:generic-array" ]; + "serde" = [ "dep:serdect" ]; + "std" = [ "alloc" "der?/std" ]; + "subtle" = [ "dep:subtle" ]; + "zeroize" = [ "dep:zeroize" "der?/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "der" "pem" "pkcs8" "point" "std" "subtle" "zeroize" ]; + }; "secrecy" = rec { crateName = "secrecy"; version = "0.10.3"; @@ -9705,11 +10608,11 @@ rec { }; resolvedDefaultFeatures = [ "OSX_10_10" "OSX_10_11" "OSX_10_12" "OSX_10_9" "default" ]; }; - "security-framework 3.3.0" = rec { + "security-framework 3.5.1" = rec { crateName = "security-framework"; - version = "3.3.0"; + version = "3.5.1"; edition = "2021"; - sha256 = "037f0h06p00gg7ycczx3jsz4ikxzll177gdqnhca72h2qn91vyw0"; + sha256 = "1vz6pf5qjgx8s0hg805hq6qbcqnll6fs63irvrpgcc7qx91p6adk"; libName = "security_framework"; authors = [ "Steven Fackler " @@ -9751,9 +10654,9 @@ rec { }; "security-framework-sys" = rec { crateName = "security-framework-sys"; - version = "2.14.0"; + version = "2.15.0"; edition = "2021"; - sha256 = "0chwn01qrnvs59i5220bymd38iddy4krbnmfnhf4k451aqfj7ns9"; + sha256 = "1h6mijxnfrwvl1y4dzwn3m877j6dqp9qn3g37i954j5czazhq7yc"; libName = "security_framework_sys"; authors = [ "Steven Fackler " @@ -9782,9 +10685,9 @@ rec { }; "semver" = rec { crateName = "semver"; - version = "1.0.26"; + version = "1.0.27"; edition = "2018"; - sha256 = "1l5q2vb8fjkby657kdyfpvv40x2i2xqq9bg57pxqakfj92fgmrjn"; + sha256 = "1qmi3akfrnqc2hfkdgcxhld5bv961wbk8my3ascv5068mc5fnryp"; authors = [ "David Tolnay " ]; @@ -9796,35 +10699,34 @@ rec { }; "serde" = rec { crateName = "serde"; - version = "1.0.219"; - edition = "2018"; - sha256 = "1dl6nyxnsi82a197sd752128a4avm6mxnscywas1jq30srp2q3jz"; + version = "1.0.228"; + edition = "2021"; + sha256 = "17mf4hhjxv5m90g42wmlbc61hdhlm6j9hwfkpcnd72rpgzm993ls"; authors = [ "Erick Tryzelaar " "David Tolnay " ]; dependencies = [ { - name = "serde_derive"; - packageId = "serde_derive"; - optional = true; - } - { - name = "serde_derive"; - packageId = "serde_derive"; - target = { target, features }: false; + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; + features = [ "result" ]; } - ]; - devDependencies = [ { name = "serde_derive"; packageId = "serde_derive"; + optional = true; } ]; features = { + "alloc" = [ "serde_core/alloc" ]; "default" = [ "std" ]; "derive" = [ "serde_derive" ]; + "rc" = [ "serde_core/rc" ]; "serde_derive" = [ "dep:serde_derive" ]; + "std" = [ "serde_core/std" ]; + "unstable" = [ "serde_core/unstable" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "derive" "serde_derive" "std" ]; }; @@ -9849,11 +10751,38 @@ rec { ]; }; + "serde_core" = rec { + crateName = "serde_core"; + version = "1.0.228"; + edition = "2021"; + sha256 = "1bb7id2xwx8izq50098s5j2sqrrvk31jbbrjqygyan6ask3qbls1"; + authors = [ + "Erick Tryzelaar " + "David Tolnay " + ]; + dependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + target = { target, features }: false; + } + ]; + devDependencies = [ + { + name = "serde_derive"; + packageId = "serde_derive"; + } + ]; + features = { + "default" = [ "std" "result" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "result" "std" ]; + }; "serde_derive" = rec { crateName = "serde_derive"; - version = "1.0.219"; - edition = "2015"; - sha256 = "001azhjmj7ya52pmfiw4ppxm16nd44y15j2pf5gkcwrcgz7pc0jv"; + version = "1.0.228"; + edition = "2021"; + sha256 = "0y8xm7fvmr2kjcd029g9fijpndh8csv5m20g4bd76w8qschg4h6m"; procMacro = true; authors = [ "Erick Tryzelaar " @@ -9874,7 +10803,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ]; } @@ -9906,7 +10835,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" ]; } @@ -9915,9 +10844,9 @@ rec { }; "serde_json" = rec { crateName = "serde_json"; - version = "1.0.143"; + version = "1.0.145"; edition = "2021"; - sha256 = "0njabwzldvj13ykrf1aaf4gh5cgl25kf9hzbpafbv3qh3ppsn0fl"; + sha256 = "1767y6kxjf7gwpbv8bkhgwc50nhg46mqwm9gy9n122f7v1k6yaj0"; authors = [ "Erick Tryzelaar " "David Tolnay " @@ -9940,6 +10869,12 @@ rec { name = "serde"; packageId = "serde"; usesDefaultFeatures = false; + target = { target, features }: false; + } + { + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; } ]; devDependencies = [ @@ -9950,19 +10885,19 @@ rec { } ]; features = { - "alloc" = [ "serde/alloc" ]; + "alloc" = [ "serde_core/alloc" ]; "default" = [ "std" ]; "indexmap" = [ "dep:indexmap" ]; "preserve_order" = [ "indexmap" "std" ]; - "std" = [ "memchr/std" "serde/std" ]; + "std" = [ "memchr/std" "serde_core/std" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "raw_value" "std" ]; }; "serde_path_to_error" = rec { crateName = "serde_path_to_error"; - version = "0.1.17"; + version = "0.1.20"; edition = "2021"; - sha256 = "0alb447z25dvczd6ll3vfjbf51pypn23mgs5hv8978vzjczv3yjr"; + sha256 = "0mxls44p2ycmnxh03zpnlxxygq42w61ws7ir7r0ba6rp5s1gza8h"; authors = [ "David Tolnay " ]; @@ -9971,6 +10906,20 @@ rec { name = "itoa"; packageId = "itoa"; } + { + name = "serde"; + packageId = "serde"; + usesDefaultFeatures = false; + target = { target, features }: false; + } + { + name = "serde_core"; + packageId = "serde_core"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } + ]; + devDependencies = [ { name = "serde"; packageId = "serde"; @@ -10115,6 +11064,7 @@ rec { "sha2-asm" = [ "dep:sha2-asm" ]; "std" = [ "digest/std" ]; }; + resolvedDefaultFeatures = [ "default" "oid" "std" ]; }; "sharded-slab" = rec { crateName = "sharded-slab"; @@ -10171,23 +11121,66 @@ rec { ]; }; - "slab" = rec { - crateName = "slab"; - version = "0.4.11"; - edition = "2018"; - sha256 = "12bm4s88rblq02jjbi1dw31984w61y2ldn13ifk5gsqgy97f8aks"; + "signature" = rec { + crateName = "signature"; + version = "2.2.0"; + edition = "2021"; + sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; authors = [ - "Carl Lerche " + "RustCrypto Developers" ]; - features = { - "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; - "smallvec" = rec { - crateName = "smallvec"; - version = "1.15.1"; + dependencies = [ + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "derive" = [ "dep:derive" ]; + "digest" = [ "dep:digest" ]; + "rand_core" = [ "dep:rand_core" ]; + "std" = [ "alloc" "rand_core?/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "digest" "rand_core" "std" ]; + }; + "simd-adler32" = rec { + crateName = "simd-adler32"; + version = "0.3.7"; + edition = "2018"; + sha256 = "1zkq40c3iajcnr5936gjp9jjh1lpzhy44p3dq3fiw75iwr1w2vfn"; + libName = "simd_adler32"; + authors = [ + "Marvin Countryman " + ]; + features = { + "default" = [ "std" "const-generics" ]; + }; + }; + "slab" = rec { + crateName = "slab"; + version = "0.4.11"; + edition = "2018"; + sha256 = "12bm4s88rblq02jjbi1dw31984w61y2ldn13ifk5gsqgy97f8aks"; + authors = [ + "Carl Lerche " + ]; + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; + "smallvec" = rec { + crateName = "smallvec"; + version = "1.15.1"; edition = "2018"; sha256 = "00xxdxxpgyq5vjnpljvkmy99xij5rxgh913ii1v16kzynnivgcb7"; authors = [ @@ -10226,7 +11219,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; @@ -10266,18 +11259,18 @@ rec { }; resolvedDefaultFeatures = [ "default" "guide" "std" ]; }; - "snafu 0.8.7" = rec { + "snafu 0.8.9" = rec { crateName = "snafu"; - version = "0.8.7"; + version = "0.8.9"; edition = "2018"; - sha256 = "0jp7rspj1f4m6rdj6bxf8zyi89bkdm0s76fhan8nwjkcn9ra6qh0"; + sha256 = "18p1y5qxwjn5j902wqsdr75n17b29lxpdipa0p7a3wybxbsb713f"; authors = [ "Jake Goulding " ]; dependencies = [ { name = "snafu-derive"; - packageId = "snafu-derive 0.8.7"; + packageId = "snafu-derive 0.8.9"; } ]; features = { @@ -10325,11 +11318,11 @@ rec { features = { }; }; - "snafu-derive 0.8.7" = rec { + "snafu-derive 0.8.9" = rec { crateName = "snafu-derive"; - version = "0.8.7"; + version = "0.8.9"; edition = "2018"; - sha256 = "1f1262smvvilsga1aard454pkqs39nyps46mmdrrvh9z4vixjpvy"; + sha256 = "0lg4s58jzx6w48ig4qp8jasrrs886pifqqd58k5b2jzlvd3pgjf1"; procMacro = true; libName = "snafu_derive"; authors = [ @@ -10351,7 +11344,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -10361,9 +11354,9 @@ rec { }; "socket2" = rec { crateName = "socket2"; - version = "0.6.0"; + version = "0.6.1"; edition = "2021"; - sha256 = "01qqdzfnr0bvdwq6wl56c9c4m2cvbxn43dfpcv8gjx208sph8d93"; + sha256 = "109qn0kjhqi5zds84qyqi5wn72g8azjhmf4b04fkgkrkd48rw4hp"; authors = [ "Alex Crichton " "Thomas de Zeeuw " @@ -10376,7 +11369,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.60.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Networking_WinSock" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" ]; } @@ -10385,11 +11378,68 @@ rec { }; resolvedDefaultFeatures = [ "all" ]; }; + "spin" = rec { + crateName = "spin"; + version = "0.9.8"; + edition = "2015"; + sha256 = "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039"; + authors = [ + "Mathijs van de Nes " + "John Ericson " + "Joshua Barretto " + ]; + features = { + "barrier" = [ "mutex" ]; + "default" = [ "lock_api" "mutex" "spin_mutex" "rwlock" "once" "lazy" "barrier" ]; + "fair_mutex" = [ "mutex" ]; + "lazy" = [ "once" ]; + "lock_api" = [ "lock_api_crate" ]; + "lock_api_crate" = [ "dep:lock_api_crate" ]; + "portable-atomic" = [ "dep:portable-atomic" ]; + "portable_atomic" = [ "portable-atomic" ]; + "spin_mutex" = [ "mutex" ]; + "ticket_mutex" = [ "mutex" ]; + "use_ticket_mutex" = [ "mutex" "ticket_mutex" ]; + }; + resolvedDefaultFeatures = [ "once" ]; + }; + "spki" = rec { + crateName = "spki"; + version = "0.7.3"; + edition = "2021"; + sha256 = "17fj8k5fmx4w9mp27l970clrh5qa7r5sjdvbsln987xhb34dc7nr"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + ]; + features = { + "alloc" = [ "base64ct?/alloc" "der/alloc" ]; + "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; + "base64" = [ "dep:base64ct" ]; + "fingerprint" = [ "sha2" ]; + "pem" = [ "alloc" "der/pem" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "der/std" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "pem" "std" ]; + }; "stable_deref_trait" = rec { crateName = "stable_deref_trait"; - version = "1.2.0"; + version = "1.2.1"; edition = "2015"; - sha256 = "1lxjr8q2n534b2lhkxd6l6wcddzjvnksi58zv11f9y0jjmr15wd8"; + sha256 = "15h5h73ppqyhdhx6ywxfj88azmrpml9gl6zp3pwy2malqa6vxqkc"; authors = [ "Robert Grosse " ]; @@ -10399,6 +11449,109 @@ rec { }; resolvedDefaultFeatures = [ "alloc" ]; }; + "stackable-certs" = rec { + crateName = "stackable-certs"; + version = "0.4.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; + }; + libName = "stackable_certs"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "ecdsa"; + packageId = "ecdsa"; + features = [ "digest" "pem" ]; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + } + { + name = "p256"; + packageId = "p256"; + features = [ "ecdsa" ]; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "rand_core"; + packageId = "rand_core 0.6.4"; + } + { + name = "rsa"; + packageId = "rsa"; + features = [ "sha2" ]; + } + { + name = "sha2"; + packageId = "sha2"; + features = [ "oid" ]; + } + { + name = "signature"; + packageId = "signature"; + } + { + name = "snafu"; + packageId = "snafu 0.8.9"; + } + { + name = "stackable-shared"; + packageId = "stackable-shared"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + optional = true; + usesDefaultFeatures = false; + features = [ "ring" "logging" "tls12" ]; + } + { + name = "tracing"; + packageId = "tracing"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; + } + { + name = "zeroize"; + packageId = "zeroize"; + } + ]; + features = { + "rustls" = [ "dep:tokio-rustls" ]; + }; + resolvedDefaultFeatures = [ "default" "rustls" ]; + }; "stackable-krb5-provision-keytab" = rec { crateName = "stackable-krb5-provision-keytab"; version = "0.0.0-dev"; @@ -10441,7 +11594,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; } { name = "serde"; @@ -10454,12 +11607,12 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" "versioned" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "stackable-secret-operator-utils"; @@ -10484,13 +11637,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.99.0"; + version = "0.100.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_operator"; authors = [ @@ -10535,7 +11688,7 @@ rec { } { name = "stackable-telemetry"; - packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-telemetry@0.6.1"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1"; optional = true; features = [ "clap" ]; } @@ -10595,7 +11748,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator-derive"; @@ -10611,6 +11764,11 @@ rec { packageId = "stackable-versioned"; optional = true; } + { + name = "stackable-webhook"; + packageId = "stackable-webhook"; + optional = true; + } { name = "strum"; packageId = "strum"; @@ -10649,7 +11807,7 @@ rec { "versioned" = [ "dep:stackable-versioned" ]; "webhook" = [ "dep:stackable-webhook" ]; }; - resolvedDefaultFeatures = [ "clap" "default" "telemetry" "time" "versioned" ]; + resolvedDefaultFeatures = [ "clap" "default" "telemetry" "time" "versioned" "webhook" ]; }; "stackable-operator-derive" = rec { crateName = "stackable-operator-derive"; @@ -10658,8 +11816,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10681,7 +11839,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; @@ -10758,7 +11916,7 @@ rec { } { name = "rand"; - packageId = "rand"; + packageId = "rand 0.9.2"; } { name = "serde"; @@ -10769,9 +11927,13 @@ rec { name = "serde_json"; packageId = "serde_json"; } + { + name = "serde_yaml"; + packageId = "serde_yaml"; + } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "socket2"; @@ -10785,7 +11947,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" "versioned" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "stackable-secret-operator-utils"; @@ -10823,7 +11985,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; } { name = "tonic-prost"; @@ -10902,7 +12064,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "time" "telemetry" "versioned" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "tokio"; @@ -10953,13 +12115,13 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-operator"; packageId = "stackable-operator"; optional = true; - features = [ "time" "telemetry" "versioned" ]; + features = [ "time" "telemetry" "versioned" "webhook" ]; } { name = "yasna"; @@ -10984,8 +12146,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_shared"; authors = [ @@ -11030,7 +12192,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "strum"; @@ -11066,8 +12228,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; libName = "stackable_versioned"; authors = [ @@ -11094,7 +12256,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.7"; + packageId = "snafu 0.8.9"; } { name = "stackable-versioned-macros"; @@ -11110,8 +12272,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "be422046081be2fb9f37dfece660e007273f4e32"; - sha256 = "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -11162,7 +12324,126 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; + } + ]; + + }; + "stackable-webhook" = rec { + crateName = "stackable-webhook"; + version = "0.7.0"; + edition = "2024"; + workspace_member = null; + src = pkgs.fetchgit { + url = "https://github.com/stackabletech/operator-rs.git"; + rev = "5ff7d2ea14a06e9d66ba4410b94cd23e43666d55"; + sha256 = "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d"; + }; + libName = "stackable_webhook"; + authors = [ + "Stackable GmbH " + ]; + dependencies = [ + { + name = "arc-swap"; + packageId = "arc-swap"; + } + { + name = "axum"; + packageId = "axum"; + features = [ "http2" ]; + } + { + name = "futures-util"; + packageId = "futures-util"; + } + { + name = "stackable-telemetry"; + packageId = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1"; + } + { + name = "hyper"; + packageId = "hyper"; + features = [ "full" ]; + } + { + name = "hyper-util"; + packageId = "hyper-util"; + } + { + name = "k8s-openapi"; + packageId = "k8s-openapi"; + usesDefaultFeatures = false; + features = [ "schemars" "v1_34" ]; + } + { + name = "kube"; + packageId = "kube"; + usesDefaultFeatures = false; + features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; + } + { + name = "opentelemetry"; + packageId = "opentelemetry 0.31.0"; + } + { + name = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions 0.31.0"; + } + { + name = "rand"; + packageId = "rand 0.9.2"; + } + { + name = "serde_json"; + packageId = "serde_json"; + } + { + name = "snafu"; + packageId = "snafu 0.8.9"; + } + { + name = "stackable-certs"; + packageId = "stackable-certs"; + features = [ "rustls" ]; + } + { + name = "stackable-shared"; + packageId = "stackable-shared"; + } + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" "fs" ]; + } + { + name = "tokio-rustls"; + packageId = "tokio-rustls"; + usesDefaultFeatures = false; + features = [ "ring" "logging" "tls12" ]; + } + { + name = "tower"; + packageId = "tower"; + features = [ "util" ]; + } + { + name = "tower-http"; + packageId = "tower-http"; + features = [ "trace" ]; + } + { + name = "tracing"; + packageId = "tracing"; + } + { + name = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry 0.32.0"; + } + { + name = "x509-cert"; + packageId = "x509-cert"; + features = [ "builder" ]; } ]; @@ -11225,7 +12506,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "parsing" ]; } ]; @@ -11243,6 +12524,7 @@ rec { features = { "default" = [ "std" "i128" ]; }; + resolvedDefaultFeatures = [ "i128" ]; }; "syn 1.0.109" = rec { crateName = "syn"; @@ -11278,11 +12560,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" ]; }; - "syn 2.0.106" = rec { + "syn 2.0.107" = rec { crateName = "syn"; - version = "2.0.106"; + version = "2.0.107"; edition = "2021"; - sha256 = "19mddxp1ia00hfdzimygqmr1jqdvyl86k48427bkci4d08wc9rzd"; + sha256 = "06q8dmpafa19i1pqk9y5jhw0gz2nms6h2306xwhisig56kcxn9ia"; authors = [ "David Tolnay " ]; @@ -11354,7 +12636,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; } @@ -11404,9 +12686,9 @@ rec { }; "tempfile" = rec { crateName = "tempfile"; - version = "3.21.0"; + version = "3.23.0"; edition = "2021"; - sha256 = "07kx58ibjk3ydq1gcb7q637fs5zkxaa550lxckhgg9p3427izdhm"; + sha256 = "05igl2gml6z6i2va1bv49f9f1wb3f752c2i63lvlb9s2vxxwfc9d"; authors = [ "Steven Allen " "The Rust Project Developers" @@ -11420,7 +12702,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; usesDefaultFeatures = false; target = { target, features }: ((target."unix" or false) || (target."windows" or false) || ("wasi" == target."os" or null)); @@ -11439,7 +12721,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Storage_FileSystem" "Win32_Foundation" ]; } @@ -11466,18 +12748,18 @@ rec { ]; }; - "thiserror 2.0.16" = rec { + "thiserror 2.0.17" = rec { crateName = "thiserror"; - version = "2.0.16"; + version = "2.0.17"; edition = "2021"; - sha256 = "1h30bqyjn5s9ypm668yd9849371rzwk185klwgjg503k2hadcrrl"; + sha256 = "1j2gixhm2c3s6g96vd0b01v0i0qz1101vfmw0032mdqj1z58fdgn"; authors = [ "David Tolnay " ]; dependencies = [ { name = "thiserror-impl"; - packageId = "thiserror-impl 2.0.16"; + packageId = "thiserror-impl 2.0.17"; } ]; features = { @@ -11506,16 +12788,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; }; - "thiserror-impl 2.0.16" = rec { + "thiserror-impl 2.0.17" = rec { crateName = "thiserror-impl"; - version = "2.0.16"; + version = "2.0.17"; edition = "2021"; - sha256 = "0q3r1ipr1rhff6cgrcvc0njffw17rpcqz9hdc7p754cbqkhinpkc"; + sha256 = "04y92yjwg1a4piwk9nayzjfs07sps8c4vq9jnsfq9qvxrn75rw9z"; procMacro = true; libName = "thiserror_impl"; authors = [ @@ -11532,7 +12814,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; @@ -11556,9 +12838,9 @@ rec { }; "time" = rec { crateName = "time"; - version = "0.3.41"; + version = "0.3.44"; edition = "2021"; - sha256 = "0h0cpiyya8cjlrh00d2r72bmgg4lsdcncs76qpwy0rn2kghijxla"; + sha256 = "179awlwb36zly3nmz5h9awai1h4pbf1d83g2pmvlw4v1pgixkrwi"; authors = [ "Jacob Pratt " "Time contributors" @@ -11567,7 +12849,6 @@ rec { { name = "deranged"; packageId = "deranged"; - usesDefaultFeatures = false; features = [ "powerfmt" ]; } { @@ -11625,20 +12906,22 @@ rec { "macros" = [ "dep:time-macros" ]; "parsing" = [ "time-macros?/parsing" ]; "quickcheck" = [ "dep:quickcheck" "alloc" "deranged/quickcheck" ]; - "rand" = [ "dep:rand" "deranged/rand" ]; + "rand" = [ "rand08" "rand09" ]; + "rand08" = [ "dep:rand08" "deranged/rand08" ]; + "rand09" = [ "dep:rand09" "deranged/rand09" ]; "serde" = [ "dep:serde" "time-macros?/serde" "deranged/serde" ]; "serde-human-readable" = [ "serde" "formatting" "parsing" ]; "serde-well-known" = [ "serde" "formatting" "parsing" ]; - "std" = [ "alloc" "deranged/std" ]; + "std" = [ "alloc" ]; "wasm-bindgen" = [ "dep:js-sys" ]; }; resolvedDefaultFeatures = [ "alloc" "default" "formatting" "parsing" "std" ]; }; "time-core" = rec { crateName = "time-core"; - version = "0.1.4"; + version = "0.1.6"; edition = "2021"; - sha256 = "0z5h9fknvdvbs2k2s1chpi3ab3jvgkfhdnqwrvixjngm263s7sf9"; + sha256 = "0sqwhg7n47gbffyr0zhipqcnskxgcgzz1ix8wirqs2rg3my8x1j0"; libName = "time_core"; authors = [ "Jacob Pratt " @@ -11648,9 +12931,9 @@ rec { }; "time-macros" = rec { crateName = "time-macros"; - version = "0.2.22"; + version = "0.2.24"; edition = "2021"; - sha256 = "0jcaxpw220han2bzbrdlpqhy1s5k9i8ri3lw6n5zv4zcja9p69im"; + sha256 = "1wzb6hnl35856f58cx259q7ijc4c7yis0qsnydvw5n8jbw9b1krh"; procMacro = true; libName = "time_macros"; authors = [ @@ -11701,35 +12984,87 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "zerovec" ]; }; + "tls_codec" = rec { + crateName = "tls_codec"; + version = "0.4.2"; + edition = "2021"; + sha256 = "0sxzj0pdinn7fsc8aihqgfylsqi7z9jca0aqy3b8kfz28l9f1qhd"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "tls_codec_derive"; + packageId = "tls_codec_derive"; + optional = true; + } + { + name = "zeroize"; + packageId = "zeroize"; + usesDefaultFeatures = false; + features = [ "alloc" "zeroize_derive" ]; + } + ]; + features = { + "arbitrary" = [ "std" "dep:arbitrary" ]; + "conditional_deserialization" = [ "derive" "tls_codec_derive/conditional_deserialization" ]; + "default" = [ "std" ]; + "derive" = [ "tls_codec_derive" ]; + "serde" = [ "std" "dep:serde" ]; + "std" = [ "tls_codec_derive?/std" ]; + "tls_codec_derive" = [ "dep:tls_codec_derive" ]; + }; + resolvedDefaultFeatures = [ "derive" "std" "tls_codec_derive" ]; + }; + "tls_codec_derive" = rec { + crateName = "tls_codec_derive"; + version = "0.4.2"; + edition = "2021"; + sha256 = "1gglj5cxkpv7i3jazffksrfy5h5242kdvsqawjm2yh1915lpcbid"; + procMacro = true; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.107"; + features = [ "parsing" ]; + } + ]; + features = { + "conditional_deserialization" = [ "syn/full" ]; + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "tokio" = rec { crateName = "tokio"; - version = "1.47.1"; + version = "1.48.0"; edition = "2021"; - sha256 = "0f2hp5v3payg6x04ijj67si1wsdhksskhmjs2k9p5f7bmpyrmr49"; + sha256 = "0244qva5pksy8gam6llf7bd6wbk2vkab9lx26yyf08dix810wdpz"; authors = [ "Tokio Contributors " ]; dependencies = [ - { - name = "backtrace"; - packageId = "backtrace"; - target = { target, features }: (target."tokio_taskdump" or false); - } { name = "bytes"; packageId = "bytes"; optional = true; } - { - name = "io-uring"; - packageId = "io-uring"; - usesDefaultFeatures = false; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); - } { name = "libc"; packageId = "libc"; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + optional = true; + target = { target, features }: ((target."tokio_unstable" or false) && ("linux" == target."os" or null)); } { name = "libc"; @@ -11746,8 +13081,9 @@ rec { { name = "mio"; packageId = "mio"; + optional = true; usesDefaultFeatures = false; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + target = { target, features }: ((target."tokio_unstable" or false) && ("linux" == target."os" or null)); features = [ "os-poll" "os-ext" ]; } { @@ -11765,11 +13101,6 @@ rec { optional = true; target = { target, features }: (target."unix" or false); } - { - name = "slab"; - packageId = "slab"; - target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); - } { name = "socket2"; packageId = "socket2"; @@ -11784,7 +13115,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; optional = true; target = { target, features }: (target."windows" or false); } @@ -11802,7 +13133,7 @@ rec { } { name = "windows-sys"; - packageId = "windows-sys 0.59.0"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Security_Authorization" ]; } @@ -11810,6 +13141,7 @@ rec { features = { "bytes" = [ "dep:bytes" ]; "full" = [ "fs" "io-util" "io-std" "macros" "net" "parking_lot" "process" "rt" "rt-multi-thread" "signal" "sync" "time" ]; + "io-uring" = [ "dep:io-uring" "libc" "mio/os-poll" "mio/os-ext" "dep:slab" ]; "io-util" = [ "bytes" ]; "libc" = [ "dep:libc" ]; "macros" = [ "tokio-macros" ]; @@ -11821,6 +13153,7 @@ rec { "signal" = [ "libc" "mio/os-poll" "mio/net" "mio/os-ext" "signal-hook-registry" "windows-sys/Win32_Foundation" "windows-sys/Win32_System_Console" ]; "signal-hook-registry" = [ "dep:signal-hook-registry" ]; "socket2" = [ "dep:socket2" ]; + "taskdump" = [ "dep:backtrace" ]; "test-util" = [ "rt" "sync" "time" ]; "tokio-macros" = [ "dep:tokio-macros" ]; "tracing" = [ "dep:tracing" ]; @@ -11830,9 +13163,9 @@ rec { }; "tokio-macros" = rec { crateName = "tokio-macros"; - version = "2.5.0"; + version = "2.6.0"; edition = "2021"; - sha256 = "1f6az2xbvqp7am417b78d1za8axbvjvxnmkakz9vr8s52czx81kf"; + sha256 = "19czvgliginbzyhhfbmj77wazqn2y8g27y2nirfajdlm41bphh5g"; procMacro = true; libName = "tokio_macros"; authors = [ @@ -11849,7 +13182,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -11887,9 +13220,9 @@ rec { }; "tokio-rustls" = rec { crateName = "tokio-rustls"; - version = "0.26.2"; + version = "0.26.4"; edition = "2021"; - sha256 = "16wf007q3584j46wc4s0zc4szj6280g23hka6x6bgs50l4v7nwlf"; + sha256 = "0qggwknz9w4bbsv1z158hlnpkm97j3w8v31586jipn99byaala8p"; libName = "tokio_rustls"; dependencies = [ { @@ -11913,13 +13246,15 @@ rec { features = { "aws-lc-rs" = [ "aws_lc_rs" ]; "aws_lc_rs" = [ "rustls/aws_lc_rs" ]; + "brotli" = [ "rustls/brotli" ]; "default" = [ "logging" "tls12" "aws_lc_rs" ]; "fips" = [ "rustls/fips" ]; "logging" = [ "rustls/logging" ]; "ring" = [ "rustls/ring" ]; "tls12" = [ "rustls/tls12" ]; + "zlib" = [ "rustls/zlib" ]; }; - resolvedDefaultFeatures = [ "logging" "tls12" ]; + resolvedDefaultFeatures = [ "logging" "ring" "tls12" ]; }; "tokio-stream" = rec { crateName = "tokio-stream"; @@ -12158,11 +13493,11 @@ rec { }; resolvedDefaultFeatures = [ "channel" "codegen" "gzip" "prost" ]; }; - "tonic 0.14.1" = rec { + "tonic 0.14.2" = rec { crateName = "tonic"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0h1af8kcwzaxyyr6vdnc0fm8i5gpddsa8qy0rs59d85d4y35mb37"; + sha256 = "00vjbvccmyzjbi0j0ydi1l8psd0lb1nb4p8qzrdxzxz9ihc16xpb"; authors = [ "Lucio Franco " ]; @@ -12286,7 +13621,7 @@ rec { } ]; features = { - "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; + "_tls-any" = [ "dep:tokio" "tokio?/rt" "tokio?/macros" "tls-connect-info" ]; "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/load-shed" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; "codegen" = [ "dep:async-trait" ]; "default" = [ "router" "transport" "codegen" ]; @@ -12295,6 +13630,7 @@ rec { "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" "tower?/load-shed" ]; "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; + "tls-connect-info" = [ "dep:tokio-rustls" ]; "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; @@ -12305,9 +13641,9 @@ rec { }; "tonic-build" = rec { crateName = "tonic-build"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0pg26f4ylhv9ayp3rbg8baii1gzadl26vqq76y1k1gm3pgc27qs9"; + sha256 = "1qwx0hvddld5rz4ln947x0ihs0qkvhd13g1fv0nczv7rr76alh2c"; libName = "tonic_build"; authors = [ "Lucio Franco " @@ -12327,7 +13663,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } ]; features = { @@ -12337,9 +13673,9 @@ rec { }; "tonic-prost" = rec { crateName = "tonic-prost"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0zf8n691rr6g6xaf4g7x0n8kpkva8ij09l6mnw9cnh3dm6wi3idr"; + sha256 = "0rxamvbxxl7x673g97pvhr5gag2czrj3sjq2xy3js9g1djnm1gb6"; libName = "tonic_prost"; authors = [ "Lucio Franco " @@ -12355,7 +13691,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; } ]; @@ -12363,9 +13699,9 @@ rec { }; "tonic-prost-build" = rec { crateName = "tonic-prost-build"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "18ggfll4v3mh6g4z3xssd97cmkk08jbqqjqc8hsy258vs3y9iwlf"; + sha256 = "18jqs18s9imj5b78vjhqpm6ccm61qns9cgyb7zs3zp2382x6r8dl"; libName = "tonic_prost_build"; authors = [ "Lucio Franco " @@ -12393,7 +13729,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; } { name = "tempfile"; @@ -12414,9 +13750,9 @@ rec { }; "tonic-reflection" = rec { crateName = "tonic-reflection"; - version = "0.14.1"; + version = "0.14.2"; edition = "2021"; - sha256 = "0flaxmpryxlalhkcg0kl6sia18sn335jmlcpc6cr9kc56c3s0rq2"; + sha256 = "0yzdhv9inp4x51p8axnz3w4nnhhblyc1zw3gn5nxd0bm73l57nil"; libName = "tonic_reflection"; authors = [ "James Nugent " @@ -12446,7 +13782,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "codegen" ]; } @@ -12465,7 +13801,7 @@ rec { } { name = "tonic"; - packageId = "tonic 0.14.1"; + packageId = "tonic 0.14.2"; usesDefaultFeatures = false; features = [ "transport" ]; } @@ -12855,7 +14191,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -13060,7 +14396,7 @@ rec { } { name = "thiserror"; - packageId = "thiserror 2.0.16"; + packageId = "thiserror 2.0.17"; usesDefaultFeatures = false; } { @@ -13285,9 +14621,9 @@ rec { }; "typenum" = rec { crateName = "typenum"; - version = "1.18.0"; + version = "1.19.0"; edition = "2018"; - sha256 = "0gwgz8n91pv40gabrr1lzji0b0hsmg0817njpy397bq7rvizzk0x"; + sha256 = "1fw2mpbn2vmqan56j1b3fbpcdg80mz26fm53fs16bq5xcq84hban"; authors = [ "Paho Lurie-Gregg " "Andre Bogus " @@ -13324,9 +14660,9 @@ rec { }; "unicode-ident" = rec { crateName = "unicode-ident"; - version = "1.0.18"; + version = "1.0.20"; edition = "2018"; - sha256 = "04k5r6sijkafzljykdq26mhjpmhdx4jwzvn1lh90g9ax9903jpss"; + sha256 = "01lafj17xwizrlvn006zz8ip99hqisf77kjk0a8flfmpmrsynbj6"; libName = "unicode_ident"; authors = [ "David Tolnay " @@ -13457,9 +14793,9 @@ rec { }; "uuid" = rec { crateName = "uuid"; - version = "1.18.0"; + version = "1.18.1"; edition = "2018"; - sha256 = "1gn1vlggiwrdpizqcpc5hyxsqz9s5215bbay1b182mqn7rj9ccgk"; + sha256 = "18kh01qmfayn4psap52x8xdjkzw2q8bcbpnhhxjs05dr22mbi1rg"; authors = [ "Ashley Mannix" "Dylan DPC" @@ -13468,7 +14804,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.3"; + packageId = "getrandom 0.3.4"; optional = true; target = { target, features }: (!(("wasm32" == target."arch" or null) && (("unknown" == target."os" or null) || ("none" == target."os" or null)))); } @@ -13593,7 +14929,7 @@ rec { ]; }; - "wasi 0.11.1+wasi-snapshot-preview1" = rec { + "wasi" = rec { crateName = "wasi"; version = "0.11.1+wasi-snapshot-preview1"; edition = "2018"; @@ -13609,34 +14945,31 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "wasi 0.14.2+wasi-0.2.4" = rec { - crateName = "wasi"; - version = "0.14.2+wasi-0.2.4"; + "wasip2" = rec { + crateName = "wasip2"; + version = "1.0.1+wasi-0.2.4"; edition = "2021"; - sha256 = "1cwcqjr3dgdq8j325awgk8a715h0hg0f7jqzsb077n4qm6jzk0wn"; - authors = [ - "The Cranelift Project Developers" - ]; + sha256 = "1rsqmpspwy0zja82xx7kbkbg9fv34a4a2if3sbd76dy64a244qh5"; dependencies = [ { - name = "wit-bindgen-rt"; - packageId = "wit-bindgen-rt"; - features = [ "bitflags" ]; + name = "wit-bindgen"; + packageId = "wit-bindgen"; + usesDefaultFeatures = false; } ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; + "alloc" = [ "dep:alloc" ]; + "bitflags" = [ "wit-bindgen/bitflags" ]; "core" = [ "dep:core" ]; - "default" = [ "std" ]; - "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; - "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ]; + "default" = [ "std" "bitflags" ]; + "rustc-dep-of-std" = [ "core" "alloc" "wit-bindgen/rustc-dep-of-std" ]; }; }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.100"; + version = "0.2.104"; edition = "2021"; - sha256 = "1x8ymcm6yi3i1rwj78myl1agqv2m86i648myy3lc97s9swlqkp0y"; + sha256 = "0b8f4l6pqm0bz0lj5xgwmchb6977n71vmh7srd0axwg93b011nn1"; libName = "wasm_bindgen"; authors = [ "The wasm-bindgen Developers" @@ -13651,15 +14984,21 @@ rec { packageId = "once_cell"; usesDefaultFeatures = false; } - { - name = "rustversion"; - packageId = "rustversion"; - optional = true; - } { name = "wasm-bindgen-macro"; packageId = "wasm-bindgen-macro"; } + { + name = "wasm-bindgen-shared"; + packageId = "wasm-bindgen-shared"; + } + ]; + buildDependencies = [ + { + name = "rustversion"; + packageId = "rustversion"; + rename = "rustversion-compat"; + } ]; devDependencies = [ { @@ -13668,23 +15007,20 @@ rec { } ]; features = { - "default" = [ "std" "msrv" ]; + "default" = [ "std" ]; "enable-interning" = [ "std" ]; - "msrv" = [ "rustversion" ]; - "rustversion" = [ "dep:rustversion" ]; "serde" = [ "dep:serde" ]; "serde-serialize" = [ "serde" "serde_json" "std" ]; "serde_json" = [ "dep:serde_json" ]; "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; - "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ]; }; - resolvedDefaultFeatures = [ "default" "msrv" "rustversion" "std" ]; + resolvedDefaultFeatures = [ "default" "msrv" "std" ]; }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; - version = "0.2.100"; + version = "0.2.104"; edition = "2021"; - sha256 = "1ihbf1hq3y81c4md9lyh6lcwbx6a5j0fw4fygd423g62lm8hc2ig"; + sha256 = "069vnhhn2j4w2gwd8rch6g8d3iwkrgi45fas6i3qm7glcrd9l737"; libName = "wasm_bindgen_backend"; authors = [ "The wasm-bindgen Developers" @@ -13708,7 +15044,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } { @@ -13722,9 +15058,9 @@ rec { }; "wasm-bindgen-futures" = rec { crateName = "wasm-bindgen-futures"; - version = "0.4.50"; + version = "0.4.54"; edition = "2021"; - sha256 = "0q8ymi6i9r3vxly551dhxcyai7nc491mspj0j1wbafxwq074fpam"; + sha256 = "0p5c10vfd7p7c607x3cgyfw9h77z1k33d6zzw2x77k3qwi0qs0vy"; libName = "wasm_bindgen_futures"; authors = [ "The wasm-bindgen Developers" @@ -13767,9 +15103,9 @@ rec { }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.100"; + version = "0.2.104"; edition = "2021"; - sha256 = "01xls2dvzh38yj17jgrbiib1d3nyad7k2yw9s0mpklwys333zrkz"; + sha256 = "06d1m5bg272h6jabq0snm7c50fifjz6r20f5hqlmz7y5wivh99kw"; procMacro = true; libName = "wasm_bindgen_macro"; authors = [ @@ -13791,9 +15127,9 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.100"; + version = "0.2.104"; edition = "2021"; - sha256 = "1plm8dh20jg2id0320pbmrlsv6cazfv6b6907z19ys4z1jj7xs4a"; + sha256 = "1mr18kx7ima1pmsqlkk982q4a0vf3r8s1x6901jb59sd1prd41wz"; libName = "wasm_bindgen_macro_support"; authors = [ "The wasm-bindgen Developers" @@ -13809,7 +15145,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "visit" "visit-mut" "full" ]; } { @@ -13827,10 +15163,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.100"; + version = "0.2.104"; edition = "2021"; links = "wasm_bindgen"; - sha256 = "0gffxvqgbh9r9xl36gprkfnh3w9gl8wgia6xrin7v11sjcxxf18s"; + sha256 = "1la1xj9v3gmawnlyi7lc3mb3xi447r6frb98hi2fb9m1nb47vmms"; libName = "wasm_bindgen_shared"; authors = [ "The wasm-bindgen Developers" @@ -13845,9 +15181,9 @@ rec { }; "web-sys" = rec { crateName = "web-sys"; - version = "0.3.77"; + version = "0.3.81"; edition = "2021"; - sha256 = "1lnmc1ffbq34qw91nndklqqm75rasaffj2g4f8h1yvqqz4pdvdik"; + sha256 = "0871ifd79ni9813sp5amk7wb3avznkijlsly2ap4r9r4m4bw8rwk"; libName = "web_sys"; authors = [ "The wasm-bindgen Developers" @@ -13962,6 +15298,7 @@ rec { "FontFaceSetLoadEvent" = [ "Event" ]; "GainNode" = [ "AudioNode" "EventTarget" ]; "GamepadEvent" = [ "Event" ]; + "GestureEvent" = [ "Event" "UiEvent" ]; "GpuDevice" = [ "EventTarget" ]; "GpuInternalError" = [ "GpuError" ]; "GpuOutOfMemoryError" = [ "GpuError" ]; @@ -14116,6 +15453,8 @@ rec { "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ]; "PerformanceResourceTiming" = [ "PerformanceEntry" ]; "PermissionStatus" = [ "EventTarget" ]; + "PictureInPictureEvent" = [ "Event" ]; + "PictureInPictureWindow" = [ "EventTarget" ]; "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ]; "PopStateEvent" = [ "Event" ]; "PopupBlockedEvent" = [ "Event" ]; @@ -14350,9 +15689,9 @@ rec { }; "winapi-util" = rec { crateName = "winapi-util"; - version = "0.1.10"; + version = "0.1.11"; edition = "2021"; - sha256 = "08hb8rj3aq9lcrfmliqs4l7v9zh6srbcn0376yn0pndkf5qvyy09"; + sha256 = "08hdl7mkll7pz8whg869h58c1r9y7in0w0pk8fm24qc77k0b39y2"; libName = "winapi_util"; authors = [ "Andrew Gallant " @@ -14360,7 +15699,7 @@ rec { dependencies = [ { name = "windows-sys"; - packageId = "windows-sys 0.60.2"; + packageId = "windows-sys 0.61.2"; target = { target, features }: (target."windows" or false); features = [ "Win32_Foundation" "Win32_Storage_FileSystem" "Win32_System_Console" "Win32_System_SystemInformation" ]; } @@ -14383,7 +15722,7 @@ rec { } { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { @@ -14393,7 +15732,7 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } { @@ -15107,7 +16446,7 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } ]; @@ -15115,7 +16454,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-core" = rec { + "windows-core 0.61.2" = rec { crateName = "windows-core"; version = "0.61.2"; edition = "2021"; @@ -15137,17 +16476,56 @@ rec { } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; + usesDefaultFeatures = false; + } + { + name = "windows-result"; + packageId = "windows-result 0.3.4"; + usesDefaultFeatures = false; + } + { + name = "windows-strings"; + packageId = "windows-strings 0.4.2"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + "std" = [ "windows-result/std" "windows-strings/std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-core 0.62.2" = rec { + crateName = "windows-core"; + version = "0.62.2"; + edition = "2021"; + sha256 = "1swxpv1a8qvn3bkxv8cn663238h2jccq35ff3nsj61jdsca3ms5q"; + libName = "windows_core"; + dependencies = [ + { + name = "windows-implement"; + packageId = "windows-implement"; + usesDefaultFeatures = false; + } + { + name = "windows-interface"; + packageId = "windows-interface"; + usesDefaultFeatures = false; + } + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; } { name = "windows-result"; - packageId = "windows-result"; + packageId = "windows-result 0.4.1"; usesDefaultFeatures = false; } { name = "windows-strings"; - packageId = "windows-strings"; + packageId = "windows-strings 0.5.1"; usesDefaultFeatures = false; } ]; @@ -15166,12 +16544,12 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } { @@ -15186,14 +16564,11 @@ rec { }; "windows-implement" = rec { crateName = "windows-implement"; - version = "0.60.0"; + version = "0.60.2"; edition = "2021"; - sha256 = "0dm88k3hlaax85xkls4gf597ar4z8m5vzjjagzk910ph7b8xszx4"; + sha256 = "1psxhmklzcf3wjs4b8qb42qb6znvc142cb5pa74rsyxm1822wgh5"; procMacro = true; libName = "windows_implement"; - authors = [ - "Microsoft" - ]; dependencies = [ { name = "proc-macro2"; @@ -15207,7 +16582,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -15216,14 +16591,11 @@ rec { }; "windows-interface" = rec { crateName = "windows-interface"; - version = "0.59.1"; + version = "0.59.3"; edition = "2021"; - sha256 = "1a4zr8740gyzzhq02xgl6vx8l669jwfby57xgf0zmkcdkyv134mx"; + sha256 = "0n73cwrn4247d0axrk7gjp08p34x1723483jxjxjdfkh4m56qc9z"; procMacro = true; libName = "windows_interface"; - authors = [ - "Microsoft" - ]; dependencies = [ { name = "proc-macro2"; @@ -15237,14 +16609,14 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } ]; }; - "windows-link" = rec { + "windows-link 0.1.3" = rec { crateName = "windows-link"; version = "0.1.3"; edition = "2021"; @@ -15254,6 +16626,14 @@ rec { "Microsoft" ]; + }; + "windows-link 0.2.1" = rec { + crateName = "windows-link"; + version = "0.2.1"; + edition = "2021"; + sha256 = "1rag186yfr3xx7piv5rg8b6im2dwcf8zldiflvb22xbzwli5507h"; + libName = "windows_link"; + }; "windows-numerics" = rec { crateName = "windows-numerics"; @@ -15264,12 +16644,12 @@ rec { dependencies = [ { name = "windows-core"; - packageId = "windows-core"; + packageId = "windows-core 0.61.2"; usesDefaultFeatures = false; } { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; @@ -15277,7 +16657,7 @@ rec { "default" = [ "std" ]; }; }; - "windows-result" = rec { + "windows-result 0.3.4" = rec { crateName = "windows-result"; version = "0.3.4"; edition = "2021"; @@ -15289,7 +16669,25 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-result 0.4.1" = rec { + crateName = "windows-result"; + version = "0.4.1"; + edition = "2021"; + sha256 = "1d9yhmrmmfqh56zlj751s5wfm9a2aa7az9rd7nn5027nxa4zm0bp"; + libName = "windows_result"; + dependencies = [ + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; } ]; @@ -15298,7 +16696,7 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "windows-strings" = rec { + "windows-strings 0.4.2" = rec { crateName = "windows-strings"; version = "0.4.2"; edition = "2021"; @@ -15310,7 +16708,25 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; + usesDefaultFeatures = false; + } + ]; + features = { + "default" = [ "std" ]; + }; + resolvedDefaultFeatures = [ "std" ]; + }; + "windows-strings 0.5.1" = rec { + crateName = "windows-strings"; + version = "0.5.1"; + edition = "2021"; + sha256 = "14bhng9jqv4fyl7lqjz3az7vzh8pw0w4am49fsqgcz67d67x0dvq"; + libName = "windows_strings"; + dependencies = [ + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; } ]; @@ -15565,7 +16981,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Threading" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Threading" "default" ]; }; "windows-sys 0.59.0" = rec { crateName = "windows-sys"; @@ -15824,7 +17240,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_System" "Win32_System_Com" "Win32_UI" "Win32_UI_Shell" "default" ]; }; "windows-sys 0.60.2" = rec { crateName = "windows-sys"; @@ -15838,7 +17254,7 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.53.3"; + packageId = "windows-targets 0.53.5"; usesDefaultFeatures = false; } ]; @@ -16089,115 +17505,374 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_SystemInformation" "default" ]; - }; - "windows-targets 0.52.6" = rec { - crateName = "windows-targets"; - version = "0.52.6"; - edition = "2021"; - sha256 = "0wwrx625nwlfp7k93r2rra568gad1mwd888h1jwnl0vfg5r4ywlv"; - libName = "windows_targets"; - authors = [ - "Microsoft" - ]; - dependencies = [ - { - name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.52.6"; - target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); - } - { - name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.52.6"; - target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.52.6"; - target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.52.6"; - target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); - } - { - name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.52.6"; - target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.52.6"; - target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.52.6"; - target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); - } - { - name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.52.6"; - target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - ]; - + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; - "windows-targets 0.53.3" = rec { - crateName = "windows-targets"; - version = "0.53.3"; + "windows-sys 0.61.2" = rec { + crateName = "windows-sys"; + version = "0.61.2"; edition = "2021"; - sha256 = "14fwwm136dhs3i1impqrrip7nvkra3bdxa4nqkblj604qhqn1znm"; - libName = "windows_targets"; - authors = [ - "Microsoft" - ]; + sha256 = "1z7k3y9b6b5h52kid57lvmvm05362zv1v8w0gc7xyv5xphlp44xf"; + libName = "windows_sys"; dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.2.1"; usesDefaultFeatures = false; - target = { target, features }: (target."windows_raw_dylib" or false); - } - { - name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.53.0"; - target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); - } - { - name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.53.0"; - target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.53.0"; - target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.53.0"; - target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); - } - { - name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.53.0"; - target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } - { - name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.53.0"; + ]; + features = { + "Wdk" = [ "Win32_Foundation" ]; + "Wdk_Devices" = [ "Wdk" ]; + "Wdk_Devices_Bluetooth" = [ "Wdk_Devices" ]; + "Wdk_Devices_HumanInterfaceDevice" = [ "Wdk_Devices" ]; + "Wdk_Foundation" = [ "Wdk" ]; + "Wdk_Graphics" = [ "Wdk" ]; + "Wdk_Graphics_Direct3D" = [ "Wdk_Graphics" ]; + "Wdk_NetworkManagement" = [ "Wdk" ]; + "Wdk_NetworkManagement_Ndis" = [ "Wdk_NetworkManagement" ]; + "Wdk_NetworkManagement_WindowsFilteringPlatform" = [ "Wdk_NetworkManagement" ]; + "Wdk_Storage" = [ "Wdk" ]; + "Wdk_Storage_FileSystem" = [ "Wdk_Storage" ]; + "Wdk_Storage_FileSystem_Minifilters" = [ "Wdk_Storage_FileSystem" ]; + "Wdk_System" = [ "Wdk" ]; + "Wdk_System_IO" = [ "Wdk_System" ]; + "Wdk_System_Memory" = [ "Wdk_System" ]; + "Wdk_System_OfflineRegistry" = [ "Wdk_System" ]; + "Wdk_System_Registry" = [ "Wdk_System" ]; + "Wdk_System_SystemInformation" = [ "Wdk_System" ]; + "Wdk_System_SystemServices" = [ "Wdk_System" ]; + "Wdk_System_Threading" = [ "Wdk_System" ]; + "Win32" = [ "Win32_Foundation" ]; + "Win32_Data" = [ "Win32" ]; + "Win32_Data_HtmlHelp" = [ "Win32_Data" ]; + "Win32_Data_RightsManagement" = [ "Win32_Data" ]; + "Win32_Devices" = [ "Win32" ]; + "Win32_Devices_AllJoyn" = [ "Win32_Devices" ]; + "Win32_Devices_Beep" = [ "Win32_Devices" ]; + "Win32_Devices_BiometricFramework" = [ "Win32_Devices" ]; + "Win32_Devices_Bluetooth" = [ "Win32_Devices" ]; + "Win32_Devices_Cdrom" = [ "Win32_Devices" ]; + "Win32_Devices_Communication" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceAndDriverInstallation" = [ "Win32_Devices" ]; + "Win32_Devices_DeviceQuery" = [ "Win32_Devices" ]; + "Win32_Devices_Display" = [ "Win32_Devices" ]; + "Win32_Devices_Dvd" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration" = [ "Win32_Devices" ]; + "Win32_Devices_Enumeration_Pnp" = [ "Win32_Devices_Enumeration" ]; + "Win32_Devices_Fax" = [ "Win32_Devices" ]; + "Win32_Devices_HumanInterfaceDevice" = [ "Win32_Devices" ]; + "Win32_Devices_Nfc" = [ "Win32_Devices" ]; + "Win32_Devices_Nfp" = [ "Win32_Devices" ]; + "Win32_Devices_PortableDevices" = [ "Win32_Devices" ]; + "Win32_Devices_Properties" = [ "Win32_Devices" ]; + "Win32_Devices_Pwm" = [ "Win32_Devices" ]; + "Win32_Devices_Sensors" = [ "Win32_Devices" ]; + "Win32_Devices_SerialCommunication" = [ "Win32_Devices" ]; + "Win32_Devices_Tapi" = [ "Win32_Devices" ]; + "Win32_Devices_Usb" = [ "Win32_Devices" ]; + "Win32_Devices_WebServicesOnDevices" = [ "Win32_Devices" ]; + "Win32_Foundation" = [ "Win32" ]; + "Win32_Gaming" = [ "Win32" ]; + "Win32_Globalization" = [ "Win32" ]; + "Win32_Graphics" = [ "Win32" ]; + "Win32_Graphics_Dwm" = [ "Win32_Graphics" ]; + "Win32_Graphics_Gdi" = [ "Win32_Graphics" ]; + "Win32_Graphics_GdiPlus" = [ "Win32_Graphics" ]; + "Win32_Graphics_Hlsl" = [ "Win32_Graphics" ]; + "Win32_Graphics_OpenGL" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing" = [ "Win32_Graphics" ]; + "Win32_Graphics_Printing_PrintTicket" = [ "Win32_Graphics_Printing" ]; + "Win32_Management" = [ "Win32" ]; + "Win32_Management_MobileDeviceManagementRegistration" = [ "Win32_Management" ]; + "Win32_Media" = [ "Win32" ]; + "Win32_Media_Audio" = [ "Win32_Media" ]; + "Win32_Media_DxMediaObjects" = [ "Win32_Media" ]; + "Win32_Media_KernelStreaming" = [ "Win32_Media" ]; + "Win32_Media_Multimedia" = [ "Win32_Media" ]; + "Win32_Media_Streaming" = [ "Win32_Media" ]; + "Win32_Media_WindowsMediaFormat" = [ "Win32_Media" ]; + "Win32_NetworkManagement" = [ "Win32" ]; + "Win32_NetworkManagement_Dhcp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Dns" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_InternetConnectionWizard" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_IpHelper" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Multicast" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Ndis" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetBios" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetManagement" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetShell" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_NetworkDiagnosticsFramework" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_P2P" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_QoS" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Rras" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_Snmp" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WNet" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WebDav" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WiFi" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsConnectionManager" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFilteringPlatform" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsFirewall" = [ "Win32_NetworkManagement" ]; + "Win32_NetworkManagement_WindowsNetworkVirtualization" = [ "Win32_NetworkManagement" ]; + "Win32_Networking" = [ "Win32" ]; + "Win32_Networking_ActiveDirectory" = [ "Win32_Networking" ]; + "Win32_Networking_Clustering" = [ "Win32_Networking" ]; + "Win32_Networking_HttpServer" = [ "Win32_Networking" ]; + "Win32_Networking_Ldap" = [ "Win32_Networking" ]; + "Win32_Networking_WebSocket" = [ "Win32_Networking" ]; + "Win32_Networking_WinHttp" = [ "Win32_Networking" ]; + "Win32_Networking_WinInet" = [ "Win32_Networking" ]; + "Win32_Networking_WinSock" = [ "Win32_Networking" ]; + "Win32_Networking_WindowsWebServices" = [ "Win32_Networking" ]; + "Win32_Security" = [ "Win32" ]; + "Win32_Security_AppLocker" = [ "Win32_Security" ]; + "Win32_Security_Authentication" = [ "Win32_Security" ]; + "Win32_Security_Authentication_Identity" = [ "Win32_Security_Authentication" ]; + "Win32_Security_Authorization" = [ "Win32_Security" ]; + "Win32_Security_Credentials" = [ "Win32_Security" ]; + "Win32_Security_Cryptography" = [ "Win32_Security" ]; + "Win32_Security_Cryptography_Catalog" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Certificates" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_Sip" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_Cryptography_UI" = [ "Win32_Security_Cryptography" ]; + "Win32_Security_DiagnosticDataQuery" = [ "Win32_Security" ]; + "Win32_Security_DirectoryServices" = [ "Win32_Security" ]; + "Win32_Security_EnterpriseData" = [ "Win32_Security" ]; + "Win32_Security_ExtensibleAuthenticationProtocol" = [ "Win32_Security" ]; + "Win32_Security_Isolation" = [ "Win32_Security" ]; + "Win32_Security_LicenseProtection" = [ "Win32_Security" ]; + "Win32_Security_NetworkAccessProtection" = [ "Win32_Security" ]; + "Win32_Security_WinTrust" = [ "Win32_Security" ]; + "Win32_Security_WinWlx" = [ "Win32_Security" ]; + "Win32_Storage" = [ "Win32" ]; + "Win32_Storage_Cabinets" = [ "Win32_Storage" ]; + "Win32_Storage_CloudFilters" = [ "Win32_Storage" ]; + "Win32_Storage_Compression" = [ "Win32_Storage" ]; + "Win32_Storage_DistributedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_FileHistory" = [ "Win32_Storage" ]; + "Win32_Storage_FileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_Imapi" = [ "Win32_Storage" ]; + "Win32_Storage_IndexServer" = [ "Win32_Storage" ]; + "Win32_Storage_InstallableFileSystems" = [ "Win32_Storage" ]; + "Win32_Storage_IscsiDisc" = [ "Win32_Storage" ]; + "Win32_Storage_Jet" = [ "Win32_Storage" ]; + "Win32_Storage_Nvme" = [ "Win32_Storage" ]; + "Win32_Storage_OfflineFiles" = [ "Win32_Storage" ]; + "Win32_Storage_OperationRecorder" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging" = [ "Win32_Storage" ]; + "Win32_Storage_Packaging_Appx" = [ "Win32_Storage_Packaging" ]; + "Win32_Storage_ProjectedFileSystem" = [ "Win32_Storage" ]; + "Win32_Storage_StructuredStorage" = [ "Win32_Storage" ]; + "Win32_Storage_Vhd" = [ "Win32_Storage" ]; + "Win32_Storage_Xps" = [ "Win32_Storage" ]; + "Win32_System" = [ "Win32" ]; + "Win32_System_AddressBook" = [ "Win32_System" ]; + "Win32_System_Antimalware" = [ "Win32_System" ]; + "Win32_System_ApplicationInstallationAndServicing" = [ "Win32_System" ]; + "Win32_System_ApplicationVerifier" = [ "Win32_System" ]; + "Win32_System_ClrHosting" = [ "Win32_System" ]; + "Win32_System_Com" = [ "Win32_System" ]; + "Win32_System_Com_Marshal" = [ "Win32_System_Com" ]; + "Win32_System_Com_StructuredStorage" = [ "Win32_System_Com" ]; + "Win32_System_Com_Urlmon" = [ "Win32_System_Com" ]; + "Win32_System_ComponentServices" = [ "Win32_System" ]; + "Win32_System_Console" = [ "Win32_System" ]; + "Win32_System_CorrelationVector" = [ "Win32_System" ]; + "Win32_System_DataExchange" = [ "Win32_System" ]; + "Win32_System_DeploymentServices" = [ "Win32_System" ]; + "Win32_System_DeveloperLicensing" = [ "Win32_System" ]; + "Win32_System_Diagnostics" = [ "Win32_System" ]; + "Win32_System_Diagnostics_Ceip" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_Debug_Extensions" = [ "Win32_System_Diagnostics_Debug" ]; + "Win32_System_Diagnostics_Etw" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ProcessSnapshotting" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_ToolHelp" = [ "Win32_System_Diagnostics" ]; + "Win32_System_Diagnostics_TraceLogging" = [ "Win32_System_Diagnostics" ]; + "Win32_System_DistributedTransactionCoordinator" = [ "Win32_System" ]; + "Win32_System_Environment" = [ "Win32_System" ]; + "Win32_System_ErrorReporting" = [ "Win32_System" ]; + "Win32_System_EventCollector" = [ "Win32_System" ]; + "Win32_System_EventLog" = [ "Win32_System" ]; + "Win32_System_EventNotificationService" = [ "Win32_System" ]; + "Win32_System_GroupPolicy" = [ "Win32_System" ]; + "Win32_System_HostCompute" = [ "Win32_System" ]; + "Win32_System_HostComputeNetwork" = [ "Win32_System" ]; + "Win32_System_HostComputeSystem" = [ "Win32_System" ]; + "Win32_System_Hypervisor" = [ "Win32_System" ]; + "Win32_System_IO" = [ "Win32_System" ]; + "Win32_System_Iis" = [ "Win32_System" ]; + "Win32_System_Ioctl" = [ "Win32_System" ]; + "Win32_System_JobObjects" = [ "Win32_System" ]; + "Win32_System_Js" = [ "Win32_System" ]; + "Win32_System_Kernel" = [ "Win32_System" ]; + "Win32_System_LibraryLoader" = [ "Win32_System" ]; + "Win32_System_Mailslots" = [ "Win32_System" ]; + "Win32_System_Mapi" = [ "Win32_System" ]; + "Win32_System_Memory" = [ "Win32_System" ]; + "Win32_System_Memory_NonVolatile" = [ "Win32_System_Memory" ]; + "Win32_System_MessageQueuing" = [ "Win32_System" ]; + "Win32_System_MixedReality" = [ "Win32_System" ]; + "Win32_System_Ole" = [ "Win32_System" ]; + "Win32_System_PasswordManagement" = [ "Win32_System" ]; + "Win32_System_Performance" = [ "Win32_System" ]; + "Win32_System_Performance_HardwareCounterProfiling" = [ "Win32_System_Performance" ]; + "Win32_System_Pipes" = [ "Win32_System" ]; + "Win32_System_Power" = [ "Win32_System" ]; + "Win32_System_ProcessStatus" = [ "Win32_System" ]; + "Win32_System_Recovery" = [ "Win32_System" ]; + "Win32_System_Registry" = [ "Win32_System" ]; + "Win32_System_RemoteDesktop" = [ "Win32_System" ]; + "Win32_System_RemoteManagement" = [ "Win32_System" ]; + "Win32_System_RestartManager" = [ "Win32_System" ]; + "Win32_System_Restore" = [ "Win32_System" ]; + "Win32_System_Rpc" = [ "Win32_System" ]; + "Win32_System_Search" = [ "Win32_System" ]; + "Win32_System_Search_Common" = [ "Win32_System_Search" ]; + "Win32_System_SecurityCenter" = [ "Win32_System" ]; + "Win32_System_Services" = [ "Win32_System" ]; + "Win32_System_SetupAndMigration" = [ "Win32_System" ]; + "Win32_System_Shutdown" = [ "Win32_System" ]; + "Win32_System_StationsAndDesktops" = [ "Win32_System" ]; + "Win32_System_SubsystemForLinux" = [ "Win32_System" ]; + "Win32_System_SystemInformation" = [ "Win32_System" ]; + "Win32_System_SystemServices" = [ "Win32_System" ]; + "Win32_System_Threading" = [ "Win32_System" ]; + "Win32_System_Time" = [ "Win32_System" ]; + "Win32_System_TpmBaseServices" = [ "Win32_System" ]; + "Win32_System_UserAccessLogging" = [ "Win32_System" ]; + "Win32_System_Variant" = [ "Win32_System" ]; + "Win32_System_VirtualDosMachines" = [ "Win32_System" ]; + "Win32_System_WindowsProgramming" = [ "Win32_System" ]; + "Win32_System_Wmi" = [ "Win32_System" ]; + "Win32_UI" = [ "Win32" ]; + "Win32_UI_Accessibility" = [ "Win32_UI" ]; + "Win32_UI_ColorSystem" = [ "Win32_UI" ]; + "Win32_UI_Controls" = [ "Win32_UI" ]; + "Win32_UI_Controls_Dialogs" = [ "Win32_UI_Controls" ]; + "Win32_UI_HiDpi" = [ "Win32_UI" ]; + "Win32_UI_Input" = [ "Win32_UI" ]; + "Win32_UI_Input_Ime" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_KeyboardAndMouse" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Pointer" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_Touch" = [ "Win32_UI_Input" ]; + "Win32_UI_Input_XboxController" = [ "Win32_UI_Input" ]; + "Win32_UI_InteractionContext" = [ "Win32_UI" ]; + "Win32_UI_Magnification" = [ "Win32_UI" ]; + "Win32_UI_Shell" = [ "Win32_UI" ]; + "Win32_UI_Shell_Common" = [ "Win32_UI_Shell" ]; + "Win32_UI_Shell_PropertiesSystem" = [ "Win32_UI_Shell" ]; + "Win32_UI_TabletPC" = [ "Win32_UI" ]; + "Win32_UI_TextServices" = [ "Win32_UI" ]; + "Win32_UI_WindowsAndMessaging" = [ "Win32_UI" ]; + "Win32_Web" = [ "Win32" ]; + "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; + }; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_Diagnostics" "Win32_System_Diagnostics_Debug" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; + }; + "windows-targets 0.52.6" = rec { + crateName = "windows-targets"; + version = "0.52.6"; + edition = "2021"; + sha256 = "0wwrx625nwlfp7k93r2rra568gad1mwd888h1jwnl0vfg5r4ywlv"; + libName = "windows_targets"; + authors = [ + "Microsoft" + ]; + dependencies = [ + { + name = "windows_aarch64_gnullvm"; + packageId = "windows_aarch64_gnullvm 0.52.6"; + target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); + } + { + name = "windows_aarch64_msvc"; + packageId = "windows_aarch64_msvc 0.52.6"; + target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_i686_gnu"; + packageId = "windows_i686_gnu 0.52.6"; + target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_i686_gnullvm"; + packageId = "windows_i686_gnullvm 0.52.6"; + target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); + } + { + name = "windows_i686_msvc"; + packageId = "windows_i686_msvc 0.52.6"; + target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_x86_64_gnu"; + packageId = "windows_x86_64_gnu 0.52.6"; target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.53.0"; + packageId = "windows_x86_64_gnullvm 0.52.6"; target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); } { name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.53.0"; + packageId = "windows_x86_64_msvc 0.52.6"; + target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); + } + ]; + + }; + "windows-targets 0.53.5" = rec { + crateName = "windows-targets"; + version = "0.53.5"; + edition = "2021"; + sha256 = "1wv9j2gv3l6wj3gkw5j1kr6ymb5q6dfc42yvydjhv3mqa7szjia9"; + libName = "windows_targets"; + dependencies = [ + { + name = "windows-link"; + packageId = "windows-link 0.2.1"; + usesDefaultFeatures = false; + target = { target, features }: (target."windows_raw_dylib" or false); + } + { + name = "windows_aarch64_gnullvm"; + packageId = "windows_aarch64_gnullvm 0.53.1"; + target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); + } + { + name = "windows_aarch64_msvc"; + packageId = "windows_aarch64_msvc 0.53.1"; + target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_i686_gnu"; + packageId = "windows_i686_gnu 0.53.1"; + target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_i686_gnullvm"; + packageId = "windows_i686_gnullvm 0.53.1"; + target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); + } + { + name = "windows_i686_msvc"; + packageId = "windows_i686_msvc 0.53.1"; + target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_x86_64_gnu"; + packageId = "windows_x86_64_gnu 0.53.1"; + target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); + } + { + name = "windows_x86_64_gnullvm"; + packageId = "windows_x86_64_gnullvm 0.53.1"; + target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); + } + { + name = "windows_x86_64_msvc"; + packageId = "windows_x86_64_msvc 0.53.1"; target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; @@ -16215,7 +17890,7 @@ rec { dependencies = [ { name = "windows-link"; - packageId = "windows-link"; + packageId = "windows-link 0.1.3"; usesDefaultFeatures = false; } ]; @@ -16231,14 +17906,11 @@ rec { ]; }; - "windows_aarch64_gnullvm 0.53.0" = rec { + "windows_aarch64_gnullvm 0.53.1" = rec { crateName = "windows_aarch64_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0r77pbpbcf8bq4yfwpz2hpq3vns8m0yacpvs2i5cn6fx1pwxbf46"; - authors = [ - "Microsoft" - ]; + sha256 = "0lqvdm510mka9w26vmga7hbkmrw9glzc90l4gya5qbxlm1pl3n59"; }; "windows_aarch64_msvc 0.52.6" = rec { @@ -16251,14 +17923,11 @@ rec { ]; }; - "windows_aarch64_msvc 0.53.0" = rec { + "windows_aarch64_msvc 0.53.1" = rec { crateName = "windows_aarch64_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0v766yqw51pzxxwp203yqy39ijgjamp54hhdbsyqq6x1c8gilrf7"; - authors = [ - "Microsoft" - ]; + sha256 = "01jh2adlwx043rji888b22whx4bm8alrk3khjpik5xn20kl85mxr"; }; "windows_i686_gnu 0.52.6" = rec { @@ -16271,14 +17940,11 @@ rec { ]; }; - "windows_i686_gnu 0.53.0" = rec { + "windows_i686_gnu 0.53.1" = rec { crateName = "windows_i686_gnu"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "1hvjc8nv95sx5vdd79fivn8bpm7i517dqyf4yvsqgwrmkmjngp61"; - authors = [ - "Microsoft" - ]; + sha256 = "18wkcm82ldyg4figcsidzwbg1pqd49jpm98crfz0j7nqd6h6s3ln"; }; "windows_i686_gnullvm 0.52.6" = rec { @@ -16291,14 +17957,11 @@ rec { ]; }; - "windows_i686_gnullvm 0.53.0" = rec { + "windows_i686_gnullvm 0.53.1" = rec { crateName = "windows_i686_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "04df1in2k91qyf1wzizvh560bvyzq20yf68k8xa66vdzxnywrrlw"; - authors = [ - "Microsoft" - ]; + sha256 = "030qaxqc4salz6l4immfb6sykc6gmhyir9wzn2w8mxj8038mjwzs"; }; "windows_i686_msvc 0.52.6" = rec { @@ -16311,14 +17974,11 @@ rec { ]; }; - "windows_i686_msvc 0.53.0" = rec { + "windows_i686_msvc 0.53.1" = rec { crateName = "windows_i686_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0pcvb25fkvqnp91z25qr5x61wyya12lx8p7nsa137cbb82ayw7sq"; - authors = [ - "Microsoft" - ]; + sha256 = "1hi6scw3mn2pbdl30ji5i4y8vvspb9b66l98kkz350pig58wfyhy"; }; "windows_x86_64_gnu 0.52.6" = rec { @@ -16331,14 +17991,11 @@ rec { ]; }; - "windows_x86_64_gnu 0.53.0" = rec { + "windows_x86_64_gnu 0.53.1" = rec { crateName = "windows_x86_64_gnu"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "1flh84xkssn1n6m1riddipydcksp2pdl45vdf70jygx3ksnbam9f"; - authors = [ - "Microsoft" - ]; + sha256 = "16d4yiysmfdlsrghndr97y57gh3kljkwhfdbcs05m1jasz6l4f4w"; }; "windows_x86_64_gnullvm 0.52.6" = rec { @@ -16351,14 +18008,11 @@ rec { ]; }; - "windows_x86_64_gnullvm 0.53.0" = rec { + "windows_x86_64_gnullvm 0.53.1" = rec { crateName = "windows_x86_64_gnullvm"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "0mvc8119xpbi3q2m6mrjcdzl6afx4wffacp13v76g4jrs1fh6vha"; - authors = [ - "Microsoft" - ]; + sha256 = "1qbspgv4g3q0vygkg8rnql5c6z3caqv38japiynyivh75ng1gyhg"; }; "windows_x86_64_msvc 0.52.6" = rec { @@ -16371,34 +18025,29 @@ rec { ]; }; - "windows_x86_64_msvc 0.53.0" = rec { + "windows_x86_64_msvc 0.53.1" = rec { crateName = "windows_x86_64_msvc"; - version = "0.53.0"; + version = "0.53.1"; edition = "2021"; - sha256 = "11h4i28hq0zlnjcaqi2xdxr7ibnpa8djfggch9rki1zzb8qi8517"; - authors = [ - "Microsoft" - ]; + sha256 = "0l6npq76vlq4ksn4bwsncpr8508mk0gmznm6wnhjg95d19gzzfyn"; }; - "wit-bindgen-rt" = rec { - crateName = "wit-bindgen-rt"; - version = "0.39.0"; + "wit-bindgen" = rec { + crateName = "wit-bindgen"; + version = "0.46.0"; edition = "2021"; - sha256 = "1hd65pa5hp0nl664m94bg554h4zlhrzmkjsf6lsgsb7yc4734hkg"; - libName = "wit_bindgen_rt"; - dependencies = [ - { - name = "bitflags"; - packageId = "bitflags"; - optional = true; - } + sha256 = "0ngysw50gp2wrrfxbwgp6dhw1g6sckknsn3wm7l00vaf7n48aypi"; + libName = "wit_bindgen"; + authors = [ + "Alex Crichton " ]; features = { - "async" = [ "dep:futures" "dep:once_cell" ]; + "async" = [ "macros" "std" "dep:futures" "dep:once_cell" "wit-bindgen-rust-macro/async" ]; "bitflags" = [ "dep:bitflags" ]; + "default" = [ "macros" "realloc" "async" "std" "bitflags" ]; + "macros" = [ "dep:wit-bindgen-rust-macro" ]; + "rustc-dep-of-std" = [ "dep:core" "dep:alloc" ]; }; - resolvedDefaultFeatures = [ "bitflags" ]; }; "writeable" = rec { crateName = "writeable"; @@ -16412,11 +18061,67 @@ rec { "either" = [ "dep:either" ]; }; }; + "x509-cert" = rec { + crateName = "x509-cert"; + version = "0.2.5"; + edition = "2021"; + sha256 = "155f42vm6m7phn8w7s2wmk9vli3ws45dqpk5z3jilw0a04syj08k"; + libName = "x509_cert"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + features = [ "db" ]; + } + { + name = "der"; + packageId = "der"; + features = [ "alloc" "derive" "flagset" "oid" ]; + } + { + name = "sha1"; + packageId = "sha1"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + optional = true; + features = [ "rand_core" ]; + } + { + name = "spki"; + packageId = "spki"; + features = [ "alloc" ]; + } + { + name = "tls_codec"; + packageId = "tls_codec"; + optional = true; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" "std" "der/arbitrary" "spki/arbitrary" ]; + "builder" = [ "std" "sha1/default" "signature" ]; + "default" = [ "pem" "std" ]; + "pem" = [ "der/pem" "spki/pem" ]; + "sct" = [ "dep:tls_codec" ]; + "sha1" = [ "dep:sha1" ]; + "signature" = [ "dep:signature" ]; + "std" = [ "const-oid/std" "der/std" "spki/std" "tls_codec?/std" ]; + }; + resolvedDefaultFeatures = [ "builder" "default" "pem" "sha1" "signature" "std" ]; + }; "xml" = rec { crateName = "xml"; - version = "1.0.0"; + version = "1.0.1"; edition = "2021"; - sha256 = "0db4s3j50gkqkwpmyz9mfgrvifwgb4mzihkgnrm8hgg77alf1rkj"; + sha256 = "1k7s56phdygnsj40my5jascmvd0md4922ashl4j7958d8562g92q"; authors = [ "Vladimir Matveev " "Kornel (https://github.com/kornelski)" @@ -16508,7 +18213,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "fold" ]; } { @@ -16520,9 +18225,9 @@ rec { }; "zerocopy" = rec { crateName = "zerocopy"; - version = "0.8.26"; + version = "0.8.27"; edition = "2021"; - sha256 = "0bvsj0qzq26zc6nlrm3z10ihvjspyngs7n0jw1fz031i7h6xsf8h"; + sha256 = "0b1870gf2zzlckca69v2k4mqwmf8yh2li37qldnzvvd3by58g508"; authors = [ "Joshua Liebow-Feeser " "Jack Wrenn " @@ -16556,9 +18261,9 @@ rec { }; "zerocopy-derive" = rec { crateName = "zerocopy-derive"; - version = "0.8.26"; + version = "0.8.27"; edition = "2021"; - sha256 = "10aiywi5qkha0mpsnb1zjwi44wl2rhdncaf3ykbp4i9nqm65pkwy"; + sha256 = "0c9qrylm2p55dvaplxsl24ma48add9qk4y0d6kjbkllaqvcvill8"; procMacro = true; libName = "zerocopy_derive"; authors = [ @@ -16576,7 +18281,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "full" ]; } ]; @@ -16625,7 +18330,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "fold" ]; } { @@ -16637,12 +18342,19 @@ rec { }; "zeroize" = rec { crateName = "zeroize"; - version = "1.8.1"; + version = "1.8.2"; edition = "2021"; - sha256 = "1pjdrmjwmszpxfd7r860jx54cyk94qk59x13sc307cvr5256glyf"; + sha256 = "1l48zxgcv34d7kjskr610zqsm6j2b4fcr2vfh9jm9j1jgvk58wdr"; authors = [ "The RustCrypto Project Developers" ]; + dependencies = [ + { + name = "zeroize_derive"; + packageId = "zeroize_derive"; + optional = true; + } + ]; features = { "default" = [ "alloc" ]; "derive" = [ "zeroize_derive" ]; @@ -16650,7 +18362,33 @@ rec { "std" = [ "alloc" ]; "zeroize_derive" = [ "dep:zeroize_derive" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" ]; + resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ]; + }; + "zeroize_derive" = rec { + crateName = "zeroize_derive"; + version = "1.4.2"; + edition = "2021"; + sha256 = "0sczjlqjdmrp3wn62g7mw6p438c9j4jgp2f9zamd56991mdycdnf"; + procMacro = true; + authors = [ + "The RustCrypto Project Developers" + ]; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.107"; + features = [ "full" "extra-traits" "visit" ]; + } + ]; + }; "zerotrie" = rec { crateName = "zerotrie"; @@ -16755,7 +18493,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.106"; + packageId = "syn 2.0.107"; features = [ "extra-traits" ]; } ]; diff --git a/Cargo.toml b/Cargo.toml index f637fa78..85ad8d45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" repository = "https://github.com/stackabletech/secret-operator" [workspace.dependencies] -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned"], tag = "stackable-operator-0.99.0" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["time", "telemetry", "versioned", "webhook"], tag = "stackable-operator-0.100.0" } krb5 = { git = "https://github.com/stackabletech/krb5-rs.git", tag = "v0.1.0" } anyhow = "1.0" diff --git a/Makefile b/Makefile index 96e1030d..9afd741a 100644 --- a/Makefile +++ b/Makefile @@ -105,7 +105,6 @@ compile-chart: version crds config chart-clean: rm -rf "deploy/helm/${OPERATOR_NAME}/configs" - rm -rf "deploy/helm/${OPERATOR_NAME}/crds" version: cat "deploy/helm/${OPERATOR_NAME}/Chart.yaml" | yq ".version = \"${VERSION}\" | .appVersion = \"${VERSION}\"" > "deploy/helm/${OPERATOR_NAME}/Chart.yaml.new" @@ -117,9 +116,11 @@ config: cp -r deploy/config-spec/* "deploy/helm/${OPERATOR_NAME}/configs";\ fi +# We generate a crds.yaml, so that the effect of code changes are visible. +# The operator will take care of the CRD rollout itself. crds: - mkdir -p deploy/helm/"${OPERATOR_NAME}"/crds - cargo run --bin stackable-"${OPERATOR_NAME}" -- crd | yq eval '.metadata.annotations["helm.sh/resource-policy"]="keep"' - > "deploy/helm/${OPERATOR_NAME}/crds/crds.yaml" + mkdir -p extra + cargo run --bin stackable-"${OPERATOR_NAME}" -- crd > extra/crds.yaml chart-lint: compile-chart docker run -it -v $(shell pwd):/build/helm-charts -w /build/helm-charts quay.io/helmpack/chart-testing:v3.5.0 ct lint --config deploy/helm/ct.yaml diff --git a/Tiltfile b/Tiltfile index ee0941c3..53c3a8e4 100644 --- a/Tiltfile +++ b/Tiltfile @@ -17,11 +17,6 @@ custom_build( outputs_image_ref_to='result/ref', ) -# Load the latest CRDs from Nix -watch_file('result') -if os.path.exists('result'): - k8s_yaml('result/crds.yaml') - # We need to set the correct image annotation on the operator Deployment to use e.g. # oci.stackable.tech/sandbox/opa-operator:7y19m3d8clwxlv34v5q2x4p7v536s00g instead of # oci.stackable.tech/sandbox/opa-operator:0.0.0-dev (which does not exist) @@ -35,18 +30,12 @@ helm_values = settings.get('helm_values', None) helm_override_image_repository = 'image.repository=' + registry + '/' + operator_name -# Exclude stale CRDs from Helm chart, and apply the rest -helm_crds, helm_non_crds = filter_yaml( - helm( - 'deploy/helm/' + operator_name, - name=operator_name, - namespace="stackable-operators", - set=[ - helm_override_image_repository, - ], - values=helm_values, - ), - api_version = "^apiextensions\\.k8s\\.io/.*$", - kind = "^CustomResourceDefinition$", -) -k8s_yaml(helm_non_crds) +k8s_yaml(helm( + 'deploy/helm/' + operator_name, + name=operator_name, + namespace="stackable-operators", + set=[ + helm_override_image_repository, + ], + values=helm_values, +)) diff --git a/crate-hashes.json b/crate-hashes.json index ad933641..7f1b9343 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,13 +1,15 @@ { "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5-sys@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", "git+https://github.com/stackabletech/krb5-rs.git?tag=v0.1.0#krb5@0.1.0": "148zr0q04163hpirkrff5q7cbxqgwzzxh0091zr4g23x7l64jh39", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#k8s-version@0.1.3": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-operator-derive@0.3.1": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-operator@0.99.0": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-shared@0.0.3": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-telemetry@0.6.1": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-versioned-macros@0.8.2": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.99.0#stackable-versioned@0.8.2": "14mp7m9x1d6s1xxhdh5rqvkxdksmz96km1hfn0yshdfw6ic5m8cv", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#k8s-version@0.1.3": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-certs@0.4.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-operator-derive@0.3.1": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-operator@0.100.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-shared@0.0.3": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-telemetry@0.6.1": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-versioned-macros@0.8.2": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-versioned@0.8.2": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.100.0#stackable-webhook@0.7.0": "0330rzvnq05xai5dfx4ghhsz2162himcbj46fvh27a9pgqd92y4d", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-telemetry-0.6.1#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/deploy/helm/secret-operator/crds/crds.yaml b/deploy/helm/secret-operator/crds/crds.yaml deleted file mode 100644 index 88ee310d..00000000 --- a/deploy/helm/secret-operator/crds/crds.yaml +++ /dev/null @@ -1,488 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: secretclasses.secrets.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: secrets.stackable.tech - names: - categories: [] - kind: SecretClass - plural: secretclasses - shortNames: [] - singular: secretclass - scope: Cluster - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: Auto-generated derived type for SecretClassSpec via `CustomResource` - properties: - spec: - description: |- - A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource - that defines a category of secrets that the Secret Operator knows how to provision. - properties: - backend: - description: |- - Each SecretClass is associated with a single - [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), - which dictates the mechanism for issuing that kind of Secret. - oneOf: - - required: - - k8sSearch - - required: - - autoTls - - required: - - experimentalCertManager - - required: - - kerberosKeytab - properties: - autoTls: - description: |- - The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) - issues a TLS certificate signed by the Secret Operator. - The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. - - A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. - properties: - additionalTrustRoots: - default: [] - description: Additional trust roots which are added to the provided `ca.crt` file. - items: - oneOf: - - required: - - configMap - - required: - - secret - properties: - configMap: - description: |- - Reference (name and namespace) to a Kubernetes ConfigMap object where additional - certificates are stored. - The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - certificate. - properties: - name: - description: Name of the ConfigMap being referred to. - type: string - namespace: - description: Namespace of the ConfigMap being referred to. - type: string - required: - - name - - namespace - type: object - secret: - description: |- - Reference (name and namespace) to a Kubernetes Secret object where additional certificates - are stored. - The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - certificate. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - type: object - type: array - ca: - description: Configures the certificate authority used to issue Pod certificates. - properties: - autoGenerate: - default: false - description: |- - Whether the certificate authority should be managed by Secret Operator, including being generated - if it does not already exist. - type: boolean - caCertificateLifetime: - default: 365d - description: |- - The lifetime of each generated certificate authority. - - Should always be more than double `maxCertificateLifetime`. - - If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. - If `autoGenerate: false` then the Secret Operator will log a warning instead. - type: string - keyGeneration: - default: - rsa: - length: 2048 - description: |- - The algorithm used to generate a key pair and required configuration settings. - Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - oneOf: - - required: - - rsa - properties: - rsa: - properties: - length: - description: |- - The amount of bits used for generating the RSA keypair. - Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - enum: - - 2048 - - 3072 - - 4096 - type: integer - required: - - length - type: object - type: object - secret: - description: |- - Reference (name and namespace) to a Kubernetes Secret object where the CA certificate - and key is stored in the keys `ca.crt` and `ca.key` respectively. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - required: - - secret - type: object - maxCertificateLifetime: - default: 15d - description: |- - Maximum lifetime the created certificates are allowed to have. - In case consumers request a longer lifetime than allowed by this setting, - the lifetime will be the minimum of both, so this setting takes precedence. - The default value is 15 days. - type: string - required: - - ca - type: object - experimentalCertManager: - description: |- - The [`experimentalCertManager` backend][1] injects a TLS certificate issued - by [cert-manager](https://cert-manager.io/). - - A new certificate will be requested the first time it is used by a Pod, it - will be reused after that (subject to cert-manager renewal rules). - - [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager - properties: - defaultCertificateLifetime: - default: 1d - description: |- - The default lifetime of certificates. - - Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). - type: string - issuer: - description: A reference to the cert-manager issuer that the certificates should be requested from. - properties: - kind: - description: |- - The kind of the issuer, Issuer or ClusterIssuer. - - If Issuer then it must be in the same namespace as the Pods using it. - enum: - - Issuer - - ClusterIssuer - type: string - name: - description: The name of the issuer. - type: string - required: - - kind - - name - type: object - keyGeneration: - default: - rsa: - length: 2048 - description: |- - The algorithm used to generate a key pair and required configuration settings. - Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - oneOf: - - required: - - rsa - properties: - rsa: - properties: - length: - description: |- - The amount of bits used for generating the RSA keypair. - Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - enum: - - 2048 - - 3072 - - 4096 - type: integer - required: - - length - type: object - type: object - required: - - issuer - type: object - k8sSearch: - description: |- - The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) - can be used to mount Secrets across namespaces into Pods. - properties: - searchNamespace: - description: Configures the namespace searched for Secret objects. - oneOf: - - required: - - pod - - required: - - name - properties: - name: - description: |- - The Secret objects are located in a single global namespace. - Should be used for secrets that are provisioned by the cluster administrator. - type: string - pod: - description: |- - The Secret objects are located in the same namespace as the Pod object. - Should be used for Secrets that are provisioned by the application administrator. - type: object - type: object - trustStoreConfigMapName: - description: |- - Name of a ConfigMap that contains the information required to validate against this SecretClass. - - Resolved relative to `search_namespace`. - - Required to request a TrustStore for this SecretClass. - nullable: true - type: string - required: - - searchNamespace - type: object - kerberosKeytab: - description: |- - The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) - creates a Kerberos keytab file for a selected realm. - The Kerberos KDC and administrator credentials must be provided by the administrator. - properties: - admin: - description: Kerberos admin configuration settings. - oneOf: - - required: - - mit - - required: - - activeDirectory - properties: - activeDirectory: - description: Credentials should be provisioned in a Microsoft Active Directory domain. - properties: - experimentalGenerateSamAccountName: - description: |- - Allows samAccountName generation for new accounts to be customized. - Note that setting this field (even if empty) makes the Secret Operator take - over the generation duty from the domain controller. - nullable: true - properties: - prefix: - default: '' - description: A prefix to be prepended to generated samAccountNames. - type: string - totalLength: - default: 20 - description: |- - The total length of generated samAccountNames, _including_ `prefix`. - Must be larger than the length of `prefix`, but at most `20`. - - Note that this should be as large as possible, to minimize the risk of collisions. - format: uint8 - maximum: 20.0 - minimum: 0.0 - type: integer - type: object - ldapServer: - description: |- - An AD LDAP server, such as the AD Domain Controller. - This must match the server’s FQDN, or GSSAPI authentication will fail. - type: string - ldapTlsCaSecret: - description: |- - Reference (name and namespace) to a Kubernetes Secret object containing - the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - passwordCacheSecret: - description: |- - Reference (name and namespace) to a Kubernetes Secret object where workload - passwords will be stored. This must not be accessible to end users. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - schemaDistinguishedName: - description: |- - The root Distinguished Name (DN) for AD-managed schemas, - typically `CN=Schema,CN=Configuration,{domain_dn}`. - type: string - userDistinguishedName: - description: |- - The root Distinguished Name (DN) where service accounts should be provisioned, - typically `CN=Users,{domain_dn}`. - type: string - required: - - ldapServer - - ldapTlsCaSecret - - passwordCacheSecret - - schemaDistinguishedName - - userDistinguishedName - type: object - mit: - description: Credentials should be provisioned in a MIT Kerberos Admin Server. - properties: - kadminServer: - description: |- - The hostname of the Kerberos Admin Server. - This should be provided by the Kerberos administrator. - type: string - required: - - kadminServer - type: object - type: object - adminKeytabSecret: - description: |- - Reference (`name` and `namespace`) to a K8s Secret object where a - keytab with administrative privileges is stored in the key `keytab`. - properties: - name: - description: Name of the Secret being referred to. - type: string - namespace: - description: Namespace of the Secret being referred to. - type: string - required: - - name - - namespace - type: object - adminPrincipal: - description: The admin principal. - type: string - kdc: - description: |- - The hostname of the Kerberos Key Distribution Center (KDC). - This should be provided by the Kerberos administrator. - type: string - realmName: - description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. - type: string - required: - - admin - - adminKeytabSecret - - adminPrincipal - - kdc - - realmName - type: object - type: object - required: - - backend - type: object - required: - - spec - title: SecretClass - type: object - served: true - storage: true - subresources: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: truststores.secrets.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: secrets.stackable.tech - names: - categories: [] - kind: TrustStore - plural: truststores - shortNames: [] - singular: truststore - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: Auto-generated derived type for TrustStoreSpec via `CustomResource` - properties: - spec: - description: |- - A [TrustStore](https://docs.stackable.tech/home/nightly/secret-operator/truststore) requests information about how to - validate secrets issued by a [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass). - - The requested information is written to a ConfigMap with the same name as the TrustStore. - properties: - format: - description: The [format](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#format) that the data should be converted into. - enum: - - tls-pem - - tls-pkcs12 - - kerberos - - null - nullable: true - type: string - secretClassName: - description: The name of the SecretClass that the request concerns. - type: string - targetKind: - default: ConfigMap - description: |- - Which Kubernetes kind should be used to output the requested information to. - - The trust information (such as a `ca.crt`) can be considered public information, so we put - it in a `ConfigMap` by default. However, some tools might require it to be placed in a - `Secret`, so we also support that. - - Can be either `ConfigMap` or `Secret`, defaults to `ConfigMap`. - enum: - - Secret - - ConfigMap - type: string - required: - - secretClassName - type: object - required: - - spec - title: TrustStore - type: object - served: true - storage: true - subresources: {} diff --git a/deploy/helm/secret-operator/templates/controller-deployment.yaml b/deploy/helm/secret-operator/templates/controller-deployment.yaml index dca71496..337ad3a2 100644 --- a/deploy/helm/secret-operator/templates/controller-deployment.yaml +++ b/deploy/helm/secret-operator/templates/controller-deployment.yaml @@ -17,6 +17,9 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} labels: + {{- if .Values.maintenance.customResourceDefinitions.maintain }} + webhook.stackable.tech/conversion: enabled + {{- end }} {{- include "operator.selectorLabels" . | nindent 8 }} spec: {{- with .Values.image.pullSecrets }} @@ -80,6 +83,7 @@ spec: value: {{ .Values.kubernetesClusterDomain | quote }} {{- end }} {{- include "telemetry.envVars" . | nindent 12 }} + {{- include "maintenance.envVars" . | nindent 12 }} {{- with .Values.controllerService.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml b/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml index bfbd42f2..b9d6f899 100644 --- a/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml +++ b/deploy/helm/secret-operator/templates/csi-node-driver-daemonset.yaml @@ -79,11 +79,19 @@ spec: fieldRef: fieldPath: spec.nodeName + # The namespace that the TLS Certificate Authority is installed into. + # Internally defaults to the namespace where secret-operator is installed. + {{- if .Values.secretClasses.tls.caSecretNamespace }} + - name: TLS_SECRETCLASS_CA_SECRET_NAMESPACE + value: {{ .Values.secretClasses.tls.caSecretNamespace }} + {{- end }} + {{- if .Values.kubernetesClusterDomain }} - name: KUBERNETES_CLUSTER_DOMAIN value: {{ .Values.kubernetesClusterDomain | quote }} {{- end }} {{- include "telemetry.envVars" . | nindent 12 }} + {{- include "maintenance.envVars" . | nindent 12 }} volumeMounts: - name: csi mountPath: /csi diff --git a/deploy/helm/secret-operator/templates/roles.yaml b/deploy/helm/secret-operator/templates/roles.yaml index 630e9ab6..b585326e 100644 --- a/deploy/helm/secret-operator/templates/roles.yaml +++ b/deploy/helm/secret-operator/templates/roles.yaml @@ -43,6 +43,15 @@ metadata: labels: {{- include "operator.labels" . | nindent 4 }} rules: + # Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's + # generated certificate in the conversion webhook. + {{- if .Values.maintenance.customResourceDefinitions.maintain }} + - apiGroups: [apiextensions.k8s.io] + resources: [customresourcedefinitions] + verbs: + - create + - patch + {{- end }} - apiGroups: - "" resources: @@ -115,6 +124,10 @@ rules: - secretclasses - truststores verbs: + {{- if .Values.maintenance.customResourceDefinitions.maintain }} + - create + - patch + {{- end }} - get - watch - list diff --git a/deploy/helm/secret-operator/templates/secretclasses.yaml b/deploy/helm/secret-operator/templates/secretclasses.yaml deleted file mode 100644 index dfbbabd8..00000000 --- a/deploy/helm/secret-operator/templates/secretclasses.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: tls - labels: - {{- include "operator.labels" . | nindent 4 }} -spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: {{ .Values.secretClasses.tls.caSecretNamespace | default .Release.Namespace }} - autoGenerate: true diff --git a/deploy/helm/secret-operator/templates/service.yaml b/deploy/helm/secret-operator/templates/service.yaml index 0cb05696..5cf6439b 100644 --- a/deploy/helm/secret-operator/templates/service.yaml +++ b/deploy/helm/secret-operator/templates/service.yaml @@ -1,4 +1,4 @@ - +{{- if .Values.maintenance.customResourceDefinitions.maintain }} --- apiVersion: v1 kind: Service @@ -11,9 +11,11 @@ metadata: {{- include "operator.labels" . | nindent 4 }} spec: selector: - {{- include "operator.selectorLabels" . | nindent 6 }} + webhook.stackable.tech/conversion: enabled + {{- include "operator.selectorLabels" . | nindent 4 }} ports: - name: conversion-webhook protocol: TCP port: 8443 targetPort: 8443 +{{- end }} diff --git a/deploy/helm/secret-operator/values.yaml b/deploy/helm/secret-operator/values.yaml index a0761310..1ac486ab 100644 --- a/deploy/helm/secret-operator/values.yaml +++ b/deploy/helm/secret-operator/values.yaml @@ -119,6 +119,15 @@ secretClasses: # Defaults to the namespace where secret-op is installed. caSecretNamespace: null +maintenance: + endOfSupportCheck: + enabled: true + # mode: offline + # interval: 24h + + customResourceDefinitions: + maintain: true + # See all available options and detailed explanations about the concept here: # https://docs.stackable.tech/home/stable/concepts/telemetry/ telemetry: diff --git a/docs/modules/secret-operator/pages/secretclass.adoc b/docs/modules/secret-operator/pages/secretclass.adoc index 10fb54a1..07247e69 100644 --- a/docs/modules/secret-operator/pages/secretclass.adoc +++ b/docs/modules/secret-operator/pages/secretclass.adoc @@ -296,7 +296,7 @@ on the base container: [#ad-samaccountname] ===== Custom `samAccountName` generation -IMPORTANT: `samAccountName` customization is an experimental preview feature, and may be changed or removed at any time. +NOTE: `samAccountName` customization was marked as non-experimental in SDP 25.11.0. By default, the `samAccountName` for created Active Directory accounts will be generated by Active Directory. @@ -313,13 +313,13 @@ spec: kerberosKeytab: admin: activeDirectory: - experimentalGenerateSamAccountName: + generateSamAccountName: prefix: myprefix- totalLength: 13 ---- -`kerberosKeytab.admin.activeDirectory.experimentalGenerateSamAccountName.prefix`:: A prefix that will be prepended to all generated `samAccountName` values. -`kerberosKeytab.admin.activeDirectory.experimentalGenerateSamAccountName.totalLength`:: The desired length of `samAccountName` values, _including_ `prefix`. Must not be larger than 20. +`kerberosKeytab.admin.activeDirectory.generateSamAccountName.prefix`:: A prefix that will be prepended to all generated `samAccountName` values. +`kerberosKeytab.admin.activeDirectory.generateSamAccountName.totalLength`:: The desired length of `samAccountName` values, _including_ `prefix`. Must not be larger than 20. NOTE: These options only affect _newly created_ accounts. Existing accounts will keep their respective old `samAccountName`. diff --git a/extra/crds.yaml b/extra/crds.yaml new file mode 100644 index 00000000..e175dc24 --- /dev/null +++ b/extra/crds.yaml @@ -0,0 +1,889 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: secretclasses.secrets.stackable.tech +spec: + group: secrets.stackable.tech + names: + categories: [] + kind: SecretClass + plural: secretclasses + shortNames: [] + singular: secretclass + scope: Cluster + versions: + - additionalPrinterColumns: [] + name: v1alpha2 + schema: + openAPIV3Schema: + description: Auto-generated derived type for SecretClassSpec via `CustomResource` + properties: + spec: + description: |- + A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource + that defines a category of secrets that the Secret Operator knows how to provision. + properties: + backend: + description: |- + Each SecretClass is associated with a single + [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), + which dictates the mechanism for issuing that kind of Secret. + oneOf: + - required: + - k8sSearch + - required: + - autoTls + - required: + - experimentalCertManager + - required: + - kerberosKeytab + properties: + autoTls: + description: |- + The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) + issues a TLS certificate signed by the Secret Operator. + The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + + A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + properties: + additionalTrustRoots: + default: [] + description: Additional trust roots which are added to the provided `ca.crt` file. + items: + oneOf: + - required: + - configMap + - required: + - secret + properties: + configMap: + description: |- + Reference (name and namespace) to a Kubernetes ConfigMap object where additional + certificates are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the ConfigMap being referred to. + type: string + namespace: + description: Namespace of the ConfigMap being referred to. + type: string + required: + - name + - namespace + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where additional certificates + are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + type: object + type: array + ca: + description: Configures the certificate authority used to issue Pod certificates. + properties: + autoGenerate: + default: false + description: |- + Whether the certificate authority should be managed by Secret Operator, including being generated + if it does not already exist. + type: boolean + caCertificateLifetime: + default: 365d + description: |- + The lifetime of each generated certificate authority. + + Should always be more than double `maxCertificateLifetime`. + + If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + If `autoGenerate: false` then the Secret Operator will log a warning instead. + type: string + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + and key is stored in the keys `ca.crt` and `ca.key` respectively. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + required: + - secret + type: object + maxCertificateLifetime: + default: 15d + description: |- + Maximum lifetime the created certificates are allowed to have. + In case consumers request a longer lifetime than allowed by this setting, + the lifetime will be the minimum of both, so this setting takes precedence. + The default value is 15 days. + type: string + required: + - ca + type: object + experimentalCertManager: + description: |- + The [`experimentalCertManager` backend][1] injects a TLS certificate issued + by [cert-manager](https://cert-manager.io/). + + A new certificate will be requested the first time it is used by a Pod, it + will be reused after that (subject to cert-manager renewal rules). + + [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager + properties: + defaultCertificateLifetime: + default: 1d + description: |- + The default lifetime of certificates. + + Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + type: string + issuer: + description: A reference to the cert-manager issuer that the certificates should be requested from. + properties: + kind: + description: |- + The kind of the issuer, Issuer or ClusterIssuer. + + If Issuer then it must be in the same namespace as the Pods using it. + enum: + - Issuer + - ClusterIssuer + type: string + name: + description: The name of the issuer. + type: string + required: + - kind + - name + type: object + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + required: + - issuer + type: object + k8sSearch: + description: |- + The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) + can be used to mount Secrets across namespaces into Pods. + properties: + searchNamespace: + description: Configures the namespace searched for Secret objects. + oneOf: + - required: + - pod + - required: + - name + properties: + name: + description: |- + The Secret objects are located in a single global namespace. + Should be used for secrets that are provisioned by the cluster administrator. + type: string + pod: + description: |- + The Secret objects are located in the same namespace as the Pod object. + Should be used for Secrets that are provisioned by the application administrator. + type: object + type: object + trustStoreConfigMapName: + description: |- + Name of a ConfigMap that contains the information required to validate against this SecretClass. + + Resolved relative to `search_namespace`. + + Required to request a TrustStore for this SecretClass. + nullable: true + type: string + required: + - searchNamespace + type: object + kerberosKeytab: + description: |- + The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) + creates a Kerberos keytab file for a selected realm. + The Kerberos KDC and administrator credentials must be provided by the administrator. + properties: + admin: + description: Kerberos admin configuration settings. + oneOf: + - required: + - mit + - required: + - activeDirectory + properties: + activeDirectory: + description: Credentials should be provisioned in a Microsoft Active Directory domain. + properties: + generateSamAccountName: + description: |- + Allows samAccountName generation for new accounts to be customized. + Note that setting this field (even if empty) makes the Secret Operator take + over the generation duty from the domain controller. + nullable: true + properties: + prefix: + default: '' + description: A prefix to be prepended to generated samAccountNames. + type: string + totalLength: + default: 20 + description: |- + The total length of generated samAccountNames, _including_ `prefix`. + Must be larger than the length of `prefix`, but at most `20`. + + Note that this should be as large as possible, to minimize the risk of collisions. + format: uint8 + maximum: 255.0 + minimum: 0.0 + type: integer + type: object + ldapServer: + description: |- + An AD LDAP server, such as the AD Domain Controller. + This must match the server’s FQDN, or GSSAPI authentication will fail. + type: string + ldapTlsCaSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object containing + the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + passwordCacheSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where workload + passwords will be stored. This must not be accessible to end users. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + schemaDistinguishedName: + description: |- + The root Distinguished Name (DN) for AD-managed schemas, + typically `CN=Schema,CN=Configuration,{domain_dn}`. + type: string + userDistinguishedName: + description: |- + The root Distinguished Name (DN) where service accounts should be provisioned, + typically `CN=Users,{domain_dn}`. + type: string + required: + - ldapServer + - ldapTlsCaSecret + - passwordCacheSecret + - schemaDistinguishedName + - userDistinguishedName + type: object + mit: + description: Credentials should be provisioned in a MIT Kerberos Admin Server. + properties: + kadminServer: + description: |- + The hostname of the Kerberos Admin Server. + This should be provided by the Kerberos administrator. + type: string + required: + - kadminServer + type: object + type: object + adminKeytabSecret: + description: |- + Reference (`name` and `namespace`) to a K8s Secret object where a + keytab with administrative privileges is stored in the key `keytab`. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + adminPrincipal: + description: The admin principal. + type: string + kdc: + description: |- + The hostname of the Kerberos Key Distribution Center (KDC). + This should be provided by the Kerberos administrator. + type: string + realmName: + description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. + type: string + required: + - admin + - adminKeytabSecret + - adminPrincipal + - kdc + - realmName + type: object + type: object + required: + - backend + type: object + required: + - spec + title: SecretClass + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for SecretClassSpec via `CustomResource` + properties: + spec: + description: |- + A [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) is a cluster-global Kubernetes resource + that defines a category of secrets that the Secret Operator knows how to provision. + properties: + backend: + description: |- + Each SecretClass is associated with a single + [backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend), + which dictates the mechanism for issuing that kind of Secret. + oneOf: + - required: + - k8sSearch + - required: + - autoTls + - required: + - experimentalCertManager + - required: + - kerberosKeytab + properties: + autoTls: + description: |- + The [`autoTls` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-autotls) + issues a TLS certificate signed by the Secret Operator. + The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + + A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + properties: + additionalTrustRoots: + default: [] + description: Additional trust roots which are added to the provided `ca.crt` file. + items: + oneOf: + - required: + - configMap + - required: + - secret + properties: + configMap: + description: |- + Reference (name and namespace) to a Kubernetes ConfigMap object where additional + certificates are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the ConfigMap being referred to. + type: string + namespace: + description: Namespace of the ConfigMap being referred to. + type: string + required: + - name + - namespace + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where additional certificates + are stored. + The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + certificate. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + type: object + type: array + ca: + description: Configures the certificate authority used to issue Pod certificates. + properties: + autoGenerate: + default: false + description: |- + Whether the certificate authority should be managed by Secret Operator, including being generated + if it does not already exist. + type: boolean + caCertificateLifetime: + default: 365d + description: |- + The lifetime of each generated certificate authority. + + Should always be more than double `maxCertificateLifetime`. + + If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + If `autoGenerate: false` then the Secret Operator will log a warning instead. + type: string + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + secret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + and key is stored in the keys `ca.crt` and `ca.key` respectively. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + required: + - secret + type: object + maxCertificateLifetime: + default: 15d + description: |- + Maximum lifetime the created certificates are allowed to have. + In case consumers request a longer lifetime than allowed by this setting, + the lifetime will be the minimum of both, so this setting takes precedence. + The default value is 15 days. + type: string + required: + - ca + type: object + experimentalCertManager: + description: |- + The [`experimentalCertManager` backend][1] injects a TLS certificate issued + by [cert-manager](https://cert-manager.io/). + + A new certificate will be requested the first time it is used by a Pod, it + will be reused after that (subject to cert-manager renewal rules). + + [1]: https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-certmanager + properties: + defaultCertificateLifetime: + default: 1d + description: |- + The default lifetime of certificates. + + Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + type: string + issuer: + description: A reference to the cert-manager issuer that the certificates should be requested from. + properties: + kind: + description: |- + The kind of the issuer, Issuer or ClusterIssuer. + + If Issuer then it must be in the same namespace as the Pods using it. + enum: + - Issuer + - ClusterIssuer + type: string + name: + description: The name of the issuer. + type: string + required: + - kind + - name + type: object + keyGeneration: + default: + rsa: + length: 2048 + description: |- + The algorithm used to generate a key pair and required configuration settings. + Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + oneOf: + - required: + - rsa + properties: + rsa: + properties: + length: + description: |- + The amount of bits used for generating the RSA keypair. + Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + enum: + - 2048 + - 3072 + - 4096 + type: integer + required: + - length + type: object + type: object + required: + - issuer + type: object + k8sSearch: + description: |- + The [`k8sSearch` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-k8ssearch) + can be used to mount Secrets across namespaces into Pods. + properties: + searchNamespace: + description: Configures the namespace searched for Secret objects. + oneOf: + - required: + - pod + - required: + - name + properties: + name: + description: |- + The Secret objects are located in a single global namespace. + Should be used for secrets that are provisioned by the cluster administrator. + type: string + pod: + description: |- + The Secret objects are located in the same namespace as the Pod object. + Should be used for Secrets that are provisioned by the application administrator. + type: object + type: object + trustStoreConfigMapName: + description: |- + Name of a ConfigMap that contains the information required to validate against this SecretClass. + + Resolved relative to `search_namespace`. + + Required to request a TrustStore for this SecretClass. + nullable: true + type: string + required: + - searchNamespace + type: object + kerberosKeytab: + description: |- + The [`kerberosKeytab` backend](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#backend-kerberoskeytab) + creates a Kerberos keytab file for a selected realm. + The Kerberos KDC and administrator credentials must be provided by the administrator. + properties: + admin: + description: Kerberos admin configuration settings. + oneOf: + - required: + - mit + - required: + - activeDirectory + properties: + activeDirectory: + description: Credentials should be provisioned in a Microsoft Active Directory domain. + properties: + experimentalGenerateSamAccountName: + description: |- + Allows samAccountName generation for new accounts to be customized. + Note that setting this field (even if empty) makes the Secret Operator take + over the generation duty from the domain controller. + nullable: true + properties: + prefix: + default: '' + description: A prefix to be prepended to generated samAccountNames. + type: string + totalLength: + default: 20 + description: |- + The total length of generated samAccountNames, _including_ `prefix`. + Must be larger than the length of `prefix`, but at most `20`. + + Note that this should be as large as possible, to minimize the risk of collisions. + format: uint8 + maximum: 255.0 + minimum: 0.0 + type: integer + type: object + ldapServer: + description: |- + An AD LDAP server, such as the AD Domain Controller. + This must match the server’s FQDN, or GSSAPI authentication will fail. + type: string + ldapTlsCaSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object containing + the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + passwordCacheSecret: + description: |- + Reference (name and namespace) to a Kubernetes Secret object where workload + passwords will be stored. This must not be accessible to end users. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + schemaDistinguishedName: + description: |- + The root Distinguished Name (DN) for AD-managed schemas, + typically `CN=Schema,CN=Configuration,{domain_dn}`. + type: string + userDistinguishedName: + description: |- + The root Distinguished Name (DN) where service accounts should be provisioned, + typically `CN=Users,{domain_dn}`. + type: string + required: + - ldapServer + - ldapTlsCaSecret + - passwordCacheSecret + - schemaDistinguishedName + - userDistinguishedName + type: object + mit: + description: Credentials should be provisioned in a MIT Kerberos Admin Server. + properties: + kadminServer: + description: |- + The hostname of the Kerberos Admin Server. + This should be provided by the Kerberos administrator. + type: string + required: + - kadminServer + type: object + type: object + adminKeytabSecret: + description: |- + Reference (`name` and `namespace`) to a K8s Secret object where a + keytab with administrative privileges is stored in the key `keytab`. + properties: + name: + description: Name of the Secret being referred to. + type: string + namespace: + description: Namespace of the Secret being referred to. + type: string + required: + - name + - namespace + type: object + adminPrincipal: + description: The admin principal. + type: string + kdc: + description: |- + The hostname of the Kerberos Key Distribution Center (KDC). + This should be provided by the Kerberos administrator. + type: string + realmName: + description: The name of the Kerberos realm. This should be provided by the Kerberos administrator. + type: string + required: + - admin + - adminKeytabSecret + - adminPrincipal + - kdc + - realmName + type: object + type: object + required: + - backend + type: object + required: + - spec + title: SecretClass + type: object + served: true + storage: false + subresources: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: truststores.secrets.stackable.tech +spec: + group: secrets.stackable.tech + names: + categories: [] + kind: TrustStore + plural: truststores + shortNames: [] + singular: truststore + scope: Namespaced + versions: + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for TrustStoreSpec via `CustomResource` + properties: + spec: + description: |- + A [TrustStore](https://docs.stackable.tech/home/nightly/secret-operator/truststore) requests information about how to + validate secrets issued by a [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass). + + The requested information is written to a ConfigMap with the same name as the TrustStore. + properties: + format: + description: The [format](https://docs.stackable.tech/home/nightly/secret-operator/secretclass#format) that the data should be converted into. + enum: + - tls-pem + - tls-pkcs12 + - kerberos + - null + nullable: true + type: string + secretClassName: + description: The name of the SecretClass that the request concerns. + type: string + targetKind: + default: ConfigMap + description: |- + Which Kubernetes kind should be used to output the requested information to. + + The trust information (such as a `ca.crt`) can be considered public information, so we put + it in a `ConfigMap` by default. However, some tools might require it to be placed in a + `Secret`, so we also support that. + + Can be either `ConfigMap` or `Secret`, defaults to `ConfigMap`. + enum: + - Secret + - ConfigMap + type: string + required: + - secretClassName + type: object + required: + - spec + title: TrustStore + type: object + served: true + storage: true + subresources: {} diff --git a/rust/operator-binary/Cargo.toml b/rust/operator-binary/Cargo.toml index 9c4e2a0d..733eac52 100644 --- a/rust/operator-binary/Cargo.toml +++ b/rust/operator-binary/Cargo.toml @@ -25,6 +25,7 @@ pin-project.workspace = true prost-types.workspace = true prost.workspace = true serde_json.workspace = true +serde_yaml.workspace = true serde.workspace = true snafu.workspace = true socket2.workspace = true diff --git a/rust/operator-binary/src/backend/cert_manager.rs b/rust/operator-binary/src/backend/cert_manager.rs index 80e38fed..7768379e 100644 --- a/rust/operator-binary/src/backend/cert_manager.rs +++ b/rust/operator-binary/src/backend/cert_manager.rs @@ -20,7 +20,7 @@ use super::{ scope::SecretScope, }; use crate::{ - crd::v1alpha1, + crd::v1alpha2, external_crd::{self, cert_manager::CertificatePrivateKey}, format::SecretData, utils::Unloggable, @@ -99,7 +99,7 @@ impl SecretBackendError for Error { pub struct CertManager { // Not secret per se, but Client isn't Debug: https://github.com/stackabletech/secret-operator/issues/411 pub client: Unloggable, - pub config: v1alpha1::CertManagerBackend, + pub config: v1alpha2::CertManagerBackend, } #[async_trait] @@ -160,7 +160,7 @@ impl SecretBackend for CertManager { kind: Some(self.config.issuer.kind.to_string()), }, private_key: match self.config.key_generation { - v1alpha1::CertificateKeyGeneration::Rsa { length } => CertificatePrivateKey { + v1alpha2::CertificateKeyGeneration::Rsa { length } => CertificatePrivateKey { algorithm: "RSA".to_string(), size: length, }, diff --git a/rust/operator-binary/src/backend/dynamic.rs b/rust/operator-binary/src/backend/dynamic.rs index 56464d0a..5cf3b0e2 100644 --- a/rust/operator-binary/src/backend/dynamic.rs +++ b/rust/operator-binary/src/backend/dynamic.rs @@ -15,7 +15,7 @@ use super::{ pod_info::{PodInfo, SchedulingPodInfo}, tls, }; -use crate::{crd::v1alpha1, utils::Unloggable}; +use crate::{crd::v1alpha2, utils::Unloggable}; pub struct DynError(Box); @@ -126,10 +126,10 @@ impl SecretBackendError for FromClassError { pub async fn from_class( client: &stackable_operator::client::Client, - class: v1alpha1::SecretClass, + class: v1alpha2::SecretClass, ) -> Result, FromClassError> { Ok(match class.spec.backend { - v1alpha1::SecretClassBackend::K8sSearch(v1alpha1::K8sSearchBackend { + v1alpha2::SecretClassBackend::K8sSearch(v1alpha2::K8sSearchBackend { search_namespace, trust_store_config_map_name, }) => from(super::K8sSearch { @@ -137,7 +137,7 @@ pub async fn from_class( search_namespace, trust_store_config_map_name, }), - v1alpha1::SecretClassBackend::AutoTls(v1alpha1::AutoTlsBackend { + v1alpha2::SecretClassBackend::AutoTls(v1alpha2::AutoTlsBackend { ca, additional_trust_roots, max_certificate_lifetime, @@ -150,11 +150,11 @@ pub async fn from_class( ) .await?, ), - v1alpha1::SecretClassBackend::CertManager(config) => from(super::CertManager { + v1alpha2::SecretClassBackend::CertManager(config) => from(super::CertManager { client: Unloggable(client.clone()), config, }), - v1alpha1::SecretClassBackend::KerberosKeytab(v1alpha1::KerberosKeytabBackend { + v1alpha2::SecretClassBackend::KerberosKeytab(v1alpha2::KerberosKeytabBackend { realm_name, kdc, admin, @@ -182,14 +182,14 @@ pub enum FromSelectorError { #[snafu(display("failed to get {class}"))] GetSecretClass { source: stackable_operator::client::Error, - class: ObjectRef, + class: ObjectRef, }, #[snafu(display("failed to initialize backend for {class}"))] FromClass { #[snafu(source(from(FromClassError, Box::new)))] source: Box, - class: ObjectRef, + class: ObjectRef, }, } @@ -217,7 +217,7 @@ pub async fn from_selector( ) -> Result, FromSelectorError> { let class_ref = || ObjectRef::new(&selector.class); let class = client - .get::(&selector.class, &()) + .get::(&selector.class, &()) .await .with_context(|_| from_selector_error::GetSecretClassSnafu { class: class_ref() })?; from_class(client, class) diff --git a/rust/operator-binary/src/backend/k8s_search.rs b/rust/operator-binary/src/backend/k8s_search.rs index 8ec03f63..1d77d1e1 100644 --- a/rust/operator-binary/src/backend/k8s_search.rs +++ b/rust/operator-binary/src/backend/k8s_search.rs @@ -20,7 +20,7 @@ use super::{ pod_info::{PodInfo, SchedulingPodInfo}, scope::SecretScope, }; -use crate::{crd::v1alpha1, format::SecretData, utils::Unloggable}; +use crate::{crd::v1alpha2, format::SecretData, utils::Unloggable}; const LABEL_CLASS: &str = "secrets.stackable.tech/class"; pub(super) const LABEL_SCOPE_NODE: &str = "secrets.stackable.tech/node"; @@ -89,7 +89,7 @@ impl SecretBackendError for Error { pub struct K8sSearch { // Not secret per se, but isn't Debug: https://github.com/stackabletech/secret-operator/issues/411 pub client: Unloggable, - pub search_namespace: v1alpha1::SearchNamespace, + pub search_namespace: v1alpha2::SearchNamespace, pub trust_store_config_map_name: Option, } diff --git a/rust/operator-binary/src/backend/kerberos_keytab.rs b/rust/operator-binary/src/backend/kerberos_keytab.rs index 70ecd009..4d1f7bc2 100644 --- a/rust/operator-binary/src/backend/kerberos_keytab.rs +++ b/rust/operator-binary/src/backend/kerberos_keytab.rs @@ -22,7 +22,7 @@ use super::{ scope::SecretScope, }; use crate::{ - crd::{KerberosPrincipal, v1alpha1}, + crd::{self, KerberosPrincipal, v1alpha2}, format::{SecretData, WellKnownSecretData, well_known}, utils::Unloggable, }; @@ -60,7 +60,7 @@ pub enum Error { #[snafu(display("generated invalid Kerberos principal for pod"))] PodPrincipal { - source: v1alpha1::InvalidKerberosPrincipal, + source: crd::InvalidKerberosPrincipal, }, #[snafu(display("failed to read the provisioned keytab"))] @@ -105,7 +105,7 @@ impl SecretBackendError for Error { pub struct KerberosProfile { pub realm_name: KerberosRealmName, pub kdc: HostName, - pub admin: v1alpha1::KerberosKeytabBackendAdmin, + pub admin: v1alpha2::KerberosKeytabBackendAdmin, } #[derive(Debug)] @@ -168,10 +168,12 @@ impl SecretBackend for KerberosKeytab { } = self; let admin_server_clause = match admin { - v1alpha1::KerberosKeytabBackendAdmin::Mit { kadmin_server } => { + v1alpha2::KerberosKeytabBackendAdmin::Mit(v1alpha2::KerberosKeytabBackendMit { + kadmin_server, + }) => { format!(" admin_server = {kadmin_server}") } - v1alpha1::KerberosKeytabBackendAdmin::ActiveDirectory { .. } => String::new(), + v1alpha2::KerberosKeytabBackendAdmin::ActiveDirectory { .. } => String::new(), }; let tmp = tempdir().context(TempSetupSnafu)?; @@ -253,24 +255,26 @@ cluster.local = {realm_name} }) .collect(), admin_backend: match admin { - v1alpha1::KerberosKeytabBackendAdmin::Mit { .. } => { + v1alpha2::KerberosKeytabBackendAdmin::Mit { .. } => { stackable_krb5_provision_keytab::AdminBackend::Mit } - v1alpha1::KerberosKeytabBackendAdmin::ActiveDirectory { - ldap_server, - ldap_tls_ca_secret, - password_cache_secret, - user_distinguished_name, - schema_distinguished_name, - generate_sam_account_name, - } => stackable_krb5_provision_keytab::AdminBackend::ActiveDirectory { + v1alpha2::KerberosKeytabBackendAdmin::ActiveDirectory( + v1alpha2::KerberosKeytabBackendActiveDirectory { + ldap_server, + ldap_tls_ca_secret, + password_cache_secret, + user_distinguished_name, + schema_distinguished_name, + generate_sam_account_name, + }, + ) => stackable_krb5_provision_keytab::AdminBackend::ActiveDirectory { ldap_server: ldap_server.to_string(), ldap_tls_ca_secret: ldap_tls_ca_secret.clone(), password_cache_secret: password_cache_secret.clone(), user_distinguished_name: user_distinguished_name.clone(), schema_distinguished_name: schema_distinguished_name.clone(), generate_sam_account_name: generate_sam_account_name.clone().map( - |v1alpha1::ActiveDirectorySamAccountNameRules { + |v1alpha2::ActiveDirectorySamAccountNameRules { prefix, total_length, }| { diff --git a/rust/operator-binary/src/backend/tls/ca.rs b/rust/operator-binary/src/backend/tls/ca.rs index d7fdb2c8..b7d817f8 100644 --- a/rust/operator-binary/src/backend/tls/ca.rs +++ b/rust/operator-binary/src/backend/tls/ca.rs @@ -38,7 +38,7 @@ use tracing::{info, info_span, warn}; use crate::{ backend::SecretBackendError, - crd::v1alpha1, + crd::v1alpha2, utils::{Asn1TimeParseError, Unloggable, asn1time_to_offsetdatetime}, }; @@ -202,7 +202,7 @@ pub struct Config { pub rotate_if_ca_expires_before: Option, /// Configuration how TLS private keys should be created. - pub key_generation: v1alpha1::CertificateKeyGeneration, + pub key_generation: v1alpha2::CertificateKeyGeneration, } /// A single certificate authority certificate. @@ -241,7 +241,7 @@ impl CertificateAuthority { Conf::new(ConfMethod::default()).expect("failed to initialize OpenSSL configuration"); let private_key_length = match config.key_generation { - v1alpha1::CertificateKeyGeneration::Rsa { length } => length, + v1alpha2::CertificateKeyGeneration::Rsa { length } => length, }; let private_key = Rsa::generate(private_key_length) @@ -348,7 +348,7 @@ impl Manager { pub async fn load_or_create( client: &stackable_operator::client::Client, secret_ref: &SecretReference, - additional_trust_roots: &[v1alpha1::AdditionalTrustRoot], + additional_trust_roots: &[v1alpha2::AdditionalTrustRoot], config: &Config, ) -> Result { // Use entry API rather than apply so that we crash and retry on conflicts (to avoid creating spurious certs that we throw away immediately) @@ -496,10 +496,10 @@ impl Manager { let mut additional_trusted_certificates = vec![]; for entry in additional_trust_roots { let certs = match entry { - v1alpha1::AdditionalTrustRoot::ConfigMap(config_map) => { + v1alpha2::AdditionalTrustRoot::ConfigMap(config_map) => { Self::read_extra_trust_roots_from_config_map(client, config_map).await? } - v1alpha1::AdditionalTrustRoot::Secret(secret) => { + v1alpha2::AdditionalTrustRoot::Secret(secret) => { Self::read_extra_trust_roots_from_secret(client, secret).await? } }; diff --git a/rust/operator-binary/src/backend/tls/mod.rs b/rust/operator-binary/src/backend/tls/mod.rs index 3713935c..0cca87db 100644 --- a/rust/operator-binary/src/backend/tls/mod.rs +++ b/rust/operator-binary/src/backend/tls/mod.rs @@ -33,7 +33,7 @@ use super::{ scope::SecretScope, }; use crate::{ - crd::v1alpha1, + crd::v1alpha2, format::{SecretData, WellKnownSecretData, well_known}, utils::iterator_try_concat_bytes, }; @@ -150,7 +150,7 @@ impl SecretBackendError for Error { pub struct TlsGenerate { ca_manager: ca::Manager, max_cert_lifetime: Duration, - key_generation: v1alpha1::CertificateKeyGeneration, + key_generation: v1alpha2::CertificateKeyGeneration, } impl TlsGenerate { @@ -162,13 +162,13 @@ impl TlsGenerate { /// an independent self-signed CA. pub async fn get_or_create_k8s_certificate( client: &stackable_operator::client::Client, - v1alpha1::AutoTlsCa { + v1alpha2::AutoTlsCa { secret: ca_secret, auto_generate: auto_generate_ca, ca_certificate_lifetime, key_generation, - }: &v1alpha1::AutoTlsCa, - additional_trust_roots: &[v1alpha1::AdditionalTrustRoot], + }: &v1alpha2::AutoTlsCa, + additional_trust_roots: &[v1alpha2::AdditionalTrustRoot], max_cert_lifetime: Duration, ) -> Result { Ok(Self { @@ -260,7 +260,7 @@ impl SecretBackend for TlsGenerate { Conf::new(ConfMethod::default()).expect("failed to initialize OpenSSL configuration"); let pod_key_length = match self.key_generation { - v1alpha1::CertificateKeyGeneration::Rsa { length } => length, + v1alpha2::CertificateKeyGeneration::Rsa { length } => length, }; let pod_key = Rsa::generate(pod_key_length) diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 0504e6ce..27aa29ec 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -1,449 +1,78 @@ -use serde::{Deserialize, Serialize}; -use stackable_operator::{ - commons::networking::{HostName, KerberosRealmName}, - kube::CustomResource, - schemars::{self, JsonSchema}, - shared::time::Duration, - versioned::versioned, -}; -use stackable_secret_operator_utils::crd::{ConfigMapReference, SecretReference}; - -use crate::format::SecretFormat; - -mod v1alpha1_impl; - -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(try_from = "String", into = "String")] -pub struct KerberosPrincipal(String); - -#[versioned( - version(name = "v1alpha1"), - crates( - kube_core = "stackable_operator::kube::core", - kube_client = "stackable_operator::kube::client", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars", - versioned = "stackable_operator::versioned" - ) -)] -pub mod versioned { - pub mod v1alpha1 { - pub use v1alpha1_impl::*; - } - - /// A [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass) is a cluster-global Kubernetes resource - /// that defines a category of secrets that the Secret Operator knows how to provision. - #[versioned(crd(group = "secrets.stackable.tech"))] - #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct SecretClassSpec { - /// Each SecretClass is associated with a single - /// [backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend), - /// which dictates the mechanism for issuing that kind of Secret. - pub backend: SecretClassBackend, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - #[allow(clippy::large_enum_variant)] - pub enum SecretClassBackend { - /// The [`k8sSearch` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-k8ssearch) - /// can be used to mount Secrets across namespaces into Pods. - K8sSearch(K8sSearchBackend), - - /// The [`autoTls` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-autotls) - /// issues a TLS certificate signed by the Secret Operator. - /// The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. - /// - /// A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. - AutoTls(AutoTlsBackend), - - /// The [`experimentalCertManager` backend][1] injects a TLS certificate issued - /// by [cert-manager](https://cert-manager.io/). - /// - /// A new certificate will be requested the first time it is used by a Pod, it - /// will be reused after that (subject to cert-manager renewal rules). - /// - /// [1]: DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-certmanager - #[serde(rename = "experimentalCertManager")] - CertManager(CertManagerBackend), - - /// The [`kerberosKeytab` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-kerberoskeytab) - /// creates a Kerberos keytab file for a selected realm. - /// The Kerberos KDC and administrator credentials must be provided by the administrator. - KerberosKeytab(KerberosKeytabBackend), - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct K8sSearchBackend { - /// Configures the namespace searched for Secret objects. - pub search_namespace: SearchNamespace, - - /// Name of a ConfigMap that contains the information required to validate against this SecretClass. - /// - /// Resolved relative to `search_namespace`. - /// - /// Required to request a TrustStore for this SecretClass. - pub trust_store_config_map_name: Option, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub enum SearchNamespace { - /// The Secret objects are located in the same namespace as the Pod object. - /// Should be used for Secrets that are provisioned by the application administrator. - Pod {}, - - /// The Secret objects are located in a single global namespace. - /// Should be used for secrets that are provisioned by the cluster administrator. - Name(String), - } - - /// A partially evaluated match returned by [`SearchNamespace::matches_namespace`]. - /// Use [`Self::matches_pod_namespace`] to evaluate fully. - #[derive(Debug)] - pub enum SearchNamespaceMatchCondition { - /// The target object matches the search namespace. - True, - - /// The target object only matches the search namespace if mounted into a pod in - /// `namespace`. - IfPodIsInNamespace { namespace: String }, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct AutoTlsBackend { - /// Configures the certificate authority used to issue Pod certificates. - pub ca: AutoTlsCa, - - /// Additional trust roots which are added to the provided `ca.crt` file. - #[serde(default)] - pub additional_trust_roots: Vec, - - /// Maximum lifetime the created certificates are allowed to have. - /// In case consumers request a longer lifetime than allowed by this setting, - /// the lifetime will be the minimum of both, so this setting takes precedence. - /// The default value is 15 days. - #[serde(default = "AutoTlsBackend::default_max_certificate_lifetime")] - pub max_certificate_lifetime: Duration, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct AutoTlsCa { - /// Reference (name and namespace) to a Kubernetes Secret object where the CA certificate - /// and key is stored in the keys `ca.crt` and `ca.key` respectively. - pub secret: SecretReference, - - /// Whether the certificate authority should be managed by Secret Operator, including being generated - /// if it does not already exist. - // TODO: Consider renaming to `manage` for v1alpha2 - #[serde(default)] - pub auto_generate: bool, - - /// The lifetime of each generated certificate authority. - /// - /// Should always be more than double `maxCertificateLifetime`. - /// - /// If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. - /// If `autoGenerate: false` then the Secret Operator will log a warning instead. - #[serde(default = "AutoTlsCa::default_ca_certificate_lifetime")] - pub ca_certificate_lifetime: Duration, - - /// The algorithm used to generate a key pair and required configuration settings. - /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - #[serde(default)] - pub key_generation: CertificateKeyGeneration, - } +use std::{fmt::Display, ops::Deref}; - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub enum AdditionalTrustRoot { - /// Reference (name and namespace) to a Kubernetes ConfigMap object where additional - /// certificates are stored. - /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - /// certificate. - ConfigMap(ConfigMapReference), - - /// Reference (name and namespace) to a Kubernetes Secret object where additional certificates - /// are stored. - /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack - /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER - /// certificate. - Secret(SecretReference), - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub enum CertificateKeyGeneration { - Rsa { - /// The amount of bits used for generating the RSA keypair. - /// Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. - #[schemars(schema_with = "CertificateKeyGeneration::tls_key_length_schema")] - length: u32, - }, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct CertManagerBackend { - /// A reference to the cert-manager issuer that the certificates should be requested from. - pub issuer: CertManagerIssuer, - - /// The default lifetime of certificates. - /// - /// Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). - #[serde(default = "CertManagerBackend::default_certificate_lifetime")] - pub default_certificate_lifetime: Duration, - - /// The algorithm used to generate a key pair and required configuration settings. - /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. - #[serde(default)] - pub key_generation: CertificateKeyGeneration, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct CertManagerIssuer { - /// The kind of the issuer, Issuer or ClusterIssuer. - /// - /// If Issuer then it must be in the same namespace as the Pods using it. - pub kind: CertManagerIssuerKind, - - /// The name of the issuer. - pub name: String, - } - - #[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, JsonSchema, strum::Display)] - pub enum CertManagerIssuerKind { - /// An [Issuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.Issuer) in the same namespace as the Pod. - Issuer, - - /// A cluster-scoped [ClusterIssuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.ClusterIssuer). - ClusterIssuer, - } - - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct KerberosKeytabBackend { - /// The name of the Kerberos realm. This should be provided by the Kerberos administrator. - pub realm_name: KerberosRealmName, - - /// The hostname of the Kerberos Key Distribution Center (KDC). - /// This should be provided by the Kerberos administrator. - pub kdc: HostName, - - /// Kerberos admin configuration settings. - pub admin: KerberosKeytabBackendAdmin, - - /// Reference (`name` and `namespace`) to a K8s Secret object where a - /// keytab with administrative privileges is stored in the key `keytab`. - pub admin_keytab_secret: SecretReference, +use serde::{Deserialize, Serialize}; +use snafu::Snafu; +use stackable_operator::schemars::{self, JsonSchema}; - /// The admin principal. - pub admin_principal: KerberosPrincipal, - } +mod secret_class; +mod trust_store; - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub enum KerberosKeytabBackendAdmin { - /// Credentials should be provisioned in a MIT Kerberos Admin Server. - #[serde(rename_all = "camelCase")] - Mit { - /// The hostname of the Kerberos Admin Server. - /// This should be provided by the Kerberos administrator. - kadmin_server: HostName, - }, +pub mod v1alpha1 { + // NOTE (@Techassi): SecretClass v1alpha1 is unused and as such not exported. + pub use crate::crd::trust_store::v1alpha1::*; +} - /// Credentials should be provisioned in a Microsoft Active Directory domain. - #[serde(rename_all = "camelCase")] - ActiveDirectory { - /// An AD LDAP server, such as the AD Domain Controller. - /// This must match the server’s FQDN, or GSSAPI authentication will fail. - ldap_server: HostName, +pub use secret_class::{SecretClass, SecretClassVersion}; - /// Reference (name and namespace) to a Kubernetes Secret object containing - /// the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. - ldap_tls_ca_secret: SecretReference, +pub mod v1alpha2 { + pub use crate::crd::secret_class::v1alpha2::*; +} - /// Reference (name and namespace) to a Kubernetes Secret object where workload - /// passwords will be stored. This must not be accessible to end users. - password_cache_secret: SecretReference, +pub use trust_store::{TrustStore, TrustStoreVersion}; - /// The root Distinguished Name (DN) where service accounts should be provisioned, - /// typically `CN=Users,{domain_dn}`. - user_distinguished_name: String, +#[derive(Debug, Snafu)] +#[snafu(module)] +pub enum InvalidKerberosPrincipal { + #[snafu(display( + "principal contains illegal characters (allowed: alphanumeric, /, @, -, _, and .)" + ))] + IllegalCharacter, - /// The root Distinguished Name (DN) for AD-managed schemas, - /// typically `CN=Schema,CN=Configuration,{domain_dn}`. - schema_distinguished_name: String, + #[snafu(display("principal may not start with a dash"))] + StartWithDash, +} - /// Allows samAccountName generation for new accounts to be customized. - /// Note that setting this field (even if empty) makes the Secret Operator take - /// over the generation duty from the domain controller. - #[serde(rename = "experimentalGenerateSamAccountName")] - generate_sam_account_name: Option, - }, - } +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[serde(try_from = "String", into = "String")] +pub struct KerberosPrincipal(String); - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct ActiveDirectorySamAccountNameRules { - /// A prefix to be prepended to generated samAccountNames. - #[serde(default)] - pub prefix: String, - /// The total length of generated samAccountNames, _including_ `prefix`. - /// Must be larger than the length of `prefix`, but at most `20`. - /// - /// Note that this should be as large as possible, to minimize the risk of collisions. - #[serde(default = "ActiveDirectorySamAccountNameRules::default_total_length")] - #[schemars(range(max = 20))] - pub total_length: u8, +impl TryFrom for KerberosPrincipal { + type Error = InvalidKerberosPrincipal; + + fn try_from(value: String) -> Result { + if value.starts_with('-') { + invalid_kerberos_principal::StartWithDashSnafu.fail() + } else if value.contains(|chr: char| { + !chr.is_alphanumeric() + && chr != '/' + && chr != '@' + && chr != '.' + && chr != '-' + && chr != '_' + }) { + invalid_kerberos_principal::IllegalCharacterSnafu.fail() + } else { + Ok(KerberosPrincipal(value)) + } } +} - /// A [TrustStore](DOCS_BASE_URL_PLACEHOLDER/secret-operator/truststore) requests information about how to - /// validate secrets issued by a [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass). - /// - /// The requested information is written to a ConfigMap with the same name as the TrustStore. - #[versioned(crd(group = "secrets.stackable.tech", namespaced))] - #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] - #[serde(rename_all = "camelCase")] - pub struct TrustStoreSpec { - /// The name of the SecretClass that the request concerns. - pub secret_class_name: String, - - /// Which Kubernetes kind should be used to output the requested information to. - /// - /// The trust information (such as a `ca.crt`) can be considered public information, so we put - /// it in a `ConfigMap` by default. However, some tools might require it to be placed in a - /// `Secret`, so we also support that. - /// - /// Can be either `ConfigMap` or `Secret`, defaults to `ConfigMap`. - #[serde(default)] - pub target_kind: TrustStoreOutputType, - - /// The [format](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#format) that the data should be converted into. - pub format: Option, +impl From for String { + fn from(value: KerberosPrincipal) -> Self { + value.0 } +} - #[derive(Clone, Debug, Default, PartialEq, JsonSchema, Serialize, Deserialize)] - #[serde(rename_all = "PascalCase")] - pub enum TrustStoreOutputType { - Secret, - - #[default] - ConfigMap, +impl Display for KerberosPrincipal { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(&self.0) } } -#[cfg(test)] -mod test { - use super::*; - use crate::{ - backend::tls::{DEFAULT_CA_CERT_LIFETIME, DEFAULT_MAX_CERT_LIFETIME}, - crd::v1alpha1::{ - AdditionalTrustRoot, AutoTlsBackend, AutoTlsCa, CertificateKeyGeneration, SecretClass, - SecretClassBackend, SecretClassSpec, - }, - }; - - #[test] - fn test_deserialization() { - let input: &str = r#" - apiVersion: secrets.stackable.tech/v1alpha1 - kind: SecretClass - metadata: - name: tls - spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: default - keyGeneration: - rsa: - length: 3072 - "#; - let deserializer = serde_yaml::Deserializer::from_str(input); - let secret_class: SecretClass = - serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); - assert_eq!( - secret_class.spec, - SecretClassSpec { - backend: SecretClassBackend::AutoTls(AutoTlsBackend { - ca: AutoTlsCa { - secret: SecretReference { - name: "secret-provisioner-tls-ca".to_string(), - namespace: "default".to_string(), - }, - auto_generate: false, - ca_certificate_lifetime: DEFAULT_CA_CERT_LIFETIME, - key_generation: CertificateKeyGeneration::Rsa { - length: CertificateKeyGeneration::RSA_KEY_LENGTH_3072 - } - }, - additional_trust_roots: vec![], - max_certificate_lifetime: DEFAULT_MAX_CERT_LIFETIME, - }) - } - ); +impl Deref for KerberosPrincipal { + type Target = str; - let input: &str = r#" - apiVersion: secrets.stackable.tech/v1alpha1 - kind: SecretClass - metadata: - name: tls - spec: - backend: - autoTls: - ca: - secret: - name: secret-provisioner-tls-ca - namespace: default - autoGenerate: true - caCertificateLifetime: 100d - additionalTrustRoots: - - configMap: - name: tls-root-ca-config-map - namespace: default - - secret: - name: tls-root-ca-secret - namespace: default - maxCertificateLifetime: 31d - "#; - let deserializer = serde_yaml::Deserializer::from_str(input); - let secret_class: SecretClass = - serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); - assert_eq!( - secret_class.spec, - SecretClassSpec { - backend: SecretClassBackend::AutoTls(AutoTlsBackend { - ca: AutoTlsCa { - secret: SecretReference { - name: "secret-provisioner-tls-ca".to_string(), - namespace: "default".to_string(), - }, - auto_generate: true, - ca_certificate_lifetime: Duration::from_days_unchecked(100), - key_generation: CertificateKeyGeneration::default() - }, - additional_trust_roots: vec![ - AdditionalTrustRoot::ConfigMap(ConfigMapReference { - name: "tls-root-ca-config-map".to_string(), - namespace: "default".to_string(), - }), - AdditionalTrustRoot::Secret(SecretReference { - name: "tls-root-ca-secret".to_string(), - namespace: "default".to_string(), - }) - ], - max_certificate_lifetime: Duration::from_days_unchecked(31), - }) - } - ); + fn deref(&self) -> &Self::Target { + &self.0 } } diff --git a/rust/operator-binary/src/crd/secret_class/mod.rs b/rust/operator-binary/src/crd/secret_class/mod.rs new file mode 100644 index 00000000..383cd6fc --- /dev/null +++ b/rust/operator-binary/src/crd/secret_class/mod.rs @@ -0,0 +1,424 @@ +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + commons::networking::{HostName, KerberosRealmName}, + kube::CustomResource, + schemars::{self, JsonSchema}, + shared::time::Duration, + versioned::versioned, +}; +use stackable_secret_operator_utils::crd::{ConfigMapReference, SecretReference}; + +use crate::crd::KerberosPrincipal; + +mod v1alpha1_impl; +mod v1alpha2_impl; + +#[versioned( + version(name = "v1alpha1"), + version(name = "v1alpha2"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ), + options(k8s(enable_tracing)) +)] +pub mod versioned { + /// A [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass) is a cluster-global Kubernetes resource + /// that defines a category of secrets that the Secret Operator knows how to provision. + #[versioned(crd(group = "secrets.stackable.tech"))] + #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct SecretClassSpec { + /// Each SecretClass is associated with a single + /// [backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend), + /// which dictates the mechanism for issuing that kind of Secret. + pub backend: SecretClassBackend, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + #[allow(clippy::large_enum_variant)] + pub enum SecretClassBackend { + /// The [`k8sSearch` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-k8ssearch) + /// can be used to mount Secrets across namespaces into Pods. + K8sSearch(K8sSearchBackend), + + /// The [`autoTls` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-autotls) + /// issues a TLS certificate signed by the Secret Operator. + /// The certificate authority can be provided by the administrator, or managed automatically by the Secret Operator. + /// + /// A new certificate and key pair will be generated and signed for each Pod, keys or certificates are never reused. + AutoTls(AutoTlsBackend), + + /// The [`experimentalCertManager` backend][1] injects a TLS certificate issued + /// by [cert-manager](https://cert-manager.io/). + /// + /// A new certificate will be requested the first time it is used by a Pod, it + /// will be reused after that (subject to cert-manager renewal rules). + /// + /// [1]: DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-certmanager + #[serde(rename = "experimentalCertManager")] + CertManager(CertManagerBackend), + + /// The [`kerberosKeytab` backend](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#backend-kerberoskeytab) + /// creates a Kerberos keytab file for a selected realm. + /// The Kerberos KDC and administrator credentials must be provided by the administrator. + KerberosKeytab(KerberosKeytabBackend), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct K8sSearchBackend { + /// Configures the namespace searched for Secret objects. + pub search_namespace: SearchNamespace, + + /// Name of a ConfigMap that contains the information required to validate against this SecretClass. + /// + /// Resolved relative to `search_namespace`. + /// + /// Required to request a TrustStore for this SecretClass. + pub trust_store_config_map_name: Option, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum SearchNamespace { + /// The Secret objects are located in the same namespace as the Pod object. + /// Should be used for Secrets that are provisioned by the application administrator. + Pod {}, + + /// The Secret objects are located in a single global namespace. + /// Should be used for secrets that are provisioned by the cluster administrator. + Name(String), + } + + /// A partially evaluated match returned by [`SearchNamespace::matches_namespace`]. + /// Use [`Self::matches_pod_namespace`] to evaluate fully. + #[derive(Debug)] + pub enum SearchNamespaceMatchCondition { + /// The target object matches the search namespace. + True, + + /// The target object only matches the search namespace if mounted into a pod in + /// `namespace`. + IfPodIsInNamespace { namespace: String }, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct AutoTlsBackend { + /// Configures the certificate authority used to issue Pod certificates. + pub ca: AutoTlsCa, + + /// Additional trust roots which are added to the provided `ca.crt` file. + #[versioned(hint(vec))] + #[serde(default)] + pub additional_trust_roots: Vec, + + /// Maximum lifetime the created certificates are allowed to have. + /// In case consumers request a longer lifetime than allowed by this setting, + /// the lifetime will be the minimum of both, so this setting takes precedence. + /// The default value is 15 days. + #[serde(default = "v1alpha2::AutoTlsBackend::default_max_certificate_lifetime")] + pub max_certificate_lifetime: Duration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct AutoTlsCa { + /// Reference (name and namespace) to a Kubernetes Secret object where the CA certificate + /// and key is stored in the keys `ca.crt` and `ca.key` respectively. + pub secret: SecretReference, + + /// Whether the certificate authority should be managed by Secret Operator, including being generated + /// if it does not already exist. + // TODO: Consider renaming to `manage` for v1alpha2 + #[serde(default)] + pub auto_generate: bool, + + /// The lifetime of each generated certificate authority. + /// + /// Should always be more than double `maxCertificateLifetime`. + /// + /// If `autoGenerate: true` then the Secret Operator will prepare a new CA certificate the old CA approaches expiration. + /// If `autoGenerate: false` then the Secret Operator will log a warning instead. + #[serde(default = "v1alpha2::AutoTlsCa::default_ca_certificate_lifetime")] + pub ca_certificate_lifetime: Duration, + + /// The algorithm used to generate a key pair and required configuration settings. + /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + #[serde(default)] + pub key_generation: CertificateKeyGeneration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum AdditionalTrustRoot { + /// Reference (name and namespace) to a Kubernetes ConfigMap object where additional + /// certificates are stored. + /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + /// certificate. + ConfigMap(ConfigMapReference), + + /// Reference (name and namespace) to a Kubernetes Secret object where additional certificates + /// are stored. + /// The extensions of the keys denote its contents: A key suffixed with `.crt` contains a stack + /// of base64 encoded DER certificates, a key suffixed with `.der` contains a binary DER + /// certificate. + Secret(SecretReference), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum CertificateKeyGeneration { + Rsa { + /// The amount of bits used for generating the RSA keypair. + /// Currently, `2048`, `3072` and `4096` are supported. Defaults to `2048` bits. + #[schemars(schema_with = "v1alpha2::CertificateKeyGeneration::tls_key_length_schema")] + length: u32, + }, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct CertManagerBackend { + /// A reference to the cert-manager issuer that the certificates should be requested from. + pub issuer: CertManagerIssuer, + + /// The default lifetime of certificates. + /// + /// Defaults to 1 day. This may need to be increased for external issuers that impose rate limits (such as Let's Encrypt). + #[serde(default = "v1alpha2::CertManagerBackend::default_certificate_lifetime")] + pub default_certificate_lifetime: Duration, + + /// The algorithm used to generate a key pair and required configuration settings. + /// Currently only RSA and a key length of 2048, 3072 or 4096 bits can be configured. + #[serde(default)] + pub key_generation: CertificateKeyGeneration, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct CertManagerIssuer { + /// The kind of the issuer, Issuer or ClusterIssuer. + /// + /// If Issuer then it must be in the same namespace as the Pods using it. + pub kind: CertManagerIssuerKind, + + /// The name of the issuer. + pub name: String, + } + + #[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, JsonSchema, strum::Display)] + pub enum CertManagerIssuerKind { + /// An [Issuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.Issuer) in the same namespace as the Pod. + Issuer, + + /// A cluster-scoped [ClusterIssuer](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.ClusterIssuer). + ClusterIssuer, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackend { + /// The name of the Kerberos realm. This should be provided by the Kerberos administrator. + pub realm_name: KerberosRealmName, + + /// The hostname of the Kerberos Key Distribution Center (KDC). + /// This should be provided by the Kerberos administrator. + pub kdc: HostName, + + /// Kerberos admin configuration settings. + pub admin: KerberosKeytabBackendAdmin, + + /// Reference (`name` and `namespace`) to a K8s Secret object where a + /// keytab with administrative privileges is stored in the key `keytab`. + pub admin_keytab_secret: SecretReference, + + /// The admin principal. + pub admin_principal: KerberosPrincipal, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub enum KerberosKeytabBackendAdmin { + /// Credentials should be provisioned in a MIT Kerberos Admin Server. + Mit(KerberosKeytabBackendMit), + + /// Credentials should be provisioned in a Microsoft Active Directory domain. + ActiveDirectory(KerberosKeytabBackendActiveDirectory), + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackendMit { + /// The hostname of the Kerberos Admin Server. + /// This should be provided by the Kerberos administrator. + kadmin_server: HostName, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct KerberosKeytabBackendActiveDirectory { + /// An AD LDAP server, such as the AD Domain Controller. + /// This must match the server’s FQDN, or GSSAPI authentication will fail. + ldap_server: HostName, + + /// Reference (name and namespace) to a Kubernetes Secret object containing + /// the TLS CA (in `ca.crt`) that the LDAP server’s certificate should be authenticated against. + ldap_tls_ca_secret: SecretReference, + + /// Reference (name and namespace) to a Kubernetes Secret object where workload + /// passwords will be stored. This must not be accessible to end users. + password_cache_secret: SecretReference, + + /// The root Distinguished Name (DN) where service accounts should be provisioned, + /// typically `CN=Users,{domain_dn}`. + user_distinguished_name: String, + + /// The root Distinguished Name (DN) for AD-managed schemas, + /// typically `CN=Schema,CN=Configuration,{domain_dn}`. + schema_distinguished_name: String, + + /// Allows samAccountName generation for new accounts to be customized. + /// Note that setting this field (even if empty) makes the Secret Operator take + /// over the generation duty from the domain controller. + #[versioned( + changed( + since = "v1alpha2", + from_name = "experimental_generate_sam_account_name" + ), + hint(option) + )] + generate_sam_account_name: Option, + } + + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct ActiveDirectorySamAccountNameRules { + /// A prefix to be prepended to generated samAccountNames. + #[serde(default)] + pub prefix: String, + /// The total length of generated samAccountNames, _including_ `prefix`. + /// Must be larger than the length of `prefix`, but at most `20`. + /// + /// Note that this should be as large as possible, to minimize the risk of collisions. + #[serde(default = "v1alpha2::ActiveDirectorySamAccountNameRules::default_total_length")] + pub total_length: u8, + } +} + +#[cfg(test)] +mod test { + use stackable_operator::shared::time::Duration; + use stackable_secret_operator_utils::crd::{ConfigMapReference, SecretReference}; + + use crate::{ + backend::tls::{DEFAULT_CA_CERT_LIFETIME, DEFAULT_MAX_CERT_LIFETIME}, + crd::v1alpha2::{ + AdditionalTrustRoot, AutoTlsBackend, AutoTlsCa, CertificateKeyGeneration, SecretClass, + SecretClassBackend, SecretClassSpec, + }, + }; + + #[test] + fn test_deserialization() { + let input: &str = r#" + apiVersion: secrets.stackable.tech/v1alpha1 + kind: SecretClass + metadata: + name: tls + spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: default + keyGeneration: + rsa: + length: 3072 + "#; + let deserializer = serde_yaml::Deserializer::from_str(input); + let secret_class: SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); + assert_eq!( + secret_class.spec, + SecretClassSpec { + backend: SecretClassBackend::AutoTls(AutoTlsBackend { + ca: AutoTlsCa { + secret: SecretReference { + name: "secret-provisioner-tls-ca".to_string(), + namespace: "default".to_string(), + }, + auto_generate: false, + ca_certificate_lifetime: DEFAULT_CA_CERT_LIFETIME, + key_generation: CertificateKeyGeneration::Rsa { + length: CertificateKeyGeneration::RSA_KEY_LENGTH_3072 + } + }, + additional_trust_roots: vec![], + max_certificate_lifetime: DEFAULT_MAX_CERT_LIFETIME, + }) + } + ); + + let input: &str = r#" + apiVersion: secrets.stackable.tech/v1alpha1 + kind: SecretClass + metadata: + name: tls + spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: default + autoGenerate: true + caCertificateLifetime: 100d + additionalTrustRoots: + - configMap: + name: tls-root-ca-config-map + namespace: default + - secret: + name: tls-root-ca-secret + namespace: default + maxCertificateLifetime: 31d + "#; + let deserializer = serde_yaml::Deserializer::from_str(input); + let secret_class: SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer).unwrap(); + assert_eq!( + secret_class.spec, + SecretClassSpec { + backend: SecretClassBackend::AutoTls(AutoTlsBackend { + ca: AutoTlsCa { + secret: SecretReference { + name: "secret-provisioner-tls-ca".to_string(), + namespace: "default".to_string(), + }, + auto_generate: true, + ca_certificate_lifetime: Duration::from_days_unchecked(100), + key_generation: CertificateKeyGeneration::default() + }, + additional_trust_roots: vec![ + AdditionalTrustRoot::ConfigMap(ConfigMapReference { + name: "tls-root-ca-config-map".to_string(), + namespace: "default".to_string(), + }), + AdditionalTrustRoot::Secret(SecretReference { + name: "tls-root-ca-secret".to_string(), + namespace: "default".to_string(), + }) + ], + max_certificate_lifetime: Duration::from_days_unchecked(31), + }) + } + ); + } +} diff --git a/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs b/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs new file mode 100644 index 00000000..8d22454d --- /dev/null +++ b/rust/operator-binary/src/crd/secret_class/v1alpha1_impl.rs @@ -0,0 +1,135 @@ +use stackable_operator::{ + k8s_openapi::api::core::v1::{ConfigMap, Secret}, + kube::api::PartialObjectMeta, + schemars::{Schema, SchemaGenerator}, +}; + +use crate::crd::secret_class::v1alpha1::{ + CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, SecretClassBackend, +}; + +impl SecretClassBackend { + // Currently no `refers_to_*` method actually returns more than one element, + // but returning `Iterator` instead of `Option` to ensure that all consumers are ready + // for adding more conditions. + + // The matcher methods are on the CRD type rather than the initialized `Backend` impls + // to avoid having to initialize the backend for each watch event. + + /// Returns the conditions where the backend refers to `config_map`. + pub fn refers_to_config_map( + &self, + config_map: &PartialObjectMeta, + ) -> impl Iterator { + let cm_namespace = config_map.metadata.namespace.as_deref(); + match self { + Self::K8sSearch(backend) => { + let name_matches = backend.trust_store_config_map_name == config_map.metadata.name; + cm_namespace + .filter(|_| name_matches) + .and_then(|cm_ns| backend.search_namespace.matches_namespace(cm_ns)) + } + Self::AutoTls(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } + + /// Returns the conditions where the backend refers to `secret`. + pub fn refers_to_secret( + &self, + secret: &PartialObjectMeta, + ) -> impl Iterator { + match self { + Self::AutoTls(backend) => { + (backend.ca.secret == *secret).then_some(SearchNamespaceMatchCondition::True) + } + Self::K8sSearch(_) => None, + Self::CertManager(_) => None, + Self::KerberosKeytab(_) => None, + } + .into_iter() + } +} + +impl SearchNamespace { + pub fn resolve<'a>(&'a self, pod_namespace: &'a str) -> &'a str { + match self { + SearchNamespace::Pod {} => pod_namespace, + SearchNamespace::Name(ns) => ns, + } + } + + /// Returns [`Some`] if this `SearchNamespace` could possibly match an object in the namespace + /// `object_namespace`, otherwise [`None`]. + /// + /// This is optimistic, you then need to call [`SearchNamespaceMatchCondition::matches_pod_namespace`] + /// to evaluate the match for a specific pod's namespace. + pub fn matches_namespace( + &self, + object_namespace: &str, + ) -> Option { + match self { + SearchNamespace::Pod {} => Some(SearchNamespaceMatchCondition::IfPodIsInNamespace { + namespace: object_namespace.to_string(), + }), + SearchNamespace::Name(ns) => { + (ns == object_namespace).then_some(SearchNamespaceMatchCondition::True) + } + } + } +} + +impl SearchNamespaceMatchCondition { + pub fn matches_pod_namespace(&self, pod_ns: &str) -> bool { + match self { + Self::True => true, + Self::IfPodIsInNamespace { namespace } => namespace == pod_ns, + } + } +} + +impl CertificateKeyGeneration { + pub const RSA_KEY_LENGTH_2048: u32 = 2048; + pub const RSA_KEY_LENGTH_3072: u32 = 3072; + pub const RSA_KEY_LENGTH_4096: u32 = 4096; + + // Could not get a "standard" enum with assigned values/discriminants to work as integers in the schema + // The following was generated and requires the length to be provided as string (we want an integer) + // keyGeneration: + // default: + // rsa: + // length: '2048' + // oneOf: + // - required: + // - rsa + // properties: + // rsa: + // properties: + // length: + // enum: + // - '2048' + // - '3072' + // - '4096' + // type: string + pub fn tls_key_length_schema(_: &mut SchemaGenerator) -> Schema { + serde_json::from_value(serde_json::json!({ + "type": "integer", + "enum": [ + Self::RSA_KEY_LENGTH_2048, + Self::RSA_KEY_LENGTH_3072, + Self::RSA_KEY_LENGTH_4096 + ] + })) + .expect("Failed to parse JSON of custom tls key length schema") + } +} + +impl Default for CertificateKeyGeneration { + fn default() -> Self { + Self::Rsa { + length: Self::RSA_KEY_LENGTH_2048, + } + } +} diff --git a/rust/operator-binary/src/crd/v1alpha1_impl.rs b/rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs similarity index 75% rename from rust/operator-binary/src/crd/v1alpha1_impl.rs rename to rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs index 21c3f1a7..654deb52 100644 --- a/rust/operator-binary/src/crd/v1alpha1_impl.rs +++ b/rust/operator-binary/src/crd/secret_class/v1alpha2_impl.rs @@ -1,6 +1,3 @@ -use std::{fmt::Display, ops::Deref}; - -use snafu::Snafu; use stackable_operator::{ k8s_openapi::api::core::v1::{ConfigMap, Secret}, kube::api::PartialObjectMeta, @@ -10,28 +7,13 @@ use stackable_operator::{ use crate::{ backend, - crd::{ - KerberosPrincipal, - v1alpha1::{ - ActiveDirectorySamAccountNameRules, AutoTlsBackend, AutoTlsCa, CertManagerBackend, - CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, - SecretClassBackend, - }, + crd::v1alpha2::{ + ActiveDirectorySamAccountNameRules, AutoTlsBackend, AutoTlsCa, CertManagerBackend, + CertificateKeyGeneration, SearchNamespace, SearchNamespaceMatchCondition, + SecretClassBackend, }, }; -#[derive(Debug, Snafu)] -#[snafu(module)] -pub enum InvalidKerberosPrincipal { - #[snafu(display( - "principal contains illegal characters (allowed: alphanumeric, /, @, -, _, and .)" - ))] - IllegalCharacter, - - #[snafu(display("principal may not start with a dash"))] - StartWithDash, -} - impl SecretClassBackend { // Currently no `refers_to_*` method actually returns more than one element, // but returning `Iterator` instead of `Option` to ensure that all consumers are ready @@ -181,44 +163,3 @@ impl ActiveDirectorySamAccountNameRules { 20 } } - -impl TryFrom for KerberosPrincipal { - type Error = InvalidKerberosPrincipal; - - fn try_from(value: String) -> Result { - if value.starts_with('-') { - invalid_kerberos_principal::StartWithDashSnafu.fail() - } else if value.contains(|chr: char| { - !chr.is_alphanumeric() - && chr != '/' - && chr != '@' - && chr != '.' - && chr != '-' - && chr != '_' - }) { - invalid_kerberos_principal::IllegalCharacterSnafu.fail() - } else { - Ok(KerberosPrincipal(value)) - } - } -} - -impl From for String { - fn from(value: KerberosPrincipal) -> Self { - value.0 - } -} - -impl Display for KerberosPrincipal { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(&self.0) - } -} - -impl Deref for KerberosPrincipal { - type Target = str; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} diff --git a/rust/operator-binary/src/crd/trust_store/mod.rs b/rust/operator-binary/src/crd/trust_store/mod.rs new file mode 100644 index 00000000..18e5c3fe --- /dev/null +++ b/rust/operator-binary/src/crd/trust_store/mod.rs @@ -0,0 +1,54 @@ +use serde::{Deserialize, Serialize}; +use stackable_operator::{ + kube::CustomResource, + schemars::{self, JsonSchema}, + versioned::versioned, +}; + +use crate::format::SecretFormat; + +#[versioned( + version(name = "v1alpha1"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ) +)] +pub mod versioned { + /// A [TrustStore](DOCS_BASE_URL_PLACEHOLDER/secret-operator/truststore) requests information about how to + /// validate secrets issued by a [SecretClass](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass). + /// + /// The requested information is written to a ConfigMap with the same name as the TrustStore. + #[versioned(crd(group = "secrets.stackable.tech", namespaced))] + #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] + #[serde(rename_all = "camelCase")] + pub struct TrustStoreSpec { + /// The name of the SecretClass that the request concerns. + pub secret_class_name: String, + + /// Which Kubernetes kind should be used to output the requested information to. + /// + /// The trust information (such as a `ca.crt`) can be considered public information, so we put + /// it in a `ConfigMap` by default. However, some tools might require it to be placed in a + /// `Secret`, so we also support that. + /// + /// Can be either `ConfigMap` or `Secret`, defaults to `ConfigMap`. + #[serde(default)] + pub target_kind: TrustStoreOutputType, + + /// The [format](DOCS_BASE_URL_PLACEHOLDER/secret-operator/secretclass#format) that the data should be converted into. + pub format: Option, + } + + #[derive(Clone, Debug, Default, PartialEq, JsonSchema, Serialize, Deserialize)] + #[serde(rename_all = "PascalCase")] + pub enum TrustStoreOutputType { + Secret, + + #[default] + ConfigMap, + } +} diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 1ec67d61..a819793a 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -17,16 +17,24 @@ use grpc::csi::v1::{ use stackable_operator::{ YamlSchema, cli::{Command, CommonOptions, RunArguments}, + client::Client, eos::EndOfSupportChecker, + kvp::{Label, LabelExt}, shared::yaml::SerializeOptions, telemetry::Tracing, }; -use tokio::signal::unix::{SignalKind, signal}; +use tokio::{ + signal::unix::{SignalKind, signal}, + sync::oneshot, +}; use tokio_stream::wrappers::UnixListenerStream; use tonic::transport::Server; use utils::{TonicUnixStream, uds_bind_private}; -use crate::crd::{SecretClass, TrustStore}; +use crate::{ + crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion, v1alpha2}, + webhooks::conversion::create_webhook_and_maintainer, +}; mod backend; mod crd; @@ -36,8 +44,10 @@ mod format; mod grpc; mod truststore_controller; mod utils; +mod webhooks; pub const OPERATOR_NAME: &str = "secrets.stackable.tech"; +pub const FIELD_MANAGER: &str = "secret-operator"; #[derive(clap::Parser)] #[clap(author, version)] @@ -62,7 +72,7 @@ enum RunMode { CsiNodeService(CsiNodeServiceArguments), /// Run the controller, one per Kubernetes cluster. - Controller, + Controller(ControllerArguments), } #[derive(Debug, clap::Args)] @@ -80,6 +90,15 @@ struct CsiNodeServiceArguments { privileged: bool, } +#[derive(Debug, clap::Args)] +struct ControllerArguments { + /// The namespace that the TLS Certificate Authority is installed into. + /// + /// Defaults to the namespace where secret-operator is installed. + #[arg(long, env)] + tls_secretclass_ca_secret_namespace: Option, +} + mod built_info { include!(concat!(env!("OUT_DIR"), "/built.rs")); } @@ -90,14 +109,14 @@ async fn main() -> anyhow::Result<()> { match cli.cmd { Command::Crd => { - SecretClass::merged_crd(crd::SecretClassVersion::V1Alpha1)? + SecretClass::merged_crd(SecretClassVersion::V1Alpha2)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; - TrustStore::merged_crd(crd::TrustStoreVersion::V1Alpha1)? + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } Command::Run(SecretOperatorRun { common, mode }) => { let RunArguments { - operator_environment: _, + operator_environment, product_config: _, watch_namespace, maintenance, @@ -180,11 +199,47 @@ async fn main() -> anyhow::Result<()> { try_join!(csi_server, eos_checker)?; } - RunMode::Controller => { + RunMode::Controller(ControllerArguments { + tls_secretclass_ca_secret_namespace, + }) => { + let (conversion_webhook, crd_maintainer, initial_reconcile_rx) = + create_webhook_and_maintainer( + &operator_environment, + maintenance.disable_crd_maintenance, + client.as_kube_client(), + ) + .await?; + + let conversion_webhook = conversion_webhook + .run() + .map_err(|err| anyhow!(err).context("failed to run conversion webhook")); + + let crd_maintainer = crd_maintainer + .run() + .map_err(|err| anyhow!(err).context("failed to run CRD maintainer")); + + let ca_secret_namespace = tls_secretclass_ca_secret_namespace + .unwrap_or(operator_environment.operator_namespace.clone()); + + let default_secretclass = create_default_secretclass( + initial_reconcile_rx, + ca_secret_namespace, + client.clone(), + ) + .map_err(|err| { + anyhow!(err).context("failed to apply default custom resources") + }); + let truststore_controller = truststore_controller::start(client, &watch_namespace).map(anyhow::Ok); - try_join!(truststore_controller, eos_checker)?; + try_join!( + truststore_controller, + default_secretclass, + conversion_webhook, + crd_maintainer, + eos_checker, + )?; } } } @@ -192,3 +247,37 @@ async fn main() -> anyhow::Result<()> { Ok(()) } + +async fn create_default_secretclass( + initial_reconcile_rx: oneshot::Receiver<()>, + ca_secret_namespace: String, + client: Client, +) -> anyhow::Result<()> { + initial_reconcile_rx.await?; + + tracing::info!("applying default secretclass"); + + let deserializer = serde_yaml::Deserializer::from_slice(include_bytes!("secretclass.yaml")); + let mut tls_secret_class: v1alpha2::SecretClass = + serde_yaml::with::singleton_map_recursive::deserialize(deserializer) + .expect("compile-time included secretclass must be valid YAML"); + + #[rustfmt::skip] + let managed_by = Label::managed_by(OPERATOR_NAME, "secretclass").expect("managed-by label must be valid"); + let name = Label::name(OPERATOR_NAME).expect("name label must be valid"); + + tls_secret_class + .add_label(managed_by) + .add_label(name) + .add_label(Label::stackable_vendor()); + + if let v1alpha2::SecretClassBackend::AutoTls(auto_tls_backend) = + &mut tls_secret_class.spec.backend + { + auto_tls_backend.ca.secret.namespace = ca_secret_namespace + } + + client.create_if_missing(&tls_secret_class).await?; + + Ok(()) +} diff --git a/rust/operator-binary/src/secretclass.yaml b/rust/operator-binary/src/secretclass.yaml new file mode 100644 index 00000000..7fd00016 --- /dev/null +++ b/rust/operator-binary/src/secretclass.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: secrets.stackable.tech/v1alpha2 +kind: SecretClass +metadata: + name: tls +spec: + backend: + autoTls: + ca: + secret: + name: secret-provisioner-tls-ca + namespace: will-be-overridden-by-secret-operator + autoGenerate: true diff --git a/rust/operator-binary/src/truststore_controller.rs b/rust/operator-binary/src/truststore_controller.rs index 3c9f599c..583ec163 100644 --- a/rust/operator-binary/src/truststore_controller.rs +++ b/rust/operator-binary/src/truststore_controller.rs @@ -32,7 +32,7 @@ use strum::{EnumDiscriminants, IntoStaticStr}; use crate::{ OPERATOR_NAME, backend::{self, SecretBackendError, TrustSelector}, - crd::v1alpha1, + crd::{v1alpha1, v1alpha2}, format::{ self, well_known::{CompatibilityOptions, NamingOptions}, @@ -60,7 +60,7 @@ pub async fn start(client: stackable_operator::client::Client, watch_namespace: controller .watches_stream( watcher( - client.get_api::>(&()), + client.get_api::>(&()), watcher::Config::default(), ) .reflect(secretclasses_writer) @@ -118,15 +118,15 @@ pub async fn start(client: stackable_operator::client::Client, watch_namespace: .await; } -/// Resolves modifications to dependencies of [`v1alpha1::SecretClass`] objects into +/// Resolves modifications to dependencies of [`v1alpha2::SecretClass`] objects into /// a list of affected [`v1alpha1::TrustStore`]s. fn secretclass_dependency_watch_mapper( truststores: reflector::Store>, - secretclasses: reflector::Store>, - reference_conditions: impl Copy + Fn(&v1alpha1::SecretClass, &Dep) -> Conds, + secretclasses: reflector::Store>, + reference_conditions: impl Copy + Fn(&v1alpha2::SecretClass, &Dep) -> Conds, ) -> impl Fn(Dep) -> Vec>> where - Conds: IntoIterator, + Conds: IntoIterator, { move |dep| { let potentially_matching_secretclasses = @@ -142,8 +142,8 @@ where }) }) .collect::, - Vec, + ObjectRef, + Vec, >>(); truststores .state() @@ -154,7 +154,7 @@ where return false; }; let secret_class_ref = - ObjectRef::::new(&ts.spec.secret_class_name); + ObjectRef::::new(&ts.spec.secret_class_name); potentially_matching_secretclasses .get(&secret_class_ref) .is_some_and(|conds| { @@ -180,13 +180,13 @@ pub enum Error { #[snafu(display("failed to get {secret_class} for TrustStore"))] GetSecretClass { source: stackable_operator::client::Error, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to initialize SecretClass backend for {secret_class}"))] InitBackend { source: backend::dynamic::FromClassError, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to get trust data from backend"))] @@ -198,7 +198,7 @@ pub enum Error { #[snafu(display("failed to convert trust data into desired format"))] FormatData { source: format::IntoFilesError, - secret_class: ObjectRef, + secret_class: ObjectRef, }, #[snafu(display("failed to build owner reference to the TrustStore"))] @@ -256,10 +256,10 @@ async fn reconcile( let secret_class_name = &truststore.spec.secret_class_name; let secret_class = ctx .client - .get::(secret_class_name, &()) + .get::(secret_class_name, &()) .await .context(GetSecretClassSnafu { - secret_class: ObjectRef::::new(secret_class_name), + secret_class: ObjectRef::::new(secret_class_name), })?; let secret_class_ref = secret_class.to_object_ref(()); let backend = backend::dynamic::from_class(&ctx.client, secret_class) diff --git a/rust/operator-binary/src/webhooks/conversion.rs b/rust/operator-binary/src/webhooks/conversion.rs new file mode 100644 index 00000000..b681cb8e --- /dev/null +++ b/rust/operator-binary/src/webhooks/conversion.rs @@ -0,0 +1,62 @@ +use snafu::{ResultExt, Snafu}; +use stackable_operator::{ + cli::OperatorEnvironmentOptions, + kube::{Client, core::crd::MergeError}, + webhook::{ + maintainer::CustomResourceDefinitionMaintainer, + servers::{ConversionWebhookError, ConversionWebhookServer}, + }, +}; +use tokio::sync::oneshot; + +use crate::{ + FIELD_MANAGER, + crd::{SecretClass, SecretClassVersion, TrustStore, TrustStoreVersion}, +}; + +/// Contains errors which can be encountered when creating the conversion webhook server and the +/// CRD maintainer. +#[derive(Debug, Snafu)] +pub enum Error { + #[snafu(display("failed to merge CRD"))] + MergeCrd { source: MergeError }, + + #[snafu(display("failed to create conversion webhook server"))] + CreateConversionWebhook { source: ConversionWebhookError }, +} + +/// Creates and returns a [`ConversionWebhookServer`] and a [`CustomResourceDefinitionMaintainer`]. +pub async fn create_webhook_and_maintainer<'a>( + operator_environment: &'a OperatorEnvironmentOptions, + disable_crd_maintenance: bool, + client: Client, +) -> Result< + ( + ConversionWebhookServer, + CustomResourceDefinitionMaintainer<'a>, + oneshot::Receiver<()>, + ), + Error, +> { + let crds_and_handlers = [ + ( + SecretClass::merged_crd(SecretClassVersion::V1Alpha2).context(MergeCrdSnafu)?, + SecretClass::try_convert as fn(_) -> _, + ), + ( + TrustStore::merged_crd(TrustStoreVersion::V1Alpha1).context(MergeCrdSnafu)?, + TrustStore::try_convert as fn(_) -> _, + ), + ]; + + ConversionWebhookServer::with_maintainer( + crds_and_handlers, + &operator_environment.operator_service_name, + &operator_environment.operator_namespace, + FIELD_MANAGER, + disable_crd_maintenance, + client, + ) + .await + .context(CreateConversionWebhookSnafu) +} diff --git a/rust/operator-binary/src/webhooks/mod.rs b/rust/operator-binary/src/webhooks/mod.rs new file mode 100644 index 00000000..11eb2fc0 --- /dev/null +++ b/rust/operator-binary/src/webhooks/mod.rs @@ -0,0 +1 @@ +pub mod conversion; diff --git a/scripts/run-tests b/scripts/run-tests index 44f27fca..d30c2448 100755 --- a/scripts/run-tests +++ b/scripts/run-tests @@ -11,6 +11,7 @@ import shutil import subprocess import sys import tempfile +import time __version__ = "0.0.1" @@ -437,6 +438,7 @@ def main(argv) -> int: gen_tests(opts.test_suite, opts.namespace, opts.work_dir) with release_file(opts.operator, opts.skip_operator) as f: maybe_install_release(opts.skip_release, f) + time.sleep(10) if opts.skip_tests: logging.info("Skip running tests.") else: