diff --git a/Cargo.lock b/Cargo.lock index 3b161e2..614db1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2212,9 +2212,9 @@ checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "s2-api" -version = "0.3.5" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd1415b83de9008573bfc3764c73a6e92167f521ca39e389889a22aa251b679" +checksum = "b4e9e456136d5c99ebaa8c9004bf093b067c0df99aa0deff34db98ad370169b7" dependencies = [ "base64ct", "bytes", @@ -2277,9 +2277,9 @@ dependencies = [ [[package]] name = "s2-common" -version = "0.3.5" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62d7b095f290ced3bec82814b129efd5fb1d974b950c3ce1e7879e439947d67" +checksum = "2b0a6ccf4a8acf03b96e1fbdeafe2110259b173246fa2248f31b891480b4f74f" dependencies = [ "blake3", "bytes", @@ -2295,9 +2295,9 @@ dependencies = [ [[package]] name = "s2-sdk" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458942269611ac68ecbfb3a30596416b7f58499e51810eeb29f06277a65651fa" +checksum = "ab86aca3b573d2cf16c725b8fb0c901c6489ca4fe11fc0781ad4a277533818e5" dependencies = [ "async-compression", "async-stream", diff --git a/Cargo.toml b/Cargo.toml index 48ab618..1d319d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ indicatif = "0.18.3" json_to_table = "0.12.0" miette = { version = "7.6.0", features = ["fancy"] } rand = "0.9.2" -s2-sdk = { version = "0.23.0", features = ["_hidden"] } +s2-sdk = { version = "0.23.1", features = ["_hidden"] } serde = { version = "1.0.228", features = ["derive"] } serde_json = { version = "1.0.149", features = ["preserve_order"] } strum = { version = "0.27", features = ["derive"] } diff --git a/src/config.rs b/src/config.rs index 8c3d002..174992f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -33,6 +33,7 @@ pub struct CliConfig { pub account_endpoint: Option, pub basin_endpoint: Option, pub compression: Option, + pub ssl_no_verify: Option, } #[cfg(target_os = "windows")] @@ -87,6 +88,7 @@ pub enum ConfigKey { AccountEndpoint, BasinEndpoint, Compression, + SslNoVerify, } impl CliConfig { @@ -96,6 +98,7 @@ impl CliConfig { ConfigKey::AccountEndpoint => self.account_endpoint.clone(), ConfigKey::BasinEndpoint => self.basin_endpoint.clone(), ConfigKey::Compression => self.compression.map(|c| c.to_string()), + ConfigKey::SslNoVerify => self.ssl_no_verify.map(|v| v.to_string()), } } @@ -111,6 +114,13 @@ impl CliConfig { .map_err(|_| CliConfigError::InvalidValue(key.to_string(), value))?, ); } + ConfigKey::SslNoVerify => { + self.ssl_no_verify = Some( + value + .parse() + .map_err(|_| CliConfigError::InvalidValue(key.to_string(), value))?, + ); + } } Ok(()) } @@ -121,6 +131,7 @@ impl CliConfig { ConfigKey::AccountEndpoint => self.account_endpoint = None, ConfigKey::BasinEndpoint => self.basin_endpoint = None, ConfigKey::Compression => self.compression = None, + ConfigKey::SslNoVerify => self.ssl_no_verify = None, } } } @@ -192,5 +203,10 @@ pub fn sdk_config(config: &CliConfig) -> Result { (None, None) => {} } + if config.ssl_no_verify == Some(true) { + tracing::warn!("SSL certificate verification is disabled."); + sdk_config = sdk_config.with_insecure_skip_cert_verification(true); + } + Ok(sdk_config) }