Skip to content

Commit

Permalink
feat: add gcp oauth support (apache#654)
Browse files Browse the repository at this point in the history
  • Loading branch information
twuebi authored and shaeqahmed committed Dec 9, 2024
1 parent 364103f commit d6ed3c5
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions crates/iceberg/src/io/storage_gcs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,25 @@ pub const GCS_SERVICE_PATH: &str = "gcs.service.path";
pub const GCS_USER_PROJECT: &str = "gcs.user-project";
/// Allow unauthenticated requests
pub const GCS_NO_AUTH: &str = "gcs.no-auth";
/// Google Cloud Storage credentials JSON string, base64 encoded.
///
/// E.g. base64::prelude::BASE64_STANDARD.encode(serde_json::to_string(credential).as_bytes())
pub const GCS_CREDENTIALS_JSON: &str = "gcs.credentials-json";
/// Google Cloud Storage token
pub const GCS_TOKEN: &str = "gcs.oauth2.token";

/// Parse iceberg properties to [`GcsConfig`].
pub(crate) fn gcs_config_parse(mut m: HashMap<String, String>) -> Result<GcsConfig> {
let mut cfg = GcsConfig::default();

if let Some(cred) = m.remove(GCS_CREDENTIALS_JSON) {
cfg.credential = Some(cred);
}

if let Some(token) = m.remove(GCS_TOKEN) {
cfg.token = Some(token);
}

if let Some(endpoint) = m.remove(GCS_SERVICE_PATH) {
cfg.endpoint = Some(endpoint);
}
Expand Down

0 comments on commit d6ed3c5

Please sign in to comment.