You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by mn...@apache.org on 2023/11/08 15:00:47 UTC

(arrow-rs) branch master updated: refactor: change `object_store` CA handling (#5056)

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

mneumann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new 0cb30bb51e refactor: change `object_store` CA handling (#5056)
0cb30bb51e is described below

commit 0cb30bb51e39e36e95870dbd6caa92ce47b73e5b
Author: Marco Neumann <ma...@crepererum.net>
AuthorDate: Wed Nov 8 16:00:41 2023 +0100

    refactor: change `object_store` CA handling (#5056)
    
    Closes #4870.
---
 object_store/Cargo.toml |  3 ++-
 object_store/src/lib.rs | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/object_store/Cargo.toml b/object_store/Cargo.toml
index 7fcb6ce9e3..bf8301557d 100644
--- a/object_store/Cargo.toml
+++ b/object_store/Cargo.toml
@@ -50,7 +50,7 @@ quick-xml = { version = "0.31.0", features = ["serialize", "overlapped-lists"],
 serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
 serde_json = { version = "1.0", default-features = false, optional = true }
 rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true }
-reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"], optional = true }
+reqwest = { version = "0.11", default-features = false, features = ["rustls-tls-native-roots"], optional = true }
 ring = { version = "0.17", default-features = false, features = ["std"], optional = true }
 rustls-pemfile = { version = "1.0", default-features = false, optional = true }
 tokio = { version = "1.25.0", features = ["sync", "macros", "rt", "time", "io-util"] }
@@ -64,6 +64,7 @@ azure = ["cloud"]
 gcp = ["cloud", "rustls-pemfile"]
 aws = ["cloud"]
 http = ["cloud"]
+tls-webpki-roots = ["reqwest?/rustls-tls-webpki-roots"]
 
 [dev-dependencies] # In alphabetical order
 tempfile = "3.1.0"
diff --git a/object_store/src/lib.rs b/object_store/src/lib.rs
index cdd572dd9b..f791e65b38 100644
--- a/object_store/src/lib.rs
+++ b/object_store/src/lib.rs
@@ -86,6 +86,17 @@
     doc = "* [`http`]: [HTTP/WebDAV Storage](https://datatracker.ietf.org/doc/html/rfc2518). See [`HttpBuilder`](http::HttpBuilder)"
 )]
 //!
+//! # TLS Certificates
+//!
+//! Stores that use HTTPS/TLS (this is true for most cloud stores) can choose the source of their [CA]
+//! certificates. By default the system-bundled certificates are used (see
+//! [`rustls-native-certs`]). The `tls-webpki-roots` feature switch can be used to also bundle Mozilla's
+//! root certificates with the library/application (see [`webpki-roots`]).
+//!
+//! [CA]: https://en.wikipedia.org/wiki/Certificate_authority
+//! [`rustls-native-certs`]: https://crates.io/crates/rustls-native-certs/
+//! [`webpki-roots`]: https://crates.io/crates/webpki-roots
+//!
 //! # Why not a Filesystem Interface?
 //!
 //! Whilst this crate does provide a [`BufReader`], the [`ObjectStore`] interface mirrors the APIs