-
Notifications
You must be signed in to change notification settings - Fork 19.9k
feat(redis): support Redis Cluster authentication with username #31693
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @anobaka, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Redis Cluster integration by providing explicit support for username-based authentication. This change is crucial for environments utilizing Redis ACLs, which mandate both a username and password for secure access. By introducing a dedicated configuration option for the username, the system can now connect to such Redis Clusters without issues, improving flexibility and security posture for deployments. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds support for authenticating to a Redis Cluster using a username, in addition to a password. The changes are implemented correctly across the configuration files and the Redis client instantiation logic. The new REDIS_CLUSTERS_USERNAME configuration option is consistently added to .env.example files, the Pydantic settings model, and the docker-compose.yaml file. My main feedback is the lack of unit tests for this new functionality. I've added a comment with a suggestion on how to add a test to ensure the new configuration is passed correctly to the Redis client, which would improve the robustness of this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds support for Redis Cluster authentication with a separate username configuration to support ACL-based authentication in Redis Cluster deployments.
Changes:
- Added
REDIS_CLUSTERS_USERNAMEconfiguration field to support explicit username specification for Redis Cluster authentication - Updated Redis cluster client initialization to pass the username parameter
- Updated environment configuration examples and Docker Compose files to include the new configuration option
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
api/configs/middleware/cache/redis_config.py |
Added REDIS_CLUSTERS_USERNAME field definition with appropriate type hints and description |
api/extensions/ext_redis.py |
Updated _create_cluster_client() to pass username parameter to RedisCluster initialization |
api/.env.example |
Added REDIS_CLUSTERS_USERNAME environment variable example |
docker/.env.example |
Added REDIS_CLUSTERS_USERNAME environment variable example |
docker/docker-compose.yaml |
Added REDIS_CLUSTERS_USERNAME environment variable mapping to shared API/worker configuration |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Important
Fixes #<issue number>.Summary
Add support for Redis Cluster authentication with a separate username configuration.
Motivation
Some Redis Cluster deployments use ACL-based authentication and require both a username and a password. Passing the username as part of the password causes authentication to fail in these setups.
Changes
Introduce REDIS_CLUSTER_USERNAME to allow passing the username explicitly
Keep existing password-only behavior unchanged
Compatibility
This change is backward compatible. If REDIS_CLUSTER_USERNAME is not set, the current behavior remains the same.
resolves #31690
Screenshots
Checklist
make lintandmake type-check(backend) andcd web && npx lint-staged(frontend) to appease the lint gods