Skip to content

feat(redis): support redis sentinel configuration#41568

Open
akantcheff wants to merge 4 commits intoappsmithorg:releasefrom
akantcheff:feature/support-redis-sentinel
Open

feat(redis): support redis sentinel configuration#41568
akantcheff wants to merge 4 commits intoappsmithorg:releasefrom
akantcheff:feature/support-redis-sentinel

Conversation

@akantcheff
Copy link

Description

Add Redis Sentinel support to the Appsmith server.

  • Add redis-sentinel:// scheme support in both reactiveRedisConnectionFactory() and redisClient() beans
  • Extract credentials parsing into a shared extractCredentials() method with proper validation for both null and empty sentinel master name
  • Add APPSMITH_REDIS_SENTINEL_MASTER environment variable mapping in application-ce.properties for consistency with other APPSMITH_* env vars
  • Add log.info() to each scheme branch in reactiveRedisConnectionFactory() for startup observability

Configuration

Environment variable Description Example
APPSMITH_REDIS_URL Redis URL with sentinel scheme redis-sentinel://sentinel-host:26379
APPSMITH_REDIS_SENTINEL_MASTER Sentinel master name mymaster

Authentication is supported via URL: redis-sentinel://username:password@sentinel-host:26379

Fixes #11976

cc @appsmithorg/query-widgets-pod

Thanks to contributors: @m-k8s @benjaminParisel @abirembaut

Automation

/ok-to-test tags=""

🔍 Cypress test results

Caution

If you modify the content in this section, you are likely to disrupt the CI result for your PR.

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Add `redis-sentinel://` scheme support in both `reactiveRedisConnectionFactory()` and `redisClient()` beans. Extract credentials parsing into a shared `extractCredentials()` method and add a `fillAuthentication()` overload for `RedisURI.Builder`. Sentinel master name is configured via `appsmith.redis.sentinel.master` property.
Add `log.info()` statements to each scheme branch (`redis`, `rediss`, `redis-sentinel`, `redis-cluster`) in `reactiveRedisConnectionFactory()` for better observability at startup.
Cover all scheme branches (standalone, SSL, sentinel, cluster), authentication variants (no auth, user+password, password-only), error cases (invalid scheme, missing sentinel master as null and empty string), and custom port.
Cover all scheme branches (standalone, SSL, sentinel, cluster), authentication variants, sentinel master validation (null and empty string), client option verification, and scheme conversion for cluster. Add `@AfterEach` cleanup for Lettuce client resources.
@github-actions
Copy link

This PR has not seen activitiy for a while. It will be closed in 7 days unless further activity is detected.

@github-actions github-actions bot added the Stale label Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Redis Sentinel Support

1 participant