feat(ui): Add value decoder#6143
Conversation
|
Hi, I’m Jit, a friendly security platform designed to help developers build secure applications from day zero with an MVS (Minimal viable security) mindset. In case there are security findings, they will be communicated to you as a comment inside the PR. Hope you’ll enjoy using Jit. Questions? Comments? Want to learn more? Get in touch with us. |
d964a24 to
f5ee9ea
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d964a24cb8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f5ee9ea996
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
f5ee9ea to
6a0fa3e
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6a0fa3e190
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
6a0fa3e to
abea19d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: abea19d674
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
abea19d to
86ba331
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 86ba331b5c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
86ba331 to
8ce011f
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ce011f9ec
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
8ce011f to
af370f8
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: af370f8194
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
af370f8 to
3c7e169
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3c7e16952c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
3c7e169 to
5a2da08
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5a2da08a16
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
5a2da08 to
463fbb2
Compare
pawelangelow
left a comment
There was a problem hiding this comment.
Thanks a lot for this, @saidake - really nice piece of work. 🙏 The design is careful in the ways that matter: it's off by default, the raw value is always one toggle away, the parser is defensive (bounds-checked, repeat caps, regex wrapped in try/catch), and it's cleanly isolated so it doesn't touch any other key type.
Before we can ship it, there are a few things that need to be in place. None of these are hard blockers on the idea - they're about fitting it into how RedisInsight works at large:
-
Feature flag (required for shipping). Every other optional action in the key header is wrapped in a FeatureFlagComponent, and we need the same here so the feature can be rolled out gradually and disabled remotely if anything goes wrong in production. This is the one true blocker.
-
Per-database storage, not a global key. Right now the rules live in a single global
valueDecoderRuleslocalStorage entry, so a decoder created for one database silently applies to every connection with matching key names. These need to be scoped per database so rules don't leak across connections. -
UI treatment. The current "Value Decoders" primary button shows for every hash key for every user, which is a lot of visual weight for an optional tool. We'd like to experiment here to match the existing header style - likely a lighter/secondary or icon button, and/or only surfacing it when the feature is enabled for that database.
In terms of next steps, there are two ways we can go:
- You keep ownership and work on these - in which case we'd just ask that you try to scope them into small, focused PRs. That speeds up the review process a lot and gets things merged faster.
- We handle them on our side - happy to, though we can't guarantee you an exact timeline for when we'd get to it.
Either way works for us. Really appreciate the contribution - the core is in good shape, this is mostly about integration. Let us know which direction you'd prefer!
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cb2f5e7a8c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 511f8db0f3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
Reviewed by Cursor Bugbot for commit b0c207e. Configure here.
|
hi @pawelangelow |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e1142987e1
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3fbc0ebe34
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

What
Add Value Decoders for HASH value tables. The initial implementation only includes a Binary Decoder.
This PR focuses on solving a single problem: making complex Redis values human-readable.
Users can create Value Decoders for specific Redis keys by defining a Key Pattern.
A Decode (eye) button is displayed in the
Valuecolumn header when anyKey Patternmatches.With the Binary Decoder, users can configure the data type of binary fields in advance. Redis Insight will then decode binary values and display them in a human-readable format in the value preview table.
Redis Strings are binary-safe byte arrays, so storing binary data in Redis is a very common practice.
The Binary Decoder is especially useful for games and other high-performance systems that store binary data in Redis, making it much easier to inspect and debug binary values directly in Redis Insight.
Value Decoder data is stored in Local Storage using the key ·valueDecoderRules_·, allowing each Redis database connection to maintain its own isolated Value Decoders.
when you delete a Redis instance through the UI, its value decoders are removed from Local Storage
Currently, this functionality is heavily used in my own system. In the future, the Value Decoders could be extended to support additional formats as needed, such as Protobuf, MessagePack, and BSON.
Will this feature have any performance impact?
No.
HashDetailsTable.tsxusesVirtualTable(react-virtualized) to render items, so only visible items are rendered and decoded.Will this feature misdisplay binary data?
No. The eye toggle icon allows you to switch between the decoded view and the original value at any time.
Usage Example:




Stored Local Storage Data Example:
Testing
Start the Redis Insight UI:
Start the Redis Insight API server:
Connect to a Redis database A. In a Linux terminal, create a HASH containing binary values:
Connect to a Redis database B. In a Linux terminal, create a HASH containing binary values:
example:hashkey, click Value Decoders and create a new decoder with the following configuration:example:hashkey, click Value Decoders and create a new decoder with the following configuration:Note
Medium Risk
Large new UI surface on hash value rendering and client-side binary parsing; mitigated by feature flag default-off, raw/decoded toggle, and repeat-decode iteration caps.
Overview
Introduces a Value Decoders capability (behind the new
valueDecoderfeature flag, off by default) for inspecting binary HASH field values using user-defined layouts.Users can define per-database decoder rules in a modal: glob key patterns, a binary schema (typed fields, dynamic sizes, nested repeat blocks), plus copy/paste of JSON configs. Rules persist in local storage per connection, with legacy global-key migration and cleanup when a database is removed.
In the HASH browser, a Value Decoders header action opens configuration; when a key matches a rule, the Value column gets an eye toggle to switch between the normal formatted value and a decoded field breakdown (
DecodedValueDisplay), with virtual-table cache refresh on toggle.Reviewed by Cursor Bugbot for commit 3fbc0eb. Bugbot is set up for automated code reviews on this repo. Configure here.