-
Notifications
You must be signed in to change notification settings - Fork 384
RI-7197 Introduce vector search "Manage Indexes" drawer #4751
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: feature/RI-6855/vector-search
Are you sure you want to change the base?
RI-7197 Introduce vector search "Manage Indexes" drawer #4751
Conversation
Code Coverage - Frontend unit tests
Test suite run success4834 tests passing in 641 suites. Report generated by 🧪jest coverage report action from 2725eaf |
- integrated Section component from Redis UI to represent the index information - show summary info for the index, when the section is collapsed - show details about the index attributes when the section is uncolapped re #RI-7197
99520b0
to
25c426e
Compare
Code Coverage - Integration Tests
|
Code Coverage - Backend unit tests
Test suite run success2944 tests passing in 286 suites. Report generated by 🧪jest coverage report action from a0c099a |
- extend the "manage indexes" boxes with a button to allow deleting the index - added unit tests re #RI-7197
8069441
to
74f976c
Compare
import { IndexInfoDto } from 'apiSrc/modules/browser/redisearch/dto' | ||
|
||
// TODO: Rework this mock to use factory and faker later | ||
export const MOCK_REDISEARCH_INDEX_INFO: IndexInfoDto = { |
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.
I'll provide separate pull requests with a basic example using factories implementation later this week, to showcase how much simpler it will be using such an approach.
})) | ||
|
||
const createTestStore = () => { | ||
// TODO: Use rootReducer instead, once you realize how to solve the issue with the instancesReducer |
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.
I tried to use the rootReducer
instead of initializing only the slices necessary for this test suite, so it will reflect more real-usage scenarios, but unfortunately, there is something wrong in the way the Redux store is currently organized. It seems like there are some hidden circular dependencies that conflict with the initialization of the instances
sub-reducer.
So far, I haven't been able to resolve the issue in general, so I'll keep the tests working, at the cost of being isolated from the rest of the available reducers.
collapsedInfo={<CategoryValueList categoryValueList={indexSummaryInfo} />} | ||
content={<IndexAttributesList data={tableData} />} | ||
// TODO: Add FieldTag component to list the types of the different fields | ||
label={formatLongName(indexName)} |
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.
Currently, the Section
component provided by Redis UI (docs) doesn't support anything other than a string for its label, so we can't make it look like the design.

// TODO: Add FieldTag component to list the types of the different fields | ||
label={formatLongName(indexName)} | ||
defaultOpen={false} | ||
actionButtonText="Delete" // TODO: Replace with an icon of a trash can |
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.
Currently, the Section
component provided by Redis UI (docs) doesn't support icons for the action button, so we go for a text label instead.
Design | Actual |
---|---|
![]() |
![]() |
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 PR introduces the "Manage Indexes" drawer functionality for the Vector Search feature, allowing users to view and manage RediSearch indexes. The implementation includes:
- New UI components to display index information using collapsible sections
- Integration of index deletion functionality with telemetry tracking
- Comprehensive test coverage for the new components
Reviewed Changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
redisinsight/ui/src/telemetry/events.ts | Adds telemetry event for index deletion tracking |
redisinsight/ui/src/slices/browser/redisearch.ts | Implements deleteRedisearchIndexAction with success/error handling |
redisinsight/ui/src/slices/tests/browser/redisearch.spec.ts | Adds comprehensive tests for the delete index functionality |
redisinsight/ui/src/pages/vector-search/manage-indexes/ | Contains new components for displaying and managing indexes list |
redisinsight/ui/src/components/notifications/success-messages.tsx | Adds success message for index deletion |
redisinsight/api/src/modules/browser/redisearch/dto/ | Updates DTOs to support index deletion and adds missing property |
Description
Show details about the available indexes in the Manage Indexes drawer, part of the new Vector Search feature flow.
Section
component from Redis UI to represent the index information (docs)Screen.Recording.2025-07-28.at.13.40.00.mov
How to test it
These are base components that will be included in the new wizard for the Vector Search, but currently, you can find them integrated on a temporary page, for the sake of testing them.
Simply flip this temporary switch in
redisinsight/ui/src/pages/vector-search/VectorSearchPage.tsx
and then click on the "Search" icon in the left side nav to open the page: