DOC-6836 Rename resolveCredentials() to resolveCredentialsAsync() in Lettuce AMR docs [PARKED] - #3623
Open
andy-stark-redis wants to merge 1 commit into
Conversation
…Lettuce AMR docs Lettuce PRs #3837/#3829/#3838 rename the credential-provider SPI: the RedisCredentialsProvider interface becomes CredentialsProvider and its resolveCredentials() method becomes resolveCredentialsAsync(). Updated the two call sites in the Entra ID / AMR page (one live snippet, one commented-out test line) to the new async name. Written against unmerged upstream diffs that target a "reactor-optional" feature branch, not main, so this is provisional. Parking until the rename actually ships in a released redis-authx-entraid artifact. The subtlety: our page uses redis-authx-entraid's TokenBasedRedisCredentialsProvider, not the lettuce-core class the PR diff edits, so the rename only reaches our readers once that separate artifact rebuilds against the new lettuce SPI and releases. Learned: the rename is a lettuce-core SPI change; it only affects our docs once redis-authx-entraid adopts the new lettuce and re-releases Recheck: when redis-authx-entraid releases a version whose TokenBasedRedisCredentialsProvider exposes resolveCredentialsAsync() Gaps: pinned redis-authx-entraid version left at 0.1.1-beta1 (lines 43/51) — page is intentionally inconsistent while parked; bump to the release that ships the rename on pickup Gaps: unverified whether resolveCredentials() survives as a deprecated alias (#3837 "deprecate" vs #3838 "remove") — if it does, our edit is preferred not strictly required Directive: do not merge until the rename ships in a released artifact AND the dependency version on this page is bumped to match Ticket: DOC-6836 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the Lettuce Azure Managed Redis (AMR) / Entra ID auth page for the upcoming
credential-provider SPI rename in Lettuce:
RedisCredentialsProvider→CredentialsProvider, and itsresolveCredentials()method →resolveCredentialsAsync().Two call sites in
amr.mdare updated to the newasync name.
Park manifest
Ticket: DOC-6836
Parked at: 2026-07-13
Trigger to pick up: a non-prerelease Lettuce release whose
io.lettuce.authx.TokenBasedRedisCredentialsProviderdeclaresresolveCredentialsAsync(). Testably:The trigger is met when that grep matches at a non-prerelease tag newer than
7.7.0.RELEASE.Pinned sources (state observed at park time)
feature/reactor-optional-1; head625a413; milestone none; updated 2026-07-13gh api repos/redis/lettuce/pulls/3838 --jq '{state,merged,head_sha:.head.sha,base:.base.ref,milestone:.milestone.title,updated_at}'feature/reactor-optional-1; headf558dbb; milestone none; updated 2026-07-09gh api repos/redis/lettuce/pulls/3829 --jq '{state,merged,head_sha:.head.sha,base:.base.ref,milestone:.milestone.title,updated_at}'main; headb8b2a25; milestone none; updated 2026-07-13gh api repos/redis/lettuce/pulls/3837 --jq '{state,merged,head_sha:.head.sha,base:.base.ref,milestone:.milestone.title,updated_at}'feature/reactor-optional-1; updated 2026-07-14; body states it is an "alternative of #3838"gh api repos/redis/lettuce/pulls/3842 --jq '{state,merged,head_sha:.head.sha,base:.base.ref,milestone:.milestone.title,updated_at}'v0.1.1-beta2; page pins0.1.1-beta1(still exposesresolveCredentials())gh api repos/redis/jvm-redis-authx-entraid/tags --jq '.[0:5][].name'Update 2026-08-06 (
/pr-scan-review) — a rival PR, and the remove-vs-deprecate question looks answeredTwo things found while re-checking the pins. Neither has fired the trigger — all three original PRs are still
open and untouched since 13 July, and
redis-authx-entraid's latest tag is stillv0.1.1-beta2— so this PRstays parked. But both change what to expect on pickup.
1. #3838 has a rival. lettuce#3842 describes itself as an
"alternative of #3838" and sits on the same
feature/reactor-optional-1branch. One of the two will beabandoned, so the pinned trigger above may be pinned to the loser. Check both at pickup time.
2. Under #3842,
resolveCredentials()survives. This addresses the third checklist item below, which isthe one that decides whether this PR's edit is a fix or a preference. Verified from #3842's file list on
2026-08-06:
io/lettuce/core/RedisCredentialsProvider.java— modified, not deleted. The interface stays.io/lettuce/core/CredentialsProvider.java— added (the new primary SPI).io/lettuce/core/AsyncCredentialsProviderAdapter.java— added (the bridge).That is deprecate-with-bridge, not remove — i.e. the #3837 shape rather than the #3838 shape. If #3842 is the
route that ships, this PR's rename is preferred-not-required and there is no reader-facing break, which lowers
its urgency considerably and should be stated in the finalize commit.
Caveat on sourcing: this reads the file list and add/modify/delete status of the live diff, which is reliable.
It deliberately does not rely on the Bugbot summary in #3842's body — that summary was reviewed at commit
404f10f9and is demonstrably stale about other parts of the same PR.Update 2026-08-27 (
/pr-scan-review) — the trigger was watching the wrong repo; entraid 0.2.0 shippedStays parked. Two findings, one of them a defect in this manifest.
1. The trigger test was mis-targeted, and has been rewritten above. The original said to watch for a
redis-authx-entraidrelease whoseTokenBasedRedisCredentialsProviderexposesresolveCredentialsAsync().That class is not in the entraid artifact. Verified from the tag tree — all 30 Java files at
v0.2.0are underredis.clients.authentication.core/.entraid(TokenAuthConfig,IdentityProvider,TokenManager,EntraIDTokenAuthConfigBuilder, …), and none is named*CredentialsProvider*:The class lives in redis/lettuce, at
src/main/java/io/lettuce/authx/TokenBasedRedisCredentialsProvider.java.This also corrects the "Observed shape" bullet below claiming the rename "must propagate across that repo
boundary before it's real for us" — there is no boundary to cross for the renamed method. The page needs
both jars, but they supply different things: Lettuce supplies the provider class the rename lands on, and
entraid supplies only the
EntraIDTokenAuthConfigBuilder/TokenAuthConfigpassed intoTokenBasedRedisCredentialsProvider.create(...). The rename becomes real for us the moment Lettuce ships it.Baseline pinned today: on lettuce
main, that file still declarespublic Mono<RedisCredentials> resolveCredentials()at line 90 — the rename has not landed on
main. Newest non-prerelease Lettuce release is7.7.0.RELEASE(2026-08-18), which therefore cannot contain it.
2. All four Lettuce PRs remain open and untouched for six weeks. Re-fetched 2026-08-27:
mainfeature/reactor-optional-1feature/reactor-optional-1feature/reactor-optional-1The 2026-08-06 finding stands unchanged: #3838-vs-#3842 is still undecided, so the remove-vs-deprecate question
is still open. Today's daily scan shows lettuce activity only on unrelated PRs (#3847 deprecations, #3863 VSIM).
3.
redis-authx-entraidv0.2.0 shipped today — and is now a separate ticket, not a trigger. Published2026-08-27T07:14:36Z,
prerelease: false(the artifact's first non-prerelease), and on Maven Central(
maven-metadata.xml→<release>0.2.0</release>). Its changelog is retry-counter behavior (#48),msal4j1.19.1 → 1.26.0 and
azure-identity1.15.4 → 1.18.4 (#49), and a Maven Central Portal publishing move (#35) —no SPI change of any kind.
The version bump is now tracked as DOC-7006 against
main(branchDOC-7006-entraid-0-2-0-dependency-bump), covering bothjedis/amr.mdandlettuce/amr.md. That resolves thefirst re-check item below as independent of this PR: the pinned version no longer has to wait for the rename.
Expect a small conflict in
content/develop/clients/lettuce/amr.md(lines ~43 and ~51) when DOC-7006 mergesfirst — this branch still carries
0.1.1-beta1there.Observed shape the page assumes (confidence: LOW)
resolveCredentials()→resolveCredentialsAsync()(return type unchanged:
CompletionStage<RedisCredentials>/ reactiveMonochain still.doOnNext(...).block()).LOW — taken from the unmerged Add cluster warm up docs #3838 diff against a feature branch, not a released artifact.
TokenBasedRedisCredentialsProvider(the class our page uses) keeps its name; only itsmethod is renamed. LOW — same source.
the class in the diff lives in Lettuce coreCorrected 2026-08-27: the class(
io.lettuce.authx), whereas our page consumes it from the separateredis-authx-entraidpackage (
redis.clients.authentication). The rename must propagate across that repo boundarybefore it's real for us; that propagation is unverified.
is only ever in Lettuce (
io.lettuce.authx); the entraid artifact contains no*CredentialsProvider*type at all. There is no repo boundary for the rename to cross — see the2026-08-27 update above.
#3837deprecate onmain,#3838remove onthe feature branch): the end-state exposed to users — remove vs. deprecate-with-alias — is not
yet settled.
Re-check checklist
redis-authx-entraidrelease exposesresolveCredentialsAsync(), and bump the pinned version atamr.mdlines ~43 and ~51 (currently0.1.1-beta1) to match.~~ Superseded 2026-08-27 — no entraid release exposes that method, because the class is not in that artifact. The version bump to0.2.0is decoupled into DOC-7006; resolve any conflict in its favor. The page remains intentionally inconsistent while parked — new method name, old version.resolveCredentials()→resolveCredentialsAsync()actually landed (not renamed again, e.g.resolveAsync()), and that the return-type /.doOnNext(...).block()usage in the two snippets still compiles.resolveCredentials()survives as a deprecated alias (update for redisvl 0.25.1 #3837 "deprecate") or is removed (Add cluster warm up docs #3838 "remove"). If it survives, our edit is preferred-not-required and there's no reader-facing break — note this in the finalize commit. Partly answered 2026-08-06: under the rival update rc openapi spec #3842 it survives (see the update above). Still open because it depends on which of Add cluster warm up docs #3838/update rc openapi spec #3842 ships.TokenBasedRedisCredentialsProvider(andEntraIDTokenAuthConfigBuilder) class names are unchanged in the released artifact; the page uses them ~10 times.content/develop/clients/lettuce/for any newly-relevant SPI mentions (CredentialsProvider,subscribeToCredentials,supportsStreaming) introduced by the wider "reactor-optional" refactor — none today, but the umbrella change is broad.On pickup, then
When the trigger fires, run
/pickup <this PR>: it re-fetches each pinned source, diffs itagainst the snapshots above, reconciles the docs, and takes the PR through the normal
/reflect→/finalizepipeline to merge. Thedo not merge yetguard holds until/finalizecompletes.Note
Low Risk
Documentation-only renames in example snippets with no runtime or security impact; merge timing depends on matching released client APIs.
Overview
Updates the Lettuce Azure Managed Redis (AMR) / Entra ID page so sample code matches the upcoming Lettuce credential-provider SPI rename:
resolveCredentials()→resolveCredentialsAsync().Both Java snippets in
amr.mdare touched—the standalone “test credentials” example and the commented optional test in the full connection sample. The reactive chain (.doOnNext(...).block()) is unchanged.Note: The PR description marks this as parked until
redis-authx-entraidships against the new SPI; the doc still pins dependency version0.1.1-beta1, so method names and artifact version may be intentionally out of sync until pickup.Reviewed by Cursor Bugbot for commit 2d032d8. Bugbot is set up for automated code reviews on this repo. Configure here.