Skip to content

feat: add controller info API and show it in Version Details - #3555

Draft
suryapratap-01 wants to merge 10 commits into
mainfrom
feat/controller-info-api
Draft

feat: add controller info API and show it in Version Details#3555
suryapratap-01 wants to merge 10 commits into
mainfrom
feat/controller-info-api

Conversation

@suryapratap-01

@suryapratap-01 suryapratap-01 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it

Show numaflow-controller version and scope in the UI Version Details sidebar (separate from UX server /sysinfo).

  • Add GET /api/v1/namespaces/:namespace/controller-info
  • Display controller details in Version Details; fall back to managed namespace when not found
  • Improve Version Details styling (including dark mode) and fix sidebar scroll clipping

Related issues

Fixes #

Testing

  • make test
  • yarn --cwd ui test --watchAll=false -t "VersionDetails|controllerInfo"
  • Manual: open Version Details and confirm controller version/image/scope

Special notes for reviewers

  • The /sysinfo endpoint remains unchanged this is a new route
  • Missing controller returns found:false (HTTP 200) so the UI can retry another namespace
Screenshot 2026-07-22 at 7 15 53 PM

Branch-Creation-Time: 2026-07-22T04:29:30+0000

Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
… support.

Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
…prove test coverage

Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
@vigith

vigith commented Jul 22, 2026

Copy link
Copy Markdown
Member

can you rename server to UI Server and is it possible to add Rust based data plane details too?

Signed-off-by: Surya Singh <suryapratap.personal@gmail.com>
@suryapratap-01

Copy link
Copy Markdown
Contributor Author

Hey @vigith, I’ve updated server to UI Server.

I’d like to confirm the second part for the Rust data plane section. Should I display the NUMA container image/tag from the pods, following the same pattern as controller-info, or expose the full binary build information—such as Version, GitCommit, and RustVersion—through a new data plane /version endpoint or a build_info metric?

If the full build information is required, I’ll include it in a second PR.

@vigith

vigith commented Jul 22, 2026

Copy link
Copy Markdown
Member

@suryapratap-01 don't worry if it is too complex? 😄

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 77.70270% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.52%. Comparing base (0069107) to head (7fe255e).

Files with missing lines Patch % Lines
server/apis/v1/response_controller_info.go 81.65% 13 Missing and 7 partials ⚠️
server/apis/v1/controller_info.go 67.56% 8 Missing and 4 partials ⚠️
server/routes/routes.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             main    #3555    +/-   ##
========================================
  Coverage   83.51%   83.52%            
========================================
  Files         311      313     +2     
  Lines       83097    83245   +148     
========================================
+ Hits        69402    69529   +127     
- Misses      13102    13112    +10     
- Partials      593      604    +11     

☔ 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.

Signed-off-by: adarsh0728 <gooneriitk@gmail.com>
Signed-off-by: adarsh0728 <gooneriitk@gmail.com>
@adarsh0728

Copy link
Copy Markdown
Member

@suryapratap-01 added a commit/fix, please check and verify if its working fine.

@suryapratap-01

suryapratap-01 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

@suryapratap-01 added a commit/fix, please check and verify if its working fine.

Yes it is
image

@adarsh0728

Copy link
Copy Markdown
Member

@suryapratap-01 added a commit/fix, please check and verify if its working fine.

Yes it is

image

Lets test it internally in one of our clusters with different ui server versions

@suryapratap-01

Copy link
Copy Markdown
Contributor Author

@adarsh0728 Tested internally by swapping only the UI server image (controller left unchanged).

Controller details are read from the numaflow-controller Deployment via the new UX-server API — not from controller code — so comparing UI server versions is enough.

New (feat-controller-info-api-7fe255e): UI Server + Controller section shown
Old (main-0069107): server only, no Controller section

Also verified failure handling: if controller-info can’t be fetched, the Controller section shows Unable to load controller details: … and the rest of the UI still works.

Screenshot 2026-07-26 at 1 17 17 PM Screenshot 2026-07-26 at 12 35 07 PM

@yhl25 yhl25 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from version, scope and data plane mode(rust or golang), I don't see much value in showing other fields.

@adarsh0728

adarsh0728 commented Aug 10, 2026

Copy link
Copy Markdown
Member

Remove unnecessary fields from server version details, think on the sidebar trigger - at cluster level if user has already checked the server version, its not intuitive that he will check it again. There should be some distinct icon to show controller version.

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.

4 participants