Redis Data Integration release notes 1.19.0 (July 2026)

New redis-di CLI for VM, Kubernetes, and Redis Cloud installations. New Redis sorted set and stream outputs for the Flink processor, expanded Snowflake configuration, and Flink processor support for offline VM installations. Improved pipeline status, secret updates, support packages, and error handling.

What's New in 1.19.0

Compatibility Notes

  • RDI API v1 deprecated: RDI API v1 is deprecated as of RDI 1.19.0. Existing API v1 endpoints remain available for backward compatibility, but new integrations should use RDI API v2. API v1 may be removed in a future RDI version. See the RDI API migration guide.
  • Unified JSON merge behavior for the Flink processor: JSON merge behavior is now the same regardless of the target Redis version. Previously, targets without native JSON.MERGE support (RedisJSON below 2.6) used a fallback path that preserved null leaf values as JSON nulls, while targets with native support deleted them. Both paths now delete null leaf values. This also differs from the classic processor, which still writes JSON nulls in its fallback path.
  • redis/rdi-cli image and rdi-secret.sh retired: The redis/rdi-cli Docker image is no longer built or published, and the rdi-secret.sh script has been removed. Manage RDI secrets with the redis-di CLI secret commands instead.

New Features

  • New redis-di CLI: The redis-di command-line tool has been rewritten in Go as a thin client over the RDI REST API. The previous Python CLI talked directly to the RDI Redis database and the Kubernetes API and supported only VM installations; the new CLI works the same way across all installation types: VMs, Kubernetes (Helm), and Redis Cloud. It adds full create/read/update/delete support for pipelines and secrets, new commands for dead letter queues, jobs, and metric collections, and kubectl-style output with optional JSON and YAML formats for scripting. It is multi-pipeline aware, supports both the classic and Flink processors, and authenticates to the API with a JWT (user and password), a Redis Cloud account and user key, or without credentials when API authentication is disabled. The CLI ships as a single self-contained static binary, cross-compiled for linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, and windows/amd64, and is available from the Redis download center, with the Linux binaries also bundled in the VM installer. The new secret commands replace the rdi-secret.sh script, and the redis/rdi-cli Docker image is no longer needed (see Compatibility Notes above).
  • Table-level key and column configuration for Snowflake: Each table for a Snowflake source now accepts keys to select keys and columns to project columns.
  • Snowflake encrypted keypair support: RDI now supports encrypted Snowflake keypairs for Snowflake sources.
  • Pipeline metadata revision and tags: Pipeline config.metadata now accepts an optional revision (non-negative integer) and tags (array of unique slug-like strings, up to 50 characters each), letting clients mark config states they care about.
  • Flink processor support for Redis strings and Redis sets: redis.write outputs now accept data_type: string and data_type: set.
  • Flink processor support for Redis sorted sets: redis.write outputs now accept data_type: sorted_set, using args.member and args.score to emit ZADD and ZREM commands.
  • Flink processor support for Redis streams: redis.write outputs now accept data_type: stream, appending each change event to the target stream via XADD.
  • Flink processor images in the offline installer: The offline VM installation package now bundles the Flink processor and metrics aggregator images, so the Flink processor can be used on such installs. The installer disk space requirement was raised to account for the larger image set.
  • Per-component replica count in pipeline status: GET /api/v2/pipelines/{name}/status now reports a replicas field for each component, giving the number of ready replicas.
  • Support package covers the Flink processor: dump-support-package now collects Flink processor diagnostics, including per-stream ingest statistics from the counters hash and metrics from the Flink processor ingress.
  • Operator leader-election mode in API v2 info: GET /api/v2/info now reports the operator leader-election mode (disabled, leader, or follower) in addition to the API version.

Improvements

  • Source connection error propagation ("Test Source"): Source database connection failures now propagate through collector-api to the GET /api/v2/pipelines/{name}/source-schemas/{source} endpoint with the underlying cause named, instead of a generic error.
  • Merged Flink processor status: GET /api/v2/pipelines/{name}/status and the metric collection endpoints now report the Flink JobManager and TaskManager as a single flink-processor component instead of two separate entries, with status reflecting the worst case of both parts.
  • Secret updates reflected in pipeline status: After a source or target database secret is updated, the pipeline reports as not current and non-terminal until every consuming component has restarted with the new secret, so clients can wait for a secret change to take effect the same way they wait for any other change.

Bug Fixes

  • Support package log parameters no longer dropped: Collected component logs now retain their structured key-value parameters (for example, the operator's reconcile context) instead of showing only the timestamp, level, and message.
  • Pipeline deletion resets state without removing the Pipeline resource: Deleting a pipeline through API v2 now replaces the Pipeline with an empty inactive configuration and triggers reset cleanup instead of deleting the Kubernetes resource. This avoids unstable operator reconciliation when the operator restarts and removes persisted pipeline runtime data from the RDI database.
  • Orphaned Redis keys on UPDATE with key change (Flink processor): When the key calculated by a custom key expression changes as part of an UPDATE, the Flink processor now removes the entry under the previous key in addition to writing the new one.
  • Nested JSON outputs ignored removedFields on UPDATE (Flink processor): Nested JSON outputs (redis.write with data_type: json and a nest block) now apply MongoDB $unset removals on UPDATE events, deleting the corresponding top-level and nested fields from the parent JSON document instead of leaving stale values behind.
  • No RDI API restarts when target database credentials change: Rotating the target database password or TLS certificates no longer causes the RDI API to restart, eliminating brief request interruptions during credential updates.
  • Accurate pipeline status during runtime issues: The pipeline status reported by the API no longer reflects a stale user-requested operation (such as starting, stopping, or resetting) once that operation has completed. Subsequent transitions to pending caused by runtime conditions, such as a source database becoming unreachable, are now reported correctly.
  • Transient deploy-time pipeline errors suppressed: The pipeline no longer briefly reports a "Secret provider configuration error" during deploy while the Secrets Store CSI driver is still mounting volumes. Volume mount warnings are now reported only after the same failure has persisted for at least 30 seconds.
  • Updating an external secret no longer leaves any component on the stale secret: Changing an external secret now restarts the affected components so the new secret is mounted, and the pipeline reports updating until the restart completes. Previously these components kept the previous secret until restarted for another reason.
  • Over-counted incoming metric across snapshot/Debezium transitions (Flink processor): The first record after a snapshot-to-Debezium (or Debezium-to-snapshot) transition was counted twice in the per-stream incoming metric; it is now counted once.
  • Multiline custom snapshot SQL: A custom snapshot SQL statement containing line breaks (for example, a multi-line SELECT entered in the UI) no longer causes saving the pipeline to fail with a server error.
  • Fixed schema introspection failing for tables/columns with special regex characters in their names: Table and column names containing Java regex special characters (for example, emp_1_{06s}) are now escaped before being written to Debezium's table.include.list, column.include.list, and field.exclude.list properties, which prevented fetching source schema metadata.
  • JSON target type mismatch left records pending instead of rejected (Flink processor): When a JSON target write hit a key that already held a non-JSON value, RedisJSON reported a different error than the classic Redis WRONGTYPE message, so the record was not rejected and the batch stayed pending. The processor now recognizes the RedisJSON variant and rejects the record to the DLQ.
  • MongoDB oplog checks against managed Atlas tiers: The MongoDB Debezium oplog size and oplog access checks no longer fail when the source is a managed Atlas tier (such as free or flex) that restricts access to the reserved local database. They are skipped and omitted from the validation summary instead of failing, since the connector can still capture changes.
  • Binary private key secrets corrupted (for example, PostgreSQL PKCS#8 keys): Setting a secret from a non-text file, such as a PostgreSQL client key in PKCS#8 DER (.pk8) form, no longer corrupts the key. Binary secret files are now base64-encoded end to end through a new binary_file secret type; plain text secrets are unaffected.
RATE THIS PAGE
Back to top ↑