Skip to content

feat: introduce new engine - #2997

Draft
rmnbrd wants to merge 21 commits into
stagingfrom
feat/cluster-engine-v2
Draft

rmnbrd wants to merge 21 commits into
stagingfrom
feat/cluster-engine-v2

Conversation

@rmnbrd

@rmnbrd rmnbrd commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Issue:

Screenshots / Recordings

Testing

  • Changes tested locally in the relevant Console's pages and Storybooks
  • yarn test or yarn test -u (if you need to regenerate snapshots)
  • yarn format
  • yarn lint

PR Checklist

  • I followed naming, styling, and TypeScript rules (see .cursor/rules)
  • I performed a self-review (diff inspected, dead code removed)
  • I titled the PR using Conventional Commits with a scope when possible (e.g. feat(service): add new Terraform service) - required for semantic-release
  • I only kept necessary comments, written in English (watch for useless AI comments)
  • I involved a designer to validate UI changes if I am not a designer
  • I covered new business logic with tests (unit)
  • I confirmed CI is green (Codecov red can be accepted)
  • I reviewed and executed locally any AI-assisted code

Summary by cubic

Adds a Profile page to cluster navigation so Engine v2 clusters can configure their platform components (layers), including nested array fields and saving or deploying changes.

  • Gated behind the engine-v2-platform-configuration feature flag; when disabled, the tab is hidden and the route redirects to the cluster overview.
  • Resolves component configuration previews from the API and renders fields dynamically, including validation, required cluster inputs, and violations.
  • Adds a searchable layer sidebar with status indicators and a positive empty state for components that need no configuration; search persists in the URL, filters matching layers, components, and fields, and highlights matches.
  • Centralizes profile state, change tracking, and save/reset/deploy logic in a shared context provider.
  • Arranges profile inputs in compact rows with truncated descriptions surfaced in tooltips, and contains the page layout to its container.
  • Shows a changes bar with Reset, Save, and Save & Deploy actions wired to the platform binding update API.
  • Disables the log infrastructure toggle, which is not wired up yet.
  • Logs profile schema responses in development, and keeps the last resolved fields visible when background refreshes fail.
  • Matches the profile tab icon to the sidebar component icon, and removes the page heading so the profile layout matches the sidebar.
  • Adds and edits array items through validated modals, showing nested field violations and enforcing array limits.

Written for commit cc2b245. Summary will update on new commits.

Review in cubic

@rmnbrd rmnbrd self-assigned this Sep 22, 2026
@nx-cloud

nx-cloud Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

🤖 Nx Cloud AI Fix Eligible

An automatically generated fix could have helped fix failing tasks for this run, but Self-healing CI is disabled for this workspace. Visit workspace settings to enable it and get automatic fixes in future runs.

To disable these notifications, a workspace admin can disable them in workspace settings.


View your CI Pipeline Execution ↗ for commit cc2b245

Command Status Duration Result
nx affected --target=test --parallel=3 --config... ❌ Failed 4m 31s View ↗
nx affected --target=lint --parallel=3 ✅ Succeeded 2m 39s View ↗
nx-cloud record -- yarn nx format:check ✅ Succeeded 7s View ↗

💡 Dealing with memory or CPU issues? See memory and CPU details with the resource usage add-on ↗.


☁️ Nx Cloud last updated this comment at 2026-09-25 09:24:36 UTC

- Remove unused cluster actions
- Disable the log infrastructure toggle and update its test
@codecov

codecov Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 59.35673% with 139 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.74%. Comparing base (4ff8108) to head (491632f).
⚠️ Report is 5 commits behind head on staging.

Files with missing lines Patch % Lines
...eature/src/lib/cluster-profile/cluster-profile.tsx 68.33% 10 Missing and 28 partials ⚠️
...form-configuration/platform-configuration-utils.ts 46.42% 25 Missing and 5 partials ⚠️
...b/platform-configuration/platform-configuration.ts 0.00% 17 Missing ⚠️
.../catalog-variable-input/catalog-variable-input.tsx 31.81% 6 Missing and 9 partials ⚠️
...rc/lib/cluster-profile/cluster-profile-sidebar.tsx 72.09% 7 Missing and 5 partials ⚠️
...lusters/data-access/src/lib/http/is-http-status.ts 0.00% 5 Missing ⚠️
...ion/hooks/use-platform-component-configurations.ts 0.00% 5 Missing ⚠️
...s/use-platform-templates/use-platform-templates.ts 0.00% 4 Missing ⚠️
...atform-configuration/hooks/use-platform-binding.ts 0.00% 4 Missing ⚠️
...tion/hooks/use-platform-component-configuration.ts 0.00% 4 Missing ⚠️
... and 3 more
Additional details and impacted files
@@             Coverage Diff             @@
##           staging    #2997      +/-   ##
===========================================
- Coverage    51.87%   50.74%   -1.13%     
===========================================
  Files          896     1364     +468     
  Lines        22406    29827    +7421     
  Branches      6901     8855    +1954     
===========================================
+ Hits         11622    15135    +3513     
- Misses        8834    12193    +3359     
- Partials      1950     2499     +549     
Flag Coverage Δ
unittests 50.74% <59.35%> (-1.13%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

- Resolve cluster bindings and component configuration previews
- Render API-defined fields and validation states in cluster profiles
- Add searchable, selectable layer and component navigation with status indicators
- Reuse the shared search input and expose its accessible label
- Add row layouts with truncated descriptions and tooltips
- Align profile controls and errors consistently
- Add a positive variant to the shared EmptyState component
- Use it when a cluster profile component needs no configuration
- Show configuration skeletons only until displayed components resolve
- Keep the last resolved fields visible when background refreshes fail
- Reuse the sidebar component icon in profile tabs
- Assert matching icons for Loki and Alloy
- Add bottom spacing to the profile configuration panel
- Add and edit array items through validated modals
- Show nested field violations and enforce array limits
- Persist profile search in the URL and filter matching layers, components, and fields
- Highlight search matches in configuration labels and descriptions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant