From cda6f5fff1ee9bed3ad6bcf623ea79de61c3cc0f Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Wed, 24 Sep 2025 17:56:02 -0400 Subject: [PATCH 01/10] adding toleration field --- src/kube/notebook/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index 29ccf39f..88656065 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -117,6 +117,15 @@ pub struct PodSpec { volumes: Option>, } +#[derive(Deserialize, Serialize, Clone, Debug, JsonSchema)] +pub struct Toleration { + pub effect: Option, + pub key: Option, + pub operator: Option, + pub toleration_seconds: Option, + pub value: Option, +} + #[derive(Deserialize, Serialize, Clone, Debug, JsonSchema)] pub struct ImagePullSecret { name: String, From bfee5eed72ca893dabf6a7a3ee2fb22bb71e3c7d Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Thu, 25 Sep 2025 11:02:59 -0400 Subject: [PATCH 02/10] toleration impl --- src/kube/notebook/mod.rs | 3 +++ src/web/route/notebook/mod.rs | 1 + 2 files changed, 4 insertions(+) diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index 88656065..7cfa5f92 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -27,6 +27,7 @@ impl NotebookSpec { name: String, notebook_image_name: &str, volume_name: String, + tolerations: Option>, notebook_start_url: &mut Option, max_idle_time: &mut Option, env_to_add: Vec<(String, String)>, @@ -86,6 +87,7 @@ impl NotebookSpec { workingdir: notebook_image.working_dir.clone(), env: Some(env), }], + tolerations, image_pull_secrets: notebook_image .secret .clone() @@ -114,6 +116,7 @@ pub struct PodSpec { containers: Vec, #[serde(rename = "imagePullSecrets")] image_pull_secrets: Option>, + tolerations: Option>, volumes: Option>, } diff --git a/src/web/route/notebook/mod.rs b/src/web/route/notebook/mod.rs index 722f9900..f4b19f27 100644 --- a/src/web/route/notebook/mod.rs +++ b/src/web/route/notebook/mod.rs @@ -262,6 +262,7 @@ async fn notebook_create( name.clone(), "open_ad_workbench", pvc_name, + None, &mut start_up_url, &mut max_idle_time, vec![("PROXY_KEY".to_string(), notebook_token)], From 8275e7c0300ec96ff1929dd2aa31b194f2de4272 Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Fri, 26 Sep 2025 13:16:57 -0400 Subject: [PATCH 03/10] notebook heavy CRD update --- config/notebook.toml | 4 ++++ src/config/mod.rs | 2 ++ src/kube/notebook/mod.rs | 24 ++++++++++++++++++++---- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/config/notebook.toml b/config/notebook.toml index 38cc09da..78f94684 100644 --- a/config/notebook.toml +++ b/config/notebook.toml @@ -17,6 +17,8 @@ notebook_env = [ secret = "ibmdpdev-openad-pull-secret" start_up_url = "lab/tree/start_menu.ipynb" max_idle_time = 86400 +cpu_heavy = "4" +mem_heavy = "32Gi" [open_ad_workbench.env] PROXY_URL = "https://open.accelerate.science/proxy" @@ -36,5 +38,7 @@ notebook_env = [ # base-url is taken care by bridge ] max_idle_time = 86400 +cpu_heavy = "4" +mem_heavy = "8Gi" [datascience_notebook.env] PROXY_URL = "" diff --git a/src/config/mod.rs b/src/config/mod.rs index f326a71a..bf07276a 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -71,6 +71,8 @@ pub struct Notebook { pub args: Option>, pub start_up_url: Option, pub max_idle_time: Option, + pub cpu_heavy: Option, + pub mem_heavy: Option, } const OIDC_PROVIDER: [OpenIDProvider; 2] = [OpenIDProvider::W3, OpenIDProvider::IbmId]; diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index 7cfa5f92..f99761ba 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -22,6 +22,9 @@ pub struct NotebookSpec { template: NotebookTemplateSpec, } +static CPU: &'static str = "4"; +static MEM: &'static str = "8Gi"; + impl NotebookSpec { pub fn new( name: String, @@ -33,8 +36,20 @@ impl NotebookSpec { env_to_add: Vec<(String, String)>, ) -> Self { let notebook_image = CONFIG.notebooks.get(notebook_image_name).unwrap(); + // let mut notebook_env = notebook_image.notebook_env.clone().unwrap_or_default(); + let (cpu, mem) = { + if tolerations.is_some() { + ( + notebook_image.cpu_heavy.as_deref().unwrap_or(CPU), + notebook_image.mem_heavy.as_deref().unwrap_or(MEM), + ) + } else { + ("2", "4Gi") + } + }; + notebook_env.push(format!( "--ServerApp.base_url='notebook/{}/{}'", *NOTEBOOK_NAMESPACE, name @@ -69,12 +84,12 @@ impl NotebookSpec { image: notebook_image.url.clone(), resources: Some(ResourceRequirements { requests: BTreeMap::from([ - ("cpu".to_string(), "2".to_string()), - ("memory".to_string(), "4Gi".to_string()), + ("cpu".to_string(), cpu.to_string()), + ("memory".to_string(), mem.to_string()), ]), limits: BTreeMap::from([ - ("cpu".to_string(), "2".to_string()), - ("memory".to_string(), "4Gi".to_string()), + ("cpu".to_string(), cpu.to_string()), + ("memory".to_string(), mem.to_string()), ]), }), image_pull_policy: notebook_image.pull_policy.clone(), @@ -240,6 +255,7 @@ mod test { name, "open_ad_workbench", volume_name, + None, &mut start_url, &mut max_idle_time, vec![], From cc524a926e5ab6ac9b445be8c84f90d619680d56 Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Fri, 26 Sep 2025 15:10:03 -0400 Subject: [PATCH 04/10] more heavy notebook impl --- config/notebook.toml | 6 ++++++ src/config/mod.rs | 11 +++++++++-- src/kube/notebook/mod.rs | 29 ++++++++++++++++++++++++----- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/config/notebook.toml b/config/notebook.toml index 78f94684..d3a9f7f4 100644 --- a/config/notebook.toml +++ b/config/notebook.toml @@ -17,8 +17,11 @@ notebook_env = [ secret = "ibmdpdev-openad-pull-secret" start_up_url = "lab/tree/start_menu.ipynb" max_idle_time = 86400 +[open_ad_workbench.scheduling] cpu_heavy = "4" mem_heavy = "32Gi" +toleration_key = "worker/cpu" +toleration_value = "large" [open_ad_workbench.env] PROXY_URL = "https://open.accelerate.science/proxy" @@ -38,7 +41,10 @@ notebook_env = [ # base-url is taken care by bridge ] max_idle_time = 86400 +[datascience_notebook.scheduling] cpu_heavy = "4" mem_heavy = "8Gi" +toleration_key = "worker/cpu" +toleration_value = "" [datascience_notebook.env] PROXY_URL = "" diff --git a/src/config/mod.rs b/src/config/mod.rs index bf07276a..d789b4bf 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -71,8 +71,15 @@ pub struct Notebook { pub args: Option>, pub start_up_url: Option, pub max_idle_time: Option, - pub cpu_heavy: Option, - pub mem_heavy: Option, + pub scheduling: Option, +} + +#[derive(Deserialize, Debug)] +pub struct Scheduling { + pub cpu_heavy: String, + pub mem_heavy: String, + pub toleration_key: String, + pub toleration_value: String, } const OIDC_PROVIDER: [OpenIDProvider; 2] = [OpenIDProvider::W3, OpenIDProvider::IbmId]; diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index f99761ba..890d71df 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -22,8 +22,8 @@ pub struct NotebookSpec { template: NotebookTemplateSpec, } -static CPU: &'static str = "4"; -static MEM: &'static str = "8Gi"; +static CPU_HEAVY_DEFAULT: &str = "4"; +static MEM_HEAVY_DEFAULT: &str = "8Gi"; impl NotebookSpec { pub fn new( @@ -36,14 +36,21 @@ impl NotebookSpec { env_to_add: Vec<(String, String)>, ) -> Self { let notebook_image = CONFIG.notebooks.get(notebook_image_name).unwrap(); - // let mut notebook_env = notebook_image.notebook_env.clone().unwrap_or_default(); let (cpu, mem) = { if tolerations.is_some() { ( - notebook_image.cpu_heavy.as_deref().unwrap_or(CPU), - notebook_image.mem_heavy.as_deref().unwrap_or(MEM), + notebook_image + .scheduling + .as_ref() + .map(|v| v.cpu_heavy.as_ref()) + .unwrap_or(CPU_HEAVY_DEFAULT), + notebook_image + .scheduling + .as_ref() + .map(|v| v.mem_heavy.as_ref()) + .unwrap_or(MEM_HEAVY_DEFAULT), ) } else { ("2", "4Gi") @@ -144,6 +151,18 @@ pub struct Toleration { pub value: Option, } +impl Toleration { + pub fn new(key: String, value: String) -> Self { + Self { + effect: Some("NoSchedule".to_string()), + key, + operator, + toleration_seconds, + value, + } + } +} + #[derive(Deserialize, Serialize, Clone, Debug, JsonSchema)] pub struct ImagePullSecret { name: String, From fa80699084e9a70a62b8bdde30cf4d091c476564 Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Mon, 29 Sep 2025 00:27:52 -0400 Subject: [PATCH 05/10] heavy notebook fin --- src/kube/mod.rs | 2 +- src/kube/notebook/mod.rs | 9 +++++---- src/web/route/notebook/mod.rs | 29 ++++++++++++++++++++++++++--- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/kube/mod.rs b/src/kube/mod.rs index 1e863a0b..c365c6bb 100644 --- a/src/kube/mod.rs +++ b/src/kube/mod.rs @@ -5,7 +5,7 @@ pub use models::*; mod notebook; #[cfg(feature = "notebook")] pub use notebook::{ - LifecycleStream, Medium, NOTEBOOK_NAMESPACE, Notebook, NotebookSpec, PVCSpec, + LifecycleStream, Medium, NOTEBOOK_NAMESPACE, Notebook, NotebookSpec, PVCSpec, Toleration, notebook_lifecycle, }; diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index 890d71df..f058f892 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -38,6 +38,7 @@ impl NotebookSpec { let notebook_image = CONFIG.notebooks.get(notebook_image_name).unwrap(); let mut notebook_env = notebook_image.notebook_env.clone().unwrap_or_default(); + // get resource limit from notebook config let (cpu, mem) = { if tolerations.is_some() { ( @@ -155,10 +156,10 @@ impl Toleration { pub fn new(key: String, value: String) -> Self { Self { effect: Some("NoSchedule".to_string()), - key, - operator, - toleration_seconds, - value, + key: Some(key), + operator: Some("Equal".to_string()), + toleration_seconds: None, + value: Some(value), } } } diff --git a/src/web/route/notebook/mod.rs b/src/web/route/notebook/mod.rs index f4b19f27..03b8cfc0 100644 --- a/src/web/route/notebook/mod.rs +++ b/src/web/route/notebook/mod.rs @@ -34,7 +34,7 @@ use crate::{ mongo::{DB, ObjectID}, }, errors::{BridgeError, Result}, - kube::{KubeAPI, NOTEBOOK_NAMESPACE, Notebook, NotebookSpec, PVCSpec}, + kube::{KubeAPI, NOTEBOOK_NAMESPACE, Notebook, NotebookSpec, PVCSpec, Toleration}, web::{ bridge_middleware::{CookieCheck, Htmx, NotebookCookieCheck}, helper::{self, bson, forwarding}, @@ -42,6 +42,8 @@ use crate::{ }; pub const NOTEBOOK_SUB_NAME: &str = "notebook"; +pub const NOTEBOOK_SUB_HEAVY_NAME: &str = "notebook_heavy"; +const NOTEBOOK_CFG_NAME: &str = "open_ad_workbench"; const NOTEBOOK_PORT: &str = "8888"; const NOTEBOOK_TOKEN_LIFETIME: usize = const { 60 * 60 * 24 * 30 }; const PVC_DELETE_ATTEMPT: u8 = 9; @@ -172,6 +174,27 @@ async fn notebook_create( )); } + // check for heavy notebook add-on + let tolerations = if group + .subscriptions + .contains(&NOTEBOOK_SUB_HEAVY_NAME.to_string()) + { + let notebook_image = CONFIG + .notebooks + .get(NOTEBOOK_CFG_NAME) + .and_then(|v| v.scheduling.as_ref()) + .map(|v| (&v.toleration_key, &v.toleration_value)); + + if let Some(kv) = notebook_image { + let (key, value) = (kv.0.to_string(), kv.1.to_string()); + Some(vec![Toleration::new(key, value)]) + } else { + None + } + } else { + None + }; + let scp = if user.groups.is_empty() { vec!["".to_string()] } else { @@ -260,9 +283,9 @@ async fn notebook_create( &name, NotebookSpec::new( name.clone(), - "open_ad_workbench", + NOTEBOOK_CFG_NAME, pvc_name, - None, + tolerations, &mut start_up_url, &mut max_idle_time, vec![("PROXY_KEY".to_string(), notebook_token)], From 4214006a27454d8b8cbdbe1ac7d3886a28dd822b Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Mon, 29 Sep 2025 12:23:48 -0400 Subject: [PATCH 06/10] update --- config/services_sample.toml | 7 +++++++ justfile | 8 +------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/config/services_sample.toml b/config/services_sample.toml index 84ec24b6..d1a954d5 100644 --- a/config/services_sample.toml +++ b/config/services_sample.toml @@ -19,6 +19,13 @@ check = false mcp = false + # This is a supplementary entry to notebook for heavier resource + [services.notebook_heavy] + url = "" + readiness = "" + check = false + mcp = false + [services.owui] url = "" readiness = "" diff --git a/justfile b/justfile index a88970e4..a898e3cc 100644 --- a/justfile +++ b/justfile @@ -82,12 +82,6 @@ build-front: # --- Local Development Services --- local-mongo: - podman run -d --rm --name mongodb \ - -e MONGODB_ROOT_PASSWORD="admin123456789" \ - -e MONGODB_USERNAME="bridge-user" -e MONGODB_PASSWORD="admin123456789" -e MONGODB_DATABASE="bridge" \ - -p 27017:27017 bitnami/mongodb:latest - -local-mongo-arm: podman run -d --rm --name mongodb \ -e MONGO_INITDB_ROOT_USERNAME="guardian-user" \ -e MONGO_INITDB_ROOT_PASSWORD="admin123456789" \ @@ -97,7 +91,7 @@ local-mongo-arm: local-keydb: podman run -d --rm --name keydb \ -e KEYDB_PASSWORD="admin123456789" \ - -p 6379:6379 bitnami/keydb:latest + -p 6379:6379 bitnamicharts/keydb:sha256-ab8a4b7afff5a07ea778bf9ee4a7b10a501867cc2cbd7199a068d6777d6e807f down-local-mongo: podman stop mongodb From 9a55fdbcc0ba3547dfc3263929fcdf93da0bd69e Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Mon, 29 Sep 2025 13:32:54 -0400 Subject: [PATCH 07/10] test fix --- .github/workflows/merge.yml | 9 ++++----- justfile | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 42dcfc99..4d267d12 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -16,12 +16,11 @@ jobs: services: mongodb: - image: bitnami/mongodb:latest + image: mongodb/mongodb-community-server env: - MONGODB_ROOT_PASSWORD: "admin123456789" - MONGODB_USERNAME: "bridge-user" - MONGODB_PASSWORD: "admin123456789" - MONGODB_DATABASE: "bridge" + MONGO_INITDB_ROOT_PASSWORD: "admin123456789" + MONGO_INITDB_ROOT_USERNAME: "bridge-user" + MONGO_INITDB_DATABASE: "bridge" ports: - 27017:27017 keydb: diff --git a/justfile b/justfile index a898e3cc..406ea0ab 100644 --- a/justfile +++ b/justfile @@ -91,7 +91,7 @@ local-mongo: local-keydb: podman run -d --rm --name keydb \ -e KEYDB_PASSWORD="admin123456789" \ - -p 6379:6379 bitnamicharts/keydb:sha256-ab8a4b7afff5a07ea778bf9ee4a7b10a501867cc2cbd7199a068d6777d6e807f + -p 6379:6379 bitnami/keydb:latest down-local-mongo: podman stop mongodb From ab338d1119167981a0c8b09eae2b4ed47c5be628 Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Mon, 29 Sep 2025 14:35:23 -0400 Subject: [PATCH 08/10] test fix --- config/database_sample.toml | 6 +++--- justfile | 2 +- src/kube/notebook/mod.rs | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/config/database_sample.toml b/config/database_sample.toml index 85a2f502..92e169dc 100644 --- a/config/database_sample.toml +++ b/config/database_sample.toml @@ -1,7 +1,7 @@ [mongodb] - url = "mongodb://bridge-user:admin123456789@127.0.0.1:27017/?authSource=bridge" - url_local = "mongodb://bridge-user:admin123456789@127.0.0.1:27017/?authSource=bridge" - url_prod = "mongodb://bridge-user:admin123456789@127.0.0.1:27017/?authSource=bridge" + url = "mongodb://bridge-user:admin123456789@127.0.0.1:27017" + url_local = "mongodb://bridge-user:admin123456789@127.0.0.1:27017" + url_prod = "mongodb://bridge-user:admin123456789@127.0.0.1:27017" name = "bridge" [keydb] diff --git a/justfile b/justfile index 406ea0ab..bfd059ce 100644 --- a/justfile +++ b/justfile @@ -83,7 +83,7 @@ build-front: # --- Local Development Services --- local-mongo: podman run -d --rm --name mongodb \ - -e MONGO_INITDB_ROOT_USERNAME="guardian-user" \ + -e MONGO_INITDB_ROOT_USERNAME="bridge-user" \ -e MONGO_INITDB_ROOT_PASSWORD="admin123456789" \ -e MONGO_INITDB_DATABASE="bridge" \ -p 27017:27017 mongodb/mongodb-community-server diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index f058f892..e19ee885 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -321,6 +321,7 @@ mod test { } ], }], + "tolerations": null, "imagePullSecrets": [ { "name": "ibmdpdev-openad-pull-secret" From 35989f666534c0f9ae120929038aa0ffb32d9be5 Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Mon, 10 Nov 2025 12:59:11 -0500 Subject: [PATCH 09/10] notebook heavy and moleviewer --- .github/workflows/merge.yml | 2 +- .http | 89 ++ Cargo.lock | 1541 +++++++++------------ Cargo.toml | 16 +- Dockerfile | 2 +- config/configurations_sample.toml | 1 + justfile | 2 +- src/auth/jwt.rs | 2 +- src/config/mod.rs | 10 +- src/errors/mod.rs | 1 - src/kube/notebook/mod.rs | 1 + src/web/bridge_middleware/authenicate.rs | 1 - src/web/bridge_middleware/cookie_check.rs | 6 +- src/web/mod.rs | 6 +- src/web/route/auth/mod.rs | 1 + src/web/route/mcp/mod.rs | 22 +- src/web/route/mod.rs | 2 + src/web/route/moleviewer/mod.rs | 55 + src/web/route/notebook/mod.rs | 12 +- src/web/route/openwebui/mod.rs | 53 +- src/web/route/portal/group_admin/mod.rs | 10 +- src/web/route/portal/mod.rs | 2 + src/web/route/portal/system_admin/mod.rs | 10 +- src/web/route/portal/user.rs | 8 +- src/web/route/resource/mod.rs | 1 + 25 files changed, 880 insertions(+), 976 deletions(-) create mode 100644 .http create mode 100644 src/web/route/moleviewer/mod.rs diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 4d267d12..02501ce4 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -24,7 +24,7 @@ jobs: ports: - 27017:27017 keydb: - image: bitnami/keydb:latest + image: eqalpha/keydb:latest env: KEYDB_PASSWORD: "admin123456789" ports: diff --git a/.http b/.http new file mode 100644 index 00000000..fad4093a --- /dev/null +++ b/.http @@ -0,0 +1,89 @@ +### main_page + +# @accept chunked + +GET https://open.accelerate.science HTTP/2 +Accept: text/html + + +### proxy + +# @secret TOKEN +# @accept chunked + +< {% + // Pre-request script + const crypto = require('crypto'); + const nonce = crypto.randomBytes(16).toString('hex'); + + // Set request-scoped variables + request.variables.set('NONCE', nonce); +%} + +POST https://open.accelerate.science/proxy/post HTTP/2 +Content-Type: application/json +Accept: application/json +Inference-Service: postman +Authorization: Bearer {{TOKEN}} + +{ + "hello": "{{$uuid}}", + "previous": "{{main_page.response.body.*}}", + "world": "{{NONCE}}" +} + + +### MCP + +POST http://open.accelerate.science/mcp/vms/proxy/8024/smol/CC%28%3DO%29Oc1ccccc1C%28%3DO%29O HTTP/2 +Content-Type: application/json +Accept: application/json +Authorization: Bearer {{TOKEN}} + + +### Something + +POST https://open.accelerate.science/proxy/service/collections/demo HTTP/2 +Inference-Service: neural-pde-solvers +Authorization: Bearer {{TOKEN}} + +--boundary-string +Content-Disposition: form-data; name="file"; filename="decimated_mesh.vtk" +Content-Type: application/octet-stream + +< /home/dchoi/Downloads/decimated_mesh.vtk +--boundary-string-- + + +### MCP + +POST https://open.accelerate.science/mcp/ollama/api/generate HTTP/2 +Content-Type: application/json +Accept: application/json +Authorization: Bearer {{TOKEN}} + +{ + "model": "llama3.1:8b", + "prompt": "Why is the sky blue?", + "stream": false +} + +### MCP + +POST https://open.accelerate.science/mcp/bioverse/v1/chat/completions HTTP/2 +Content-Type: application/json +Accept: application/json +Authorization: Bearer {{TOKEN}} + +{ + "model": "bioverse-llm", + "messages": [ + { + "role": "user", + "content": "analyze the following sequence QVQLVETGGGLVQAGGSLRLSCAASGNINSFNAMGWFRQAPGKQRELVAAITFGGRTNYADSVKGRFTISRDNTKGSVYLQMNSLKPEDTAVYYCAASENNLLTGVWHYWGRGTQVTVSS" + } + ], + "temperature": 0.7, + "top_p": 0.95, + "max_tokens": 1024 +} diff --git a/Cargo.lock b/Cargo.lock index 3a7a77ee..c1a1ac7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "bytes", "futures-core", "futures-sink", @@ -21,17 +21,17 @@ dependencies = [ [[package]] name = "actix-files" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0773d59061dedb49a8aed04c67291b9d8cf2fe0b60130a381aab53c6dd86e9be" +checksum = "6c0d87f10d70e2948ad40e8edea79c8e77c6c66e0250a4c1f09b690465199576" dependencies = [ "actix-http", "actix-service", "actix-utils", "actix-web", - "bitflags 2.9.1", + "bitflags 2.10.0", "bytes", - "derive_more 0.99.20", + "derive_more 2.0.1", "futures-core", "http-range", "log", @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.11.0" +version = "3.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2" +checksum = "7926860314cbe2fb5d1f13731e387ab43bd32bca224e82e6e2db85de0a3dba49" dependencies = [ "actix-codec", "actix-rt", @@ -54,7 +54,7 @@ dependencies = [ "actix-tls", "actix-utils", "base64 0.22.1", - "bitflags 2.9.1", + "bitflags 2.10.0", "brotli", "bytes", "bytestring", @@ -89,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" +checksum = "92589714878ca59a7626ea19734f0e07a6a875197eec751bb5d3f99e64998c63" dependencies = [ "futures-core", "tokio", @@ -158,7 +158,7 @@ dependencies = [ "pin-project-lite", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-util", "tracing", ] @@ -226,7 +226,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -258,15 +258,6 @@ dependencies = [ "tokio", ] -[[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" @@ -280,7 +271,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", @@ -288,9 +279,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -316,12 +307,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" @@ -374,18 +359,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -402,9 +387,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.13.3" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" +checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d" dependencies = [ "aws-lc-sys", "zeroize", @@ -412,9 +397,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.30.0" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" +checksum = "107a4e9d9cab9963e04e84bb8dee0e25f2a987f9a8bad5ed054abd439caa8f8c" dependencies = [ "bindgen", "cc", @@ -425,30 +410,15 @@ 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", "tokio", ] -[[package]] -name = "backtrace" -version = "0.3.75" -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", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -481,25 +451,22 @@ checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "bindgen" -version = "0.69.5" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cexpr", "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash", "shlex", - "syn 2.0.104", - "which", + "syn", ] [[package]] @@ -510,9 +477,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -548,9 +515,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.1" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -577,9 +544,9 @@ dependencies = [ "base64 0.22.1", "bitvec", "getrandom 0.2.16", - "getrandom 0.3.3", + "getrandom 0.3.4", "hex", - "indexmap 2.10.0", + "indexmap 2.12.0", "js-sys", "once_cell", "rand 0.9.2", @@ -592,9 +559,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" dependencies = [ "memchr", "serde", @@ -606,12 +573,6 @@ version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.10.1" @@ -620,19 +581,20 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytestring" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" +checksum = "113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289" dependencies = [ "bytes", ] [[package]] name = "cc" -version = "1.2.31" +version = "1.2.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" +checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -649,9 +611,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -661,17 +623,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -915,14 +876,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "darling" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -930,27 +891,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -972,12 +933,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -988,18 +949,18 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "derive-where" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510c292c8cf384b1a340b816a9a6cf2599eb8f566a44949024af88418000c50b" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1012,7 +973,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.104", + "syn", ] [[package]] @@ -1032,7 +993,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", "unicode-xid", ] @@ -1062,7 +1023,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1124,7 +1085,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1175,27 +1136,27 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1206,12 +1167,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]] @@ -1257,11 +1218,17 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", @@ -1296,9 +1263,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1371,7 +1338,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1406,9 +1373,9 @@ 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", @@ -1424,41 +1391,35 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[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", "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "globset" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" dependencies = [ "aho-corasick", "bstr", @@ -1473,7 +1434,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "ignore", "walkdir", ] @@ -1513,7 +1474,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.10.0", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -1522,9 +1483,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1532,7 +1493,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.10.0", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -1547,9 +1508,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -1557,28 +1518,10 @@ dependencies = [ ] [[package]] -name = "headers" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" -dependencies = [ - "base64 0.22.1", - "bytes", - "headers-core", - "http 1.3.1", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.3.0" +name = "hashbrown" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" -dependencies = [ - "http 1.3.1", -] +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "heck" @@ -1657,11 +1600,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1672,7 +1615,7 @@ checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -1749,44 +1692,26 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", - "h2 0.4.11", + "futures-core", + "h2 0.4.12", "http 1.3.1", "http-body", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", ] -[[package]] -name = "hyper-http-proxy" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad4b0a1e37510028bc4ba81d0e38d239c39671b0f0ce9e02dfa93a8133f7c08" -dependencies = [ - "bytes", - "futures-util", - "headers", - "http 1.3.1", - "hyper", - "hyper-rustls", - "hyper-util", - "pin-project-lite", - "rustls-native-certs 0.7.3", - "tokio", - "tokio-rustls 0.26.2", - "tower-service", -] - [[package]] name = "hyper-rustls" version = "0.27.7" @@ -1797,13 +1722,13 @@ dependencies = [ "hyper", "hyper-util", "log", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 1.0.4", ] [[package]] @@ -1837,9 +1762,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -1853,7 +1778,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.1", "system-configuration", "tokio", "tower-service", @@ -1863,9 +1788,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", @@ -1887,9 +1812,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -1900,9 +1825,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -1913,11 +1838,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1928,42 +1852,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1979,9 +1899,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2000,9 +1920,9 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.23" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" dependencies = [ "crossbeam-deque", "globset", @@ -2033,24 +1953,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.16.0", "serde", -] - -[[package]] -name = "io-uring" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "libc", + "serde_core", ] [[package]] @@ -2073,9 +1983,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -2092,9 +2002,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -2107,19 +2017,19 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -2127,9 +2037,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", @@ -2147,7 +2057,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -2194,24 +2104,32 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "9.3.1" +version = "10.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +checksum = "c76e1c7d7df3e34443b3621b459b066a7b79644f059fc8b2db7070c825fd417e" dependencies = [ "base64 0.22.1", + "ed25519-dalek", + "getrandom 0.2.16", + "hmac", "js-sys", - "pem 3.0.5", - "ring 0.17.14", + "p256", + "p384", + "pem 3.0.6", + "rand 0.8.5", + "rsa", "serde", "serde_json", + "sha2", + "signature", "simple_asn1", ] [[package]] name = "k8s-openapi" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa60a41b57ae1a0a071af77dbcf89fc9819cfe66edaf2beeb204c34459dcf0b2" +checksum = "d13f06d5326a915becaffabdfab75051b8cdc260c2a5c06c0e90226ede89a692" dependencies = [ "base64 0.22.1", "chrono", @@ -2221,9 +2139,9 @@ dependencies = [ [[package]] name = "kube" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778f98664beaf4c3c11372721e14310d1ae00f5e2d9aabcf8906c881aa4e9f51" +checksum = "48e7bb0b6a46502cc20e4575b6ff401af45cfea150b34ba272a3410b78aa014e" dependencies = [ "k8s-openapi", "kube-client", @@ -2234,9 +2152,9 @@ dependencies = [ [[package]] name = "kube-client" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb276b85b6e94ded00ac8ea2c68fcf4697ea0553cb25fddc35d4a0ab718db8d" +checksum = "4987d57a184d2b5294fdad3d7fc7f278899469d21a4da39a8f6ca16426567a36" dependencies = [ "base64 0.22.1", "bytes", @@ -2248,20 +2166,19 @@ dependencies = [ "http-body", "http-body-util", "hyper", - "hyper-http-proxy", "hyper-rustls", "hyper-timeout", "hyper-util", "jsonpath-rust", "k8s-openapi", "kube-core", - "pem 3.0.5", - "rustls 0.23.31", + "pem 3.0.6", + "rustls", "secrecy", "serde", "serde_json", "serde_yaml", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-util", "tower", @@ -2271,9 +2188,9 @@ dependencies = [ [[package]] name = "kube-core" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c56ff45deb0031f2a476017eed60c06872251f271b8387ad8020b8fef60960" +checksum = "914bbb770e7bb721a06e3538c0edd2babed46447d128f7c21caa68747060ee73" dependencies = [ "chrono", "derive_more 2.0.1", @@ -2281,32 +2198,32 @@ dependencies = [ "http 1.3.1", "json-patch", "k8s-openapi", - "schemars 0.8.22", + "schemars 1.1.0", "serde", "serde-value", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "kube-derive" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079fc8c1c397538628309cfdee20696ebdcc26745f9fb17f89b78782205bd995" +checksum = "03dee8252be137772a6ab3508b81cd797dee62ee771112a2453bc85cbbe150d2" dependencies = [ "darling", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.104", + "syn", ] [[package]] name = "kube-runtime" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1326e946fadf6248febdf8a1c001809c3899ccf48cb9768cbc536b741040dc" +checksum = "6aea4de4b562c5cc89ab10300bb63474ae1fa57ff5a19275f2e26401a323e3fd" dependencies = [ "ahash", "async-broadcast", @@ -2314,7 +2231,7 @@ dependencies = [ "backon", "educe", "futures", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "hostname", "json-patch", "k8s-openapi", @@ -2323,7 +2240,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-util", "tracing", @@ -2344,26 +2261,20 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" -version = "0.2.174" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[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]] @@ -2374,9 +2285,9 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libmimalloc-sys" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88cd67e9de251c1781dbe2f641a1a3ad66eaae831b8a2c38fbdc5ddae16d4d" +checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" dependencies = [ "cc", "libc", @@ -2390,21 +2301,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "local-channel" @@ -2425,19 +2330,18 @@ checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" [[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 = "lru-cache" @@ -2463,7 +2367,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2477,7 +2381,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2488,7 +2392,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2499,7 +2403,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2514,15 +2418,15 @@ dependencies = [ [[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 = "mimalloc" -version = "0.1.47" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1791cbe101e95af5764f06f20f6760521f7158f69dbf9d6baf941ee1bf6bc40" +checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8" dependencies = [ "libmimalloc-sys", ] @@ -2556,25 +2460,44 @@ 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", "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "mongocrypt" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22426d6318d19c5c0773f783f85375265d6a8f0fa76a733da8dc4355516ec63d" +dependencies = [ + "bson", + "mongocrypt-sys", + "once_cell", + "serde", ] +[[package]] +name = "mongocrypt-sys" +version = "0.1.4+1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dda42df21d035f88030aad8e877492fac814680e1d7336a57b2a091b989ae388" + [[package]] name = "mongodb" -version = "3.2.4" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f8c69f13acf07eae386a2974f48ffd9187ea2aba8defbea9aa34e7e272c5f3" +checksum = "622f272c59e54a3c85f5902c6b8e7b1653a6b6681f45e4c42d6581301119a4b8" dependencies = [ "async-trait", "base64 0.13.1", @@ -2593,14 +2516,15 @@ dependencies = [ "hmac", "macro_magic", "md-5", + "mongocrypt", "mongodb-internal-macros", "once_cell", "pbkdf2", "percent-encoding", "rand 0.8.5", "rustc_version_runtime", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "rustls", + "rustversion", "serde", "serde_bytes", "serde_with", @@ -2612,23 +2536,23 @@ dependencies = [ "take_mut", "thiserror 1.0.69", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "tokio-util", "typed-builder", "uuid", - "webpki-roots 0.25.4", + "webpki-roots 0.26.11", ] [[package]] name = "mongodb-internal-macros" -version = "3.2.4" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9202de265a3a8bbb43f9fe56db27c93137d4f9fb04c093f47e9c7de0c61ac7d" +checksum = "63981427a0f26b89632fd2574280e069d09fb2912a3138da15de0174d11dd077" dependencies = [ "macro_magic", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2660,12 +2584,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -2680,11 +2603,10 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "82c79c15c05d4bf82b6f5ef163104cc81a760d8e874d38ac50ab67c8877b647b" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", @@ -2751,15 +2673,6 @@ dependencies = [ "url", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -2779,7 +2692,7 @@ dependencies = [ "futures", "futures-util", "jsonwebkey", - "jsonwebtoken 9.3.1", + "jsonwebtoken 10.2.0", "k8s-openapi", "kube", "mimalloc", @@ -2795,19 +2708,19 @@ dependencies = [ "regex", "reqwest", "rust-argon2", - "rustls 0.23.31", - "rustls-pemfile 2.2.0", + "rustls", + "rustls-pemfile", "rustls-pki-types", - "schemars 0.8.22", + "schemars 1.1.0", "serde", "serde_json", "serde_urlencoded", "sha2", "tera", - "thiserror 2.0.12", + "thiserror 2.0.17", "time", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-stream", "tokio-tungstenite", "toml", @@ -2852,11 +2765,11 @@ dependencies = [ [[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 2.9.1", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -2873,7 +2786,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -2884,9 +2797,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", @@ -2903,12 +2816,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "p256" version = "0.13.2" @@ -2941,9 +2848,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", @@ -2951,15 +2858,15 @@ 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]] @@ -2991,12 +2898,12 @@ dependencies = [ [[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 0.22.1", - "serde", + "serde_core", ] [[package]] @@ -3010,26 +2917,25 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +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.12", "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", @@ -3037,22 +2943,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.104", + "syn", ] [[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", @@ -3113,7 +3019,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -3157,9 +3063,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -3181,12 +3087,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.36" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn", ] [[package]] @@ -3200,28 +3106,28 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", - "rustls 0.23.31", - "socket2 0.5.10", - "thiserror 2.0.12", + "rustc-hash", + "rustls", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -3229,20 +3135,20 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring 0.17.14", - "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustc-hash", + "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -3250,23 +3156,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -3339,14 +3245,14 @@ 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]] name = "redis" -version = "0.32.4" +version = "0.32.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f66bf4cac9733a23bcdf1e0e01effbaaad208567beba68be8f67e5f4af3ee1" +checksum = "014cc767fefab6a3e798ca45112bccad9c6e0e218fbd49720042716c73cfef44" dependencies = [ "bytes", "cfg-if", @@ -3358,7 +3264,7 @@ dependencies = [ "pin-project-lite", "ryu", "sha1_smol", - "socket2 0.6.0", + "socket2 0.6.1", "tokio", "tokio-util", "url", @@ -3366,38 +3272,38 @@ 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 2.9.1", + "bitflags 2.10.0", ] [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -3407,9 +3313,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -3418,28 +3324,28 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" +checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.22" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2 0.4.11", + "h2 0.4.12", "http 1.3.1", "http-body", "http-body-util", @@ -3454,7 +3360,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.31", + "rustls", "rustls-pki-types", "serde", "serde_json", @@ -3462,7 +3368,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-util", "tower", "tower-http", @@ -3472,14 +3378,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 1.0.4", ] [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "rfc6979" @@ -3552,18 +3458,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.1" @@ -3591,90 +3485,43 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.14", - "rustls-webpki 0.101.7", - "sct", + "linux-raw-sys", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.4", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - -[[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.2.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.5.1", ] [[package]] @@ -3688,9 +3535,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "web-time", "zeroize", @@ -3698,19 +3545,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.4" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "aws-lc-rs", "ring 0.17.14", @@ -3720,9 +3557,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -3741,23 +3578,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "schemars" -version = "0.8.22" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", + "windows-sys 0.61.2", ] [[package]] @@ -3774,26 +3599,27 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" dependencies = [ "dyn-clone", "ref-cast", + "schemars_derive", "serde", "serde_json", ] [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "301858a4023d78debd2353c7426dc486001bddc91ae31a76fb1f55132f7e2633" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.104", + "syn", ] [[package]] @@ -3802,16 +3628,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - [[package]] name = "sec1" version = "0.7.3" @@ -3842,7 +3658,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -3851,11 +3667,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -3864,9 +3680,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", @@ -3874,16 +3690,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", ] @@ -3899,22 +3716,32 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", +] + +[[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.104", + "syn", ] [[package]] @@ -3925,30 +3752,32 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.12.0", "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]] @@ -3962,11 +3791,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -3983,19 +3812,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.12.0", "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", + "schemars 1.1.0", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -4003,14 +3831,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -4019,7 +3847,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.12.0", "itoa", "ryu", "serde", @@ -4098,6 +3926,12 @@ dependencies = [ "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 = "simple_asn1" version = "0.6.3" @@ -4106,7 +3940,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.17", "time", ] @@ -4118,9 +3952,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slug" @@ -4150,12 +3984,12 @@ dependencies = [ [[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]] @@ -4182,9 +4016,9 @@ dependencies = [ [[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 = "stringprep" @@ -4211,20 +4045,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.104" +version = "2.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" dependencies = [ "proc-macro2", "quote", @@ -4248,7 +4071,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -4257,7 +4080,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -4286,22 +4109,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.20.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", - "rustix 1.0.8", - "windows-sys 0.59.0", + "rustix", + "windows-sys 0.61.2", ] [[package]] name = "tera" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" +checksum = "e8004bca281f2d32df3bacd59bc67b312cb4c70cea46cbd79dbe8ac5ed206722" dependencies = [ "chrono", "chrono-tz", @@ -4316,7 +4139,7 @@ dependencies = [ "serde", "serde_json", "slug", - "unic-segment", + "unicode-segmentation", ] [[package]] @@ -4330,11 +4153,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -4345,18 +4168,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -4370,9 +4193,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", @@ -4385,15 +4208,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", @@ -4410,9 +4233,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -4420,9 +4243,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -4435,33 +4258,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[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 0.6.0", + "socket2 0.6.1", "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.104", + "syn", ] [[package]] @@ -4476,21 +4296,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.31", + "rustls", "tokio", ] @@ -4508,25 +4318,25 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" +checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tungstenite", ] [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -4539,12 +4349,12 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ - "indexmap 2.10.0", - "serde", + "indexmap 2.12.0", + "serde_core", "serde_spanned", "toml_datetime", "toml_parser", @@ -4554,27 +4364,27 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_parser" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] name = "tower" @@ -4600,7 +4410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "base64 0.22.1", - "bitflags 2.9.1", + "bitflags 2.10.0", "bytes", "futures-util", "http 1.3.1", @@ -4646,7 +4456,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -4672,9 +4482,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "nu-ansi-term", "sharded-slab", @@ -4692,9 +4502,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" +checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ "bytes", "data-encoding", @@ -4702,30 +4512,39 @@ dependencies = [ "httparse", "log", "rand 0.9.2", - "rustls 0.23.31", + "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.12", + "thiserror 2.0.17", "url", "utf-8", ] [[package]] name = "typed-builder" -version = "0.10.0" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9d30e3a08026c78f246b173243cf07b3696d274debd26680773b6773c2afc7" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c" +checksum = "3c36781cc0e46a83726d9879608e4cf6c2505237e263a8eb8c24502989cfdb28" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[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" @@ -4733,56 +4552,6 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" -dependencies = [ - "unic-ucd-segment", -] - -[[package]] -name = "unic-ucd-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - [[package]] name = "unicase" version = "2.8.1" @@ -4797,24 +4566,30 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-normalization" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" dependencies = [ "tinyvec", ] [[package]] name = "unicode-properties" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-xid" @@ -4842,9 +4617,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -4875,16 +4650,16 @@ name = "utils" version = "0.1.0" dependencies = [ "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "uuid" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "serde", "wasm-bindgen", @@ -4940,45 +4715,32 @@ 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.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.104", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -4989,9 +4751,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4999,22 +4761,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.104", - "wasm-bindgen-backend", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -5034,9 +4796,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -5054,36 +4816,27 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "1.0.2" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "rustls-pki-types", + "webpki-roots 1.0.4", ] [[package]] -name = "which" -version = "4.4.2" +name = "webpki-roots" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", + "rustls-pki-types", ] [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -5103,11 +4856,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5118,37 +4871,37 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[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.104", + "syn", ] [[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.104", + "syn", ] [[package]] @@ -5157,15 +4910,21 @@ 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-registry" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -5174,7 +4933,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]] @@ -5183,7 +4951,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]] @@ -5206,20 +4983,20 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.52.6", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.60.2" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-targets 0.53.3", + "windows-link 0.2.1", ] [[package]] @@ -5255,19 +5032,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]] @@ -5284,9 +5061,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" @@ -5302,9 +5079,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" @@ -5320,9 +5097,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" @@ -5332,9 +5109,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" @@ -5350,9 +5127,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" @@ -5368,9 +5145,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" @@ -5386,9 +5163,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" @@ -5404,15 +5181,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 = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" [[package]] name = "winreg" @@ -5425,19 +5202,16 @@ dependencies = [ ] [[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 2.9.1", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -5459,11 +5233,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -5471,34 +5244,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", "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.104", + "syn", ] [[package]] @@ -5518,15 +5291,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -5539,14 +5312,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -5555,9 +5328,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbb9122ea75b11bf96e7492afb723e8a7fbe12c67417aa95e7e3d18144d37cd" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -5566,13 +5339,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -5595,9 +5368,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index b4c38c15..46efb283 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,11 +42,11 @@ url = "2.5.0" toml = "0.9.0" urlencoding = "2.1.3" actix-ws = "0.3.0" -tokio-tungstenite = { version = "0.27", features = ["url", "rustls-tls-native-roots"] } +tokio-tungstenite = { version = "0.28", features = ["url", "rustls-tls-native-roots"] } # Auth deps rust-argon2 = "~3.0" sha2 = "~0.10" -jsonwebtoken = { version = "9.0.0", features = ["use_pem"] } +jsonwebtoken = { version = "=10.2.0", features = ["use_pem", "rust_crypto"] } openssl = "~0.10" tokio-rustls = "0.26" rustls = "0.23" @@ -58,25 +58,25 @@ p256 = { version = "0.13.2", features = ["jwk"] } serde = { version = "~1.0", features = ["derive"] } serde_json = "~1.0" serde_urlencoded = "0.7.1" -regex = "~1.11" +regex = "~1.12" # Error handling thiserror = "2" # DB -mongodb = "=3.2" +mongodb = "=3.3" redis = { version = "0.32", features = ["tokio-comp", "num-bigint"] } #macro utils = { path = "utils" } # Kubernetes -kube = { version = "~1.1", features = ["runtime", "derive"], optional = true } -k8s-openapi = { version = "0.25", features = ["latest"], optional = true } -schemars = { version = "0.8.21", optional = true } +kube = { version = "~2.0", features = ["runtime", "derive"], optional = true } +k8s-openapi = { version = "0.26", features = ["latest"], optional = true } +schemars = { version = "1.0", optional = true } either = { version = "1.13.0", optional = true } # memory allocator mimalloc = "~0.1" # security base64 = "~0.22.1" rand = "~0.9" -uuid = { version = "~1.17", features = ["v4"] } +uuid = { version = "~1.18", features = ["v4"] } [dev-dependencies] jsonwebkey = { version = "~0.3", features = ["jwt-convert"] } diff --git a/Dockerfile b/Dockerfile index 36818acb..6ccea579 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Stage 1 build -FROM rust:1.88.0 AS builder +FROM rust:1.90.0 AS builder WORKDIR /app diff --git a/config/configurations_sample.toml b/config/configurations_sample.toml index a59fc86f..83f28c1b 100644 --- a/config/configurations_sample.toml +++ b/config/configurations_sample.toml @@ -38,6 +38,7 @@ redirect_url = "https://open.accelerate.science/auth/callback/ibm" name = "Open Accelerated Discovery" openweb_url = "oweb.open.accelerate.science" moleviewer_url = "moleviewer.open.accelerate.science" +moleviewer_internal_url = "http://o.m.g.u.i" bridge_url = "open.accelerate.science" description = "This is your gateway to the future of scientific discovery" company = "IBM Research" diff --git a/justfile b/justfile index bfd059ce..6abb14a2 100644 --- a/justfile +++ b/justfile @@ -91,7 +91,7 @@ local-mongo: local-keydb: podman run -d --rm --name keydb \ -e KEYDB_PASSWORD="admin123456789" \ - -p 6379:6379 bitnami/keydb:latest + -p 6379:6379 eqalpha/keydb down-local-mongo: podman stop mongodb diff --git a/src/auth/jwt.rs b/src/auth/jwt.rs index 33898f5d..4c8f2afe 100644 --- a/src/auth/jwt.rs +++ b/src/auth/jwt.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; use crate::config::CONFIG; use crate::errors::Result; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] pub struct Claims where T: AsRef, diff --git a/src/config/mod.rs b/src/config/mod.rs index d789b4bf..6364bae3 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -45,6 +45,8 @@ pub struct Configuration { pub openweb_url: String, #[cfg(feature = "openwebui")] pub moleviewer_url: String, + #[cfg(feature = "openwebui")] + pub moleviewer_internal_url: String, pub bridge_url: String, } @@ -231,11 +233,15 @@ pub fn init_once() -> Configuration { .unwrap(); #[cfg(feature = "openwebui")] - let (owui_namespace, openweb_url, moleviewer_url) = { + let (owui_namespace, openweb_url, moleviewer_url, moleviewer_internal_url) = { ( app_conf["owui_namespace"].as_str().unwrap().to_string(), app_conf["openweb_url"].as_str().unwrap().to_string(), app_conf["moleviewer_url"].as_str().unwrap().to_string(), + app_conf["moleviewer_internal_url"] + .as_str() + .unwrap() + .to_string(), ) }; @@ -265,6 +271,8 @@ pub fn init_once() -> Configuration { openweb_url, #[cfg(feature = "openwebui")] moleviewer_url, + #[cfg(feature = "openwebui")] + moleviewer_internal_url, bridge_url, } } diff --git a/src/errors/mod.rs b/src/errors/mod.rs index b56e665e..90d6f98c 100644 --- a/src/errors/mod.rs +++ b/src/errors/mod.rs @@ -147,7 +147,6 @@ impl ResponseError for BridgeError { jsonwebtoken::errors::ErrorKind::Json(_) => StatusCode::BAD_REQUEST, // Internal errors jsonwebtoken::errors::ErrorKind::Utf8(_) => StatusCode::INTERNAL_SERVER_ERROR, - jsonwebtoken::errors::ErrorKind::Crypto(_) => StatusCode::INTERNAL_SERVER_ERROR, jsonwebtoken::errors::ErrorKind::InvalidEcdsaKey => { StatusCode::INTERNAL_SERVER_ERROR } diff --git a/src/kube/notebook/mod.rs b/src/kube/notebook/mod.rs index e19ee885..63fb6d72 100644 --- a/src/kube/notebook/mod.rs +++ b/src/kube/notebook/mod.rs @@ -36,6 +36,7 @@ impl NotebookSpec { env_to_add: Vec<(String, String)>, ) -> Self { let notebook_image = CONFIG.notebooks.get(notebook_image_name).unwrap(); + // TODO: remove these clones if possible let mut notebook_env = notebook_image.notebook_env.clone().unwrap_or_default(); // get resource limit from notebook config diff --git a/src/web/bridge_middleware/authenicate.rs b/src/web/bridge_middleware/authenicate.rs index 3f6901a0..4b461aa5 100644 --- a/src/web/bridge_middleware/authenicate.rs +++ b/src/web/bridge_middleware/authenicate.rs @@ -29,7 +29,6 @@ pub async fn validator( // TODO: handle unwrap_or better let inference = r.to_str().unwrap_or(""); if claims.scp.contains(&inference.to_string()) { - #[cfg(feature = "observe")] { let now = time::OffsetDateTime::now_utc().unix_timestamp(); diff --git a/src/web/bridge_middleware/cookie_check.rs b/src/web/bridge_middleware/cookie_check.rs index 915156d0..7b1e4676 100644 --- a/src/web/bridge_middleware/cookie_check.rs +++ b/src/web/bridge_middleware/cookie_check.rs @@ -77,9 +77,9 @@ where if let Some(owui_cookie) = req.cookie(OWUI_COOKIE_NAME) && let Ok(oc) = serde_json::from_str::(owui_cookie.value()) - { - req.extensions_mut().insert(oc); - } + { + req.extensions_mut().insert(oc); + } } req.extensions_mut().insert(gcs.clone()); diff --git a/src/web/mod.rs b/src/web/mod.rs index 52a72889..df655ac7 100644 --- a/src/web/mod.rs +++ b/src/web/mod.rs @@ -143,7 +143,7 @@ pub async fn start_server(with_tls: bool) -> Result<()> { #[cfg(feature = "openwebui")] let app = { - use self::bridge_middleware::OWUICookieCheck; + use self::bridge_middleware::{CookieCheck, OWUICookieCheck}; app.service( web::scope("") .guard(guard::Host(&CONFIG.openweb_url)) @@ -153,8 +153,8 @@ pub async fn start_server(with_tls: bool) -> Result<()> { .service( web::scope("") .guard(guard::Host(&CONFIG.moleviewer_url)) - .wrap(OWUICookieCheck) - .configure(route::openwebui::config_moleviewer), + .wrap(CookieCheck) + .configure(route::moleviewer::config_moleviewer), ) }; diff --git a/src/web/route/auth/mod.rs b/src/web/route/auth/mod.rs index fa475d56..18730236 100644 --- a/src/web/route/auth/mod.rs +++ b/src/web/route/auth/mod.rs @@ -230,6 +230,7 @@ async fn code_to_response( let cookie = Cookie::build(COOKIE_NAME, content) .same_site(SameSite::Strict) .expires(time::OffsetDateTime::now_utc() + time::Duration::days(1)) + .domain(&CONFIG.bridge_url) .path("/") .http_only(true) .secure(true) diff --git a/src/web/route/mcp/mod.rs b/src/web/route/mcp/mod.rs index b5eb97fc..f1a79d1c 100644 --- a/src/web/route/mcp/mod.rs +++ b/src/web/route/mcp/mod.rs @@ -1,8 +1,8 @@ use actix_web::{HttpRequest, HttpResponse, dev::PeerAddr, http::Method, web}; use actix_web_httpauth::extractors::bearer::BearerAuth; -use tracing::{instrument, warn}; #[cfg(feature = "observe")] use tracing::info; +use tracing::{instrument, warn}; #[cfg(feature = "observe")] use crate::logger::{PERSIST_META, PERSIST_TIME}; @@ -10,7 +10,10 @@ use crate::{ auth::jwt::validate_token, config::CONFIG, errors::{BridgeError, Result}, - web::{helper::{self, forwarding::Config}, services::CATALOG}, + web::{ + helper::{self, forwarding::Config}, + services::CATALOG, + }, }; const MCP_PREFIX: &str = "/mcp/"; @@ -68,8 +71,19 @@ async fn forward( } new_url.set_query(req.uri().query()); - helper::forwarding::forward(req, payload, method, peer_addr, client, new_url, Config{inference: true, ..Default::default()}) - .await + helper::forwarding::forward( + req, + payload, + method, + peer_addr, + client, + new_url, + Config { + inference: true, + ..Default::default() + }, + ) + .await } else { warn!("MCP service not found in url request"); Err(BridgeError::MCPParseIssue) diff --git a/src/web/route/mod.rs b/src/web/route/mod.rs index 0aa12bdc..473a2bea 100644 --- a/src/web/route/mod.rs +++ b/src/web/route/mod.rs @@ -23,6 +23,8 @@ pub mod openwebui; pub mod portal; pub mod proxy; pub mod resource; +#[cfg(feature = "openwebui")] +pub mod moleviewer; #[get("")] async fn index(data: Data, ctx: Data, req: HttpRequest) -> Result { diff --git a/src/web/route/moleviewer/mod.rs b/src/web/route/moleviewer/mod.rs new file mode 100644 index 00000000..7cb9e591 --- /dev/null +++ b/src/web/route/moleviewer/mod.rs @@ -0,0 +1,55 @@ +use std::str::FromStr; + +use actix_web::{ + HttpRequest, HttpResponse, + dev::PeerAddr, + http::Method, + web::{self, ReqData}, +}; +use tracing::instrument; +use url::Url; + +use crate::{ + config::CONFIG, + db::models::BridgeCookie, + errors::{BridgeError, Result}, + web::helper::{self, forwarding}, +}; + +#[instrument(skip(payload))] +async fn moleviewer_forward( + req: HttpRequest, + payload: web::Payload, + method: Method, + peer_addr: Option, + bridge_cookie: Option>, + client: web::Data, +) -> Result { + if bridge_cookie.is_none() { + return Err(BridgeError::Unauthorized( + "Bridge cookie not found when trying to access moleviewer".to_string(), + )); + } + + let mut url = Url::from_str(&CONFIG.moleviewer_internal_url)?; + let path = req.path(); + url.set_path(path); + url.set_query(req.uri().query()); + + helper::forwarding::forward( + req, + payload, + method, + peer_addr, + client, + url, + forwarding::Config { + ..Default::default() + }, + ) + .await +} + +pub fn config_moleviewer(cfg: &mut web::ServiceConfig) { + cfg.default_service(web::to(moleviewer_forward)); +} diff --git a/src/web/route/notebook/mod.rs b/src/web/route/notebook/mod.rs index 03b8cfc0..42ad276c 100644 --- a/src/web/route/notebook/mod.rs +++ b/src/web/route/notebook/mod.rs @@ -44,6 +44,7 @@ use crate::{ pub const NOTEBOOK_SUB_NAME: &str = "notebook"; pub const NOTEBOOK_SUB_HEAVY_NAME: &str = "notebook_heavy"; const NOTEBOOK_CFG_NAME: &str = "open_ad_workbench"; +const NOTEBOOK_CFG_NAME_ALT: &str = "datascience_notebook"; const NOTEBOOK_PORT: &str = "8888"; const NOTEBOOK_TOKEN_LIFETIME: usize = const { 60 * 60 * 24 * 30 }; const PVC_DELETE_ATTEMPT: u8 = 9; @@ -174,11 +175,16 @@ async fn notebook_create( )); } + let notebook_name; + let proxy_key_name; + // check for heavy notebook add-on let tolerations = if group .subscriptions .contains(&NOTEBOOK_SUB_HEAVY_NAME.to_string()) { + notebook_name = NOTEBOOK_CFG_NAME_ALT; + proxy_key_name = "OPEN_AD_BEARER_TOKEN"; let notebook_image = CONFIG .notebooks .get(NOTEBOOK_CFG_NAME) @@ -192,6 +198,8 @@ async fn notebook_create( None } } else { + notebook_name = NOTEBOOK_CFG_NAME; + proxy_key_name = "PROXY_KEY"; None }; @@ -283,12 +291,12 @@ async fn notebook_create( &name, NotebookSpec::new( name.clone(), - NOTEBOOK_CFG_NAME, + notebook_name, pvc_name, tolerations, &mut start_up_url, &mut max_idle_time, - vec![("PROXY_KEY".to_string(), notebook_token)], + vec![(proxy_key_name.to_string(), notebook_token)], ), ); helper::log_with_level!( diff --git a/src/web/route/openwebui/mod.rs b/src/web/route/openwebui/mod.rs index 53cfeb2a..04d535d4 100644 --- a/src/web/route/openwebui/mod.rs +++ b/src/web/route/openwebui/mod.rs @@ -18,7 +18,6 @@ use crate::{ }; const OWUI_PORT: &str = "8080"; -const MOLE_VIEW_PORT: &str = "8024"; pub static OWUI_NAMESPACE: LazyLock<&str> = LazyLock::new(|| &CONFIG.owui_namespace); static WHITELIST_ENDPOINTS: LazyLock> = LazyLock::new(|| { @@ -53,7 +52,7 @@ async fn openwebui_ws( } }; - let mut url = Url::from_str(&make_forward_url("ws", &owui_cookie.subject, false))?; + let mut url = Url::from_str(&make_forward_url("ws", &owui_cookie.subject))?; url.set_path("ws/socket.io/"); url.set_query(req.uri().query()); @@ -78,7 +77,7 @@ async fn openwebui_forward( } }; - let mut url = Url::from_str(&make_forward_url("http", &owui_cookie.subject, false))?; + let mut url = Url::from_str(&make_forward_url("http", &owui_cookie.subject))?; let path = req.path(); url.set_path(path); @@ -104,48 +103,10 @@ async fn openwebui_forward( .await } -#[instrument(skip(payload))] -async fn moleviewer_forward( - req: HttpRequest, - payload: web::Payload, - method: Method, - peer_addr: Option, - owui_cookie: Option>, - client: web::Data, -) -> Result { - let owui_cookie = match owui_cookie { - Some(cookie) => cookie.into_inner(), - None => { - return Err(BridgeError::Unauthorized( - "OWUI cookie not found".to_string(), - )); - } - }; - - let mut url = Url::from_str(&make_forward_url("http", &owui_cookie.subject, true))?; - let path = req.path(); - url.set_path(path); - url.set_query(req.uri().query()); - - helper::forwarding::forward( - req, - payload, - method, - peer_addr, - client, - url, - forwarding::Config { - ..Default::default() - }, - ) - .await -} - #[inline] -pub(crate) fn make_forward_url(protocol: &str, subject: &str, mole: bool) -> String { +pub(crate) fn make_forward_url(protocol: &str, subject: &str) -> String { let namespace = *OWUI_NAMESPACE; - let port = if mole { MOLE_VIEW_PORT } else { OWUI_PORT }; - format!("{protocol}://u{subject}-openwebui.{namespace}.svc.cluster.local:{port}") + format!("{protocol}://u{subject}-openwebui.{namespace}.svc.cluster.local:{OWUI_PORT}") } pub fn config_openwebui(cfg: &mut web::ServiceConfig) { @@ -153,10 +114,6 @@ pub fn config_openwebui(cfg: &mut web::ServiceConfig) { .default_service(web::to(openwebui_forward)); } -pub fn config_moleviewer(cfg: &mut web::ServiceConfig) { - cfg.default_service(web::to(moleviewer_forward)); -} - #[cfg(test)] mod tests { #[test] @@ -169,7 +126,7 @@ mod tests { let expected_url = format!("{protocol}://u{subject}-openwebui.{namespace}.svc.cluster.local:{port}"); assert_eq!( - super::make_forward_url(protocol, subject, false), + super::make_forward_url(protocol, subject), expected_url ); } diff --git a/src/web/route/portal/group_admin/mod.rs b/src/web/route/portal/group_admin/mod.rs index 06f690fc..08f2a85a 100644 --- a/src/web/route/portal/group_admin/mod.rs +++ b/src/web/route/portal/group_admin/mod.rs @@ -14,22 +14,19 @@ use tera::{Context, Tera}; use tracing::instrument; use crate::{ - auth::COOKIE_NAME, - db::{ + auth::COOKIE_NAME, config::CONFIG, db::{ Database, models::{ AdminTab, AdminTabs, BridgeCookie, GROUP, Group, ModifyUser, NotebookStatusCookie, OWUICookie, USER, User, UserGroupMod, UserPortalRep, UserType, }, mongo::DB, - }, - errors::{BridgeError, Result}, - web::{ + }, errors::{BridgeError, Result}, web::{ bridge_middleware::{HTMX_ERROR_RES, Htmx}, helper::{self, bson}, route::portal::helper::check_admin, services::CATALOG, - }, + } }; #[cfg(feature = "notebook")] @@ -143,6 +140,7 @@ pub(super) async fn group( let bcj = serde_json::to_string(&bridge_cookie)?; let bc = Cookie::build(COOKIE_NAME, bcj) + .domain(&CONFIG.bridge_url) .path("/") .same_site(SameSite::Strict) .secure(true) diff --git a/src/web/route/portal/mod.rs b/src/web/route/portal/mod.rs index 971c1fcb..c672feb2 100644 --- a/src/web/route/portal/mod.rs +++ b/src/web/route/portal/mod.rs @@ -94,6 +94,7 @@ async fn index(data: Option>, db: Data<&DB>) -> Result HttpResponse { // clear all the cookie let mut cookie_remove = Cookie::build(COOKIE_NAME, "") + .domain(&CONFIG.bridge_url) .same_site(SameSite::Strict) .path("/") .http_only(true) diff --git a/src/web/route/portal/system_admin/mod.rs b/src/web/route/portal/system_admin/mod.rs index 5be97483..f44f6d85 100644 --- a/src/web/route/portal/system_admin/mod.rs +++ b/src/web/route/portal/system_admin/mod.rs @@ -16,8 +16,7 @@ use tera::{Context, Tera}; use tracing::instrument; use crate::{ - auth::COOKIE_NAME, - db::{ + auth::COOKIE_NAME, config::CONFIG, db::{ Database, models::{ AdminTab, AdminTabs, BridgeCookie, GROUP, Group, GroupForm, GroupPortalRep, @@ -25,14 +24,12 @@ use crate::{ UserType, }, mongo::DB, - }, - errors::{BridgeError, Result}, - web::{ + }, errors::{BridgeError, Result}, web::{ bridge_middleware::{HTMX_ERROR_RES, Htmx}, helper::{self, bson, payload_to_struct}, route::portal::helper::{check_admin, get_all_groups}, services::CATALOG, - }, + } }; #[cfg(feature = "notebook")] @@ -145,6 +142,7 @@ pub(super) async fn system( let bcj = serde_json::to_string(&bridge_cookie)?; let bc = Cookie::build(COOKIE_NAME, bcj) + .domain(&CONFIG.bridge_url) .path("/") .same_site(SameSite::Strict) .secure(true) diff --git a/src/web/route/portal/user.rs b/src/web/route/portal/user.rs index a2fe8f98..dd51e2ad 100644 --- a/src/web/route/portal/user.rs +++ b/src/web/route/portal/user.rs @@ -11,16 +11,13 @@ use tera::{Context, Tera}; use tracing::instrument; use crate::{ - auth::COOKIE_NAME, - db::{ + auth::COOKIE_NAME, config::CONFIG, db::{ Database, models::{ BridgeCookie, GROUP, Group, NotebookStatusCookie, OWUICookie, USER, User, UserType, }, mongo::DB, - }, - errors::{BridgeError, Result}, - web::{helper, route::portal::user_htmx::Profile}, + }, errors::{BridgeError, Result}, web::{helper, route::portal::user_htmx::Profile} }; const USER_PAGE: &str = "pages/portal_user.html"; @@ -99,6 +96,7 @@ pub(super) async fn user( let bcj = serde_json::to_string(&bridge_cookie)?; let bc = Cookie::build(COOKIE_NAME, bcj) + .domain(&CONFIG.bridge_url) .path("/") .same_site(SameSite::Strict) .secure(true) diff --git a/src/web/route/resource/mod.rs b/src/web/route/resource/mod.rs index 9bdf9216..4b079ffc 100644 --- a/src/web/route/resource/mod.rs +++ b/src/web/route/resource/mod.rs @@ -70,6 +70,7 @@ async fn resource_http( })?; Some( Cookie::build(COOKIE_NAME, content) + .domain(&CONFIG.bridge_url) .same_site(SameSite::Strict) .expires(time::OffsetDateTime::now_utc() + time::Duration::days(1)) .path("/") From 060ab90db54d5ad1f26640d70243073edba0400c Mon Sep 17 00:00:00 2001 From: Daniel Choi Date: Tue, 18 Nov 2025 18:00:49 -0500 Subject: [PATCH 10/10] notebook config --- config/notebook.toml | 49 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/config/notebook.toml b/config/notebook.toml index d3a9f7f4..5f453cab 100644 --- a/config/notebook.toml +++ b/config/notebook.toml @@ -26,25 +26,54 @@ toleration_value = "large" PROXY_URL = "https://open.accelerate.science/proxy" [datascience_notebook] -name = "Data Science Notebook" -url = "jupyter/base-notebook:latest" -pull_policy = "IfNotPresent" -working_dir = "/home/jovyan" -volume_mnt_path = "/home/jovyan/" +name = "CC Science Notebook" +url = "image-registry.openshift-image-registry.svc:5000/notebook-openad/biomed-discovery-nb:latest" +pull_policy = "Always" +working_dir = "/workspace" +volume_mnt_path = "/workspace" notebook_env = [ "--ServerApp.token=''", "--ServerApp.password=''", - "--ServerApp.notebook_dir='/home/jovyan'", + # "--ServerApp.notebook_dir='/workspace'", + "--ServerApp.root_dir='/workspace'", "--ServerApp.quit_button=False", "--ServerApp.disable_check_xsrf=True", "--ServerApp.allow_origin='*'", + "--ServerApp.trust_xheaders=True", + "--ServerApp.ip=0.0.0.0", # base-url is taken care by bridge ] +secret = "default-dockercfg-nk8f9" +start_up_url = "lab/tree/biomed-discovery-agentic-workflow/Evidence_Agents.ipynb" max_idle_time = 86400 [datascience_notebook.scheduling] -cpu_heavy = "4" -mem_heavy = "8Gi" +cpu_heavy = "1" +mem_heavy = "12Gi" toleration_key = "worker/cpu" -toleration_value = "" +toleration_value = "large" [datascience_notebook.env] -PROXY_URL = "" +PROXY_URL = "https://open.accelerate.science/proxy" + +# [datascience_notebook] +# name = "Data Science Notebook" +# url = "jupyter/base-notebook:latest" +# pull_policy = "IfNotPresent" +# working_dir = "/home/jovyan" +# volume_mnt_path = "/home/jovyan/" +# notebook_env = [ +# "--ServerApp.token=''", +# "--ServerApp.password=''", +# "--ServerApp.notebook_dir='/home/jovyan'", +# "--ServerApp.quit_button=False", +# "--ServerApp.disable_check_xsrf=True", +# "--ServerApp.allow_origin='*'", +# # base-url is taken care by bridge +# ] +# max_idle_time = 86400 +# [datascience_notebook.scheduling] +# cpu_heavy = "4" +# mem_heavy = "8Gi" +# toleration_key = "worker/cpu" +# toleration_value = "" +# [datascience_notebook.env] +# PROXY_URL = ""