Wire @rdi-ui/pipeline into the standalone v2 pipeline management page - #6506
ArtemHoruzhenko wants to merge 3 commits into
Conversation
Renders the shared @rdi-ui/pipeline PipelineManagement component inside the standalone pipeline-management-v2 page, pointed at the RDI proxy endpoint (rdi/:id/proxy) added earlier. - RdiPipeline wraps the package in its own styled-components ThemeProvider, overriding just this subtree's theme shape (via an aliased @redis-ui/styles 21 install) since the bundled components read a styles-21 theme shape RedisInsight's own styles-15 theme doesn't have yet. - useRdiPipelineNavigation adapts react-router's history to the package's NavigationService contract. - targetDatabase/sourceSecrets/multiSource/pipelineSecrets/ configTranslate are wired to the minimum viable config for now; config-translation and secret-mounting are stubbed pending their own follow-up work. - Adds a TS 4.9 parse-failure workaround (zod-v4-stub.d.ts + tsconfig.json paths remap) for zod's TS5-only syntax, reached transitively via @rdi-ui/sdk - see the stub file for the full explanation. tsc-only; doesn't affect Vite or Jest. - Mocks @rdi-ui/pipeline wholesale for Jest (its UMD bundle doesn't interop with styled-components under Jest) and adds min-release-age-exclude for @rdi-ui/*, our own org's scope, so we can pick up fixes immediately instead of waiting out the supply- chain cooldown that applies to everyone else. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c6c453b12d
ℹ️ 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".
Code Coverage - Backend unit tests
Test suite run success3924 tests passing in 331 suites. Report generated by 🧪jest coverage report action from 7c10652 |
Code Coverage - Integration Tests
|
Code Coverage - Frontend unit tests
Test suite run success8130 tests passing in 876 suites. Report generated by 🧪jest coverage report action from 7c10652 |
- Drop `exact: true` from the pipeline-management-v2 route: the package navigates to real sub-paths under `basePath` for its multi-step wizard, and exact matching unmounted the whole page the moment it did, falling through to the v1 instance route below it in the Switch. Safe to drop since this route is still declared before that non-exact v1 route. - Attach `x-window-id` on the rdiClient config: Electron's WindowAuthMiddleware guards every API route unconditionally (including this proxy) on that header, but this client bypasses apiService's own interceptor that normally attaches it. - Stop rebuilding the whole navigation service object on every navigation: getPath() now reads from a ref kept fresh every render, so it can't go stale if the package captures the object once instead of re-reading the prop each render - and the object's identity no longer changes on route changes either, which could otherwise retrigger the package's own mount-effects. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d704682ff
ℹ️ 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 high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5d70468. Configure here.
rdiClient and its siblings (targetDatabase, sourceSecrets, multiSource, pipelineSecrets, configTranslate) were inline object/function literals, so every render created new identities for all of them - and this component re-renders on every wizard-step navigation, since useRdiPipelineNavigation subscribes to location. Same mount-effect-retriggering risk already fixed for the navigation object itself, left unaddressed on these. rdiClient depends on rdiInstanceId, so it's memoized; the rest have no dependencies at all, so they're hoisted to module-level constants for a permanently stable reference instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Summary
Renders the shared
@rdi-ui/pipelinePipelineManagementcomponent inside the standalonepipeline-management-v2page (from #6502), pointed at the RDI proxy endpoint (rdi/:id/proxy, from #6504).RdiPipelinewraps the package in its own styled-componentsThemeProvider, overriding just this subtree's theme shape (via an aliased@redis-ui/styles21 install) since the bundled components read a styles-21 theme shape RedisInsight's own styles-15 theme doesn't have yet.useRdiPipelineNavigationadapts react-router'shistoryto the package'sNavigationServicecontract.targetDatabase/sourceSecrets/multiSource/pipelineSecrets/configTranslateare wired to the minimum viable config for now; config-translation and secret-mounting are stubbed pending their own follow-up work.zod-v4-stub.d.ts+tsconfig.jsonpathsremap) for zod's TS5-only syntax, reached transitively via@rdi-ui/sdk- see the stub file for the full explanation.tsc-only; doesn't affect Vite or Jest.@rdi-ui/pipelinewholesale for Jest (its UMD bundle doesn't interop with styled-components under Jest) and addsmin-release-age-excludefor@rdi-ui/*(our own org's scope) to.npmrc, so we can pick up fixes immediately instead of waiting out the supply-chain cooldown that applies to third-party packages.@rdi-ui/pipelineto the latest available release (0.1.28).Test plan
npx jestonpages/rdi,components/main-router- 61/61 suites passingeslint --fixon all touched files - 0 errorstsc --noEmit- no new errors introduced (zod workaround verified to produce 0 zod-related errors)🤖 Generated with Claude Code
Note
Medium Risk
Introduces a large new UI dependency subtree and dual theme stacks for RDI only; several integration surfaces (secrets, config translate, proxy client) are stubbed and may behave incorrectly until follow-ups land.
Overview
Replaces the pipeline-management-v2 “coming soon” placeholder with the shared
@rdi-ui/pipelinePipelineManagementUI, wired to the per-instance RDI proxy (rdi/:id/proxy) and nested wizard routes.RdiPipelinehosts the package under a styles-21ThemeProvider(@redis-ui/styles-rdi) so bundled redis-ui components match the theme shape RedisInsight’s main styles-15 theme does not provide yet. It passes a memoizedrdiClient(including ElectronWindowIdwhen needed, withoutwithCredentials), stable stub props for secrets/config translation, anduseRdiPipelineNavigationto implement the package’sNavigationServiceon react-router v5. The v2 route dropsexact: trueso subpaths like/creatework.Tooling/deps: adds
@rdi-ui/pipelineand peer-related packages (@tanstack/react-query,react-hook-form,yup), Jest mapping + global mock for@rdi-ui/pipeline,.npmrcmin-release-age-excludefor@rdi-ui/*, and a zod v4 TS 4.9 declaration stub +tsconfigpath aliases sotsccan type-check without parsing zod’s TS5-only syntax from@rdi-ui/sdk.Reviewed by Cursor Bugbot for commit 7c10652. Bugbot is set up for automated code reviews on this repo. Configure here.