Repository navigation
fix(flags): accept rediss:// URLs for flag_fallback_cache_url - #1080
Merged
Merged
Conversation
Signed-off-by: Sebastian Turner <[email protected]>
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.
💡 Motivation and Context
flag_fallback_cache_urlonly accepted theredisscheme. A TLS URL such asrediss://user:pass@host:6380/0?ttl=300was rejected as an unknown scheme, a warning was logged and the flag fallback cache was disabled. Managed Redis services often require TLS, so the fallback cache could not be used there at all._initialize_flag_cachealready rebuilds the connection URL fromparsed.schemeand hands it toredis.from_url, which supportsrediss://. This change letsredissinto the same branch, lists it in the error message, and adds it to the docstring examples.💚 How did you test it?
test_flag_fallback_cache_url_accepts_redis_schemesinposthog/test/test_client.py. It replaces theredismodule with a mock and checks that both aredis://and arediss://URL produce aRedisFlagCachewith the requested TTL and thatredis.from_urlreceives the URL with the scheme, credentials, port and db preserved and the query string removed.redisscase fails onmain(from_urlis never called) and passes with the fix. Therediscase passes on both.pytest --timeout=30passes.ruff format --check .,ruff check .and the mypy baseline check are clean.📝 Checklist
If releasing new changes
sampo addto generate a changeset file🤖 Agent context
Autonomy: Fully autonomous
mainand ran the tests with the fix.Fixes #1079