Skip to content

Conversation

@anobaka
Copy link
Contributor

@anobaka anobaka commented Jan 29, 2026

Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: 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

Before After
... ...

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran make lint and make type-check (backend) and cd web && npx lint-staged (frontend) to appease the lint gods

Copilot AI review requested due to automatic review settings January 29, 2026 03:21
@dosubot dosubot bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jan 29, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @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

  • Redis Cluster Authentication: Introduced support for Redis Cluster authentication using a separate username, addressing scenarios where ACL-based authentication requires both a username and password.
  • New Configuration Variable: Added a new environment variable, REDIS_CLUSTERS_USERNAME, to explicitly configure the username for Redis Cluster connections.
  • Backward Compatibility: Ensured that the change is fully backward compatible; existing Redis Cluster configurations without a specified username will continue to function as before.

🧠 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 Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@dosubot dosubot bot added the 💪 enhancement New feature or request label Jan 29, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a 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.

Copy link
Contributor

Copilot AI left a 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_USERNAME configuration 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💪 enhancement New feature or request size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Redis Cluster Authentication with Separate Username Configuration

1 participant