Skip to content

Commit 1c08074

Browse files
NickLarsenNZmaltesanderlfrancke
authored
fix: Respect the next link in UIF Entra backend requests (#859) (#860)
* fix: respect next link in uif entra backend requests * fix: bound Entra group pagination, keep all memberships, add HTTP timeouts Follow-ups to the @odata.nextLink pagination fix in #859: - Add a 60s request / 15s connect timeout to every user-info-fetcher outbound HTTP backend (Keycloak, Entra, XFSC AAS) via a shared utils::http::client_builder(); reqwest otherwise waits indefinitely. - Keep every directory membership by requesting /memberOf instead of restricting to microsoft.graph.group, so directory roles and administrative units are still returned. - Cap @odata.nextLink following at 100 pages as a backstop against a cyclic or runaway link, warning if the group list may be truncated. - Bump the yanked spin 0.9.8 to 0.9.9 (matching #857, which only landed on release-26.7) so cargo-deny passes, and regenerate Cargo.nix for the new wiremock dev-dependency. * fix: address review feedback - Restructure the Entra group pagination loop guard-first: check the page cap and warn/break before doing the request, per review. - Reword the changelog entry for the pagination fix. --------- Co-authored-by: maltesander <contact@maltesander.com> Co-authored-by: Lars Francke <jujutsu@lars-francke.de>
1 parent 9247836 commit 1c08074

9 files changed

Lines changed: 535 additions & 21 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ All notable changes to this project will be documented in this file.
2222
- BREAKING: Removed product-config machinery. This is a breaking change in terms of configuration.
2323
Users relying on the product-config `properties.yaml` file have to set these properties via the CRD.
2424
JsonPatches has been renamed to JsonPatch ([#842]).
25+
- Apply a 60s request and 15s connect timeout to all user-info-fetcher outbound HTTP backends
26+
(Keycloak, Entra, XFSC AAS), which previously waited indefinitely ([#859]).
27+
28+
### Fixed
29+
30+
- The user-info-fetcher Entra backend now follows Microsoft Graph's `@odata.nextLink` pagination
31+
links - up to 100 times - to fetch 999 group memberships per result page, resulting in a maximum
32+
of 99900 fetched memberships for a single user ([#859]).
2533

2634
### Removed
2735

@@ -38,6 +46,7 @@ All notable changes to this project will be documented in this file.
3846
[#842]: https://github.com/stackabletech/opa-operator/pull/842
3947
[#843]: https://github.com/stackabletech/opa-operator/pull/843
4048
[#851]: https://github.com/stackabletech/opa-operator/pull/851
49+
[#859]: https://github.com/stackabletech/opa-operator/pull/859
4150

4251
## [26.3.0] - 2026-03-16
4352

Cargo.lock

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

Lines changed: 215 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ tokio = { version = "1.52", features = ["full"] }
4848
tracing = "0.1"
4949
url = "2.5"
5050
uuid = "1.10"
51+
wiremock = "0.6"
5152

5253
[patch."https://github.com/stackabletech/operator-rs.git"]
5354
# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" }

0 commit comments

Comments
 (0)