olai-http
Unified cloud credential abstraction for AWS, Azure, GCP, and Databricks.
[!IMPORTANT] The credential providers in this crate are extracted from the object_store crate's internal client and hoisted into a standalone crate for reuse by other projects.
Motivation
Comprehensive SDKs exist for each major cloud provider, but when a service must interact with multiple providers (or with third-party platforms like Databricks), pulling in every vendor SDK brings dependency bloat and configuration fragmentation.
olai-http provides a single CloudClient that handles authentication for
AWS, Azure, GCP, and Databricks through a common RequestSigner trait, backed by
the same battle-tested credential machinery that powers object_store.
Features
- Unified
CloudClient— one HTTP client type for all providers RequestSignertrait — pluggable authentication (SigV4, bearer tokens, SAS, etc.)- Temporary credential vending — STS AssumeRole (AWS), client-secret / workload-identity tokens (Azure), service-account tokens (GCP)
- Azure SAS generation — storage-key and user-delegation SAS for blob/container access
- Databricks OAuth — M2M, OIDC, and CLI-profile authentication flows
- Recording mode — capture HTTP interactions to JSON for test replay (
recordingfeature)
Quick start
[]
= "0.1"
use CloudClient;
// Bearer token auth (works with any provider)
let client = new_with_token;
let resp = client.get.send.await?;
// AWS credentials from environment
let client = new_aws?;
// Azure credentials
let client = new_azure?;
Recording
Enable the recording feature to capture all HTTP interactions:
[]
= { = "0.1", = ["recording"] }
let mut client = new_unauthenticated;
client.set_recording_dir?;
// Interactions are saved as 0000.json, 0001.json, etc.
Sensitive headers (Authorization, x-amz-security-token, etc.) are automatically
redacted in recordings.