apache / apache/iceberg-rust

Any plans of introducing sigv4 authentication native support

Open
#2,704 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
1.4k
Forks
567
Avg merge
2d 2h
Merged PRs (30d)
93

Description

### Is your feature request related to a problem or challenge?

Currently we are working on re-building our etl's in rust, for the iceberg part we use rest catalogue's which have sigv4 set up. every time we need to commit to Iceberg we have to call a python code for committing, primary reason being sigV4, although I have implemented that part in now in rust. Anyhow is there any plan of introducing them here, if yes can I work on that?

### Describe the solution you'd like

Here is the example code that worked for me
```
let identity: Identity = Credentials::new(access_key, secret_key, None, None, "config").into();
let signing_settings = SigningSettings::default();
let signing_params = v4::SigningParams::builder()
.identity(&identity)
.region(®ion)
.name(&catalog.signing_name)
.time(SystemTime::now())
.settings(signing_settings)
.build()
.context("building SigV4 signing params")?
.into();

let signable = SignableRequest::new(
"GET",
&url,
std::iter::once(("host", host.as_str())),
SignableBody::Bytes(&[]),
)
.context("building signable request")?;

let (instructions, _sig) = sign(signable, &signing_params)
.context("signing catalog request")?
.into_parts();

let mut http_req = http::Request::builder()
.method("GET")
.uri(&url)
.header("host", &host)
.body(Vec::::new())
.context("building http request")?;
instructions.apply_to_request_http1x(&mut http_req);
```
### Willingness to contribute

Yes

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points; start by tracing how REST catalog requests and authentication are configured. Compare the existing Rust request path with the supplied SigV4 example, and define done as committing to an Iceberg REST catalog with SigV4 without calling Python.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, authentication
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.