benroeder opened a new pull request, #691:
URL: https://github.com/apache/opendal-reqsign/pull/691

   ## Summary
   
   - Add `services-openstack` feature with Keystone v3 password authentication
   - `OpenstackConfig` — loads auth_url, username, password, domain/project
     settings from env vars or fields
   - `OpenstackLoader` — authenticates against Keystone, caches tokens with
     2-minute expiry grace, parses service catalog
   - `OpenstackCredential` — token + expiry + service catalog with endpoint
     lookup by service type, interface, and region
   - `OpenstackSigner` — signs requests by inserting `X-Auth-Token` header
   - 15 unit tests covering credential validity, catalog lookup, serde,
     and request signing
   - Add `services-openstack` to CI `build_single_feature` matrix
   
   ## Context
   
   Companion to #690 (main branch). This backport targets v0.16.x which
   is the version OpenDAL currently depends on. Tested against a real
   OpenStack Keystone cluster.
   
   Related: #685
   
   ## Files
   
   New (790 lines):
   - `src/openstack/mod.rs` — module re-exports
   - `src/openstack/config.rs` — Config + from_env()
   - `src/openstack/credential.rs` — Credential, Loader, CatalogEntry, Endpoint
   - `src/openstack/signer.rs` — Signer
   
   Modified:
   - `Cargo.toml` — add `services-openstack` feature
   - `src/lib.rs` — add feature-gated module
   - `.github/workflows/ci.yml` — add to build matrix
   
   ## Test plan
   
   - [x] `cargo fmt --all -- --check` passes
   - [x] `cargo test --no-fail-fast` — 81 unit + 32 integration + 7 doc-tests 
all pass
   - [x] `cargo check --all-features` compiles clean (only pre-existing 
warnings)
   - [x] Tested against real OpenStack Keystone cluster


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to