Skip to content

[UI] Add permission keys to Telemetry sidebar icons and connection buttons - #21008

Merged
banana-three-join merged 1 commit into
meshery:masterfrom
rishiraj38:fix/telemetry-permission-keys
Jul 29, 2026
Merged

banana-three-join merged 1 commit into
meshery:masterfrom
rishiraj38:fix/telemetry-permission-keys

Conversation

@rishiraj38

@rishiraj38 rishiraj38 commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds missing permissionKey props to the Telemetry section so the permission shield renders consistently with every other sidebar item.

Changes

  • Sidebar icons: Added Keys.MesherySystemViewMetrics to the Charts (Grafana) and Metrics (Prometheus) children in navigatorComponents.tsx — these were the only sidebar items missing a permissionKey.
  • "Add a Grafana connection" button (telemetry/dashboards/index.tsx): Added Keys.MesherySystemConnectMetrics.
  • "Add a Prometheus connection" button (telemetry/metrics/index.tsx): Added Keys.MesherySystemConnectMetrics.
  • Tests: Added 2 test cases in navigatorComponents.test.tsx verifying the new permission keys on both telemetry children.

Key mapping rationale

Element Key Why
Sidebar icons (view pages) MesherySystemViewMetrics "View already configured metrics", read-only navigation
Add connection buttons (mutating action) MesherySystemConnectMetrics "Configure and connect to metrics like Grafana and Prometheus"

Fixes #21006

Signed commits

  • Yes, I signed my commits.

Summary by CodeRabbit

  • New Features

    • Added permission controls for Telemetry navigation entries, including Charts and Metrics.
    • Added permission checks when creating Grafana or Prometheus connections from empty-state screens.
  • Tests

    • Added coverage verifying the correct permissions are assigned to Telemetry navigation items.

@github-actions github-actions Bot added the component/ui User Interface label Jul 29, 2026
@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c5184446-e9fc-4ff7-a548-df47cecd4635

📥 Commits

Reviewing files that changed from the base of the PR and between 4628d8e and ac9a1e5.

📒 Files selected for processing (4)
  • ui/components/layout/Navigator/navigatorComponents.test.tsx
  • ui/components/layout/Navigator/navigatorComponents.tsx
  • ui/components/telemetry/dashboards/index.tsx
  • ui/components/telemetry/metrics/index.tsx

📝 Walkthrough

Walkthrough

Telemetry navigation entries and empty-state connection actions now include permission keys. Tests verify the Metrics view permission for Charts and Metrics navigator entries.

Changes

Telemetry permission controls

Layer / File(s) Summary
Telemetry navigation permissions
ui/components/layout/Navigator/navigatorComponents.tsx, ui/components/layout/Navigator/navigatorComponents.test.tsx
Charts and Metrics entries use Keys.MesherySystemViewMetrics, with tests covering both provider configurations.
Connection action permissions
ui/components/telemetry/dashboards/index.tsx, ui/components/telemetry/metrics/index.tsx
Grafana and Prometheus empty-state connection actions pass Keys.MesherySystemConnectMetrics to openCreateConnection.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: aabidsofi19, leecalcote

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main UI change: adding permission keys to Telemetry sidebar items and connection buttons.
Linked Issues check ✅ Passed The PR covers the linked issue by adding permission metadata for Charts, Metrics, and the Grafana/Prometheus connection CTAs.
Out of Scope Changes check ✅ Passed The changes stay within Telemetry permission metadata and related tests, with no unrelated scope added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Commit SHA: ac9a1e500cec5151ecbc688c34dd08a5ef787e81

END-TO-END TESTS

  • Testing started at: July 29th 2026, 8:05:13 pm

📦 Test Result Summary

  • ✅ 63 passed
  • ❌ 0 failed
  • ⚠️ 0 flaked
  • ⏩ 7 skipped

⌛ Duration: 4 minutes and 3 seconds

Overall Result: 👍 All tests passed.

[Show/Hide] Test Result Details
Test Provider Browser Test Case Tags Result
1 Local chromium-local-provider Aggregation Charts are displayed ✅
2 Local chromium-local-provider alias resolution relationship ✅
3 Local chromium-local-provider alias resolution relationship ✅
4 Local chromium-local-provider alias resolution relationship ✅
5 Local chromium-local-provider alias resolution relationship ✅
6 Local chromium-local-provider alias resolution relationship ✅
7 Local chromium-local-provider alias resolution relationship ✅
8 Local chromium-local-provider alias resolution relationship ✅
9 Local chromium-local-provider alias resolution relationship ✅
10 Local chromium-local-provider alias resolution relationship ✅
11 Local chromium-local-provider Charts (Grafana) page loads ✅
12 Local chromium-local-provider config patching correctness relationship ✅
13 Local chromium-local-provider config patching correctness relationship ✅
14 Local chromium-local-provider config patching correctness relationship ✅
15 Local chromium-local-provider config patching correctness relationship ✅
16 Local chromium-local-provider config patching correctness relationship ✅
17 Local chromium-local-provider config patching correctness relationship ✅
18 Local chromium-local-provider config patching correctness relationship ✅
19 Local chromium-local-provider config patching correctness relationship ✅
20 Local chromium-local-provider config patching correctness relationship ✅
21 Local chromium-local-provider Configure Existing Istio adapter through Mesh Adapter URL from Management page unstable ⚠️
22 Local chromium-local-provider Connect to Meshery Istio Adapter and configure it ➖
23 Local chromium-local-provider Create a Model ✅
24 Local chromium-local-provider Delete Kubernetes cluster connections ➖
25 Local chromium-local-provider evaluation idempotency relationship ✅
26 Local chromium-local-provider evaluation idempotency relationship ✅
27 Local chromium-local-provider evaluation idempotency relationship ✅
28 Local chromium-local-provider evaluation idempotency relationship ✅
29 Local chromium-local-provider evaluation idempotency relationship ✅
30 Local chromium-local-provider evaluation idempotency relationship ✅
31 Local chromium-local-provider evaluation idempotency relationship ✅
32 Local chromium-local-provider evaluation idempotency relationship ✅
33 Local chromium-local-provider evaluation idempotency relationship ✅
34 Local chromium-local-provider Import a Model via CSV Import ✅
35 Local chromium-local-provider Import a Model via File Import ✅
36 Local chromium-local-provider Import a Model via Url Import ✅
37 Local chromium-local-provider Logout from current user session ✅
38 Local chromium-local-provider Metrics (Prometheus) page loads ✅
39 Local chromium-local-provider Performance dashboard controls ✅
40 Local chromium-local-provider Ping Istio Adapter unstable ⚠️
41 Local chromium-local-provider Search a Model and Export it ✅
42 Local chromium-local-provider should edit design in Design Configurator ✅
43 Local chromium-local-provider should identify relationships for All Relationships relationship ✅
44 Local chromium-local-provider should identify relationships for Container-Hierarchical-Parent-Alias-Relationship relationship ✅
45 Local chromium-local-provider should identify relationships for deployment-configmap-reference-relationship relationship ✅
46 Local chromium-local-provider should identify relationships for Hierarchical-Parent-Namespace-Relationship relationship ✅
47 Local chromium-local-provider should identify relationships for meshery-design relationship ✅
48 Local chromium-local-provider should identify relationships for pv-pvc-edge-non-binding-reference-relationship relationship ✅
49 Local chromium-local-provider should identify relationships for Service-To-Deployment-Network relationship ✅
50 Local chromium-local-provider should verify Design Configurator page elements ✅
51 Local chromium-local-provider structural integrity relationship ✅
52 Local chromium-local-provider structural integrity relationship ✅
53 Local chromium-local-provider structural integrity relationship ✅
54 Local chromium-local-provider structural integrity relationship ✅
55 Local chromium-local-provider structural integrity relationship ✅
56 Local chromium-local-provider structural integrity relationship ✅
57 Local chromium-local-provider structural integrity relationship ✅
58 Local chromium-local-provider structural integrity relationship ✅
59 Local chromium-local-provider structural integrity relationship ✅
60 Local chromium-local-provider Test if Left Navigation Panel is displayed ✅
61 Local chromium-local-provider Test if Notification button is displayed ✅
62 Local chromium-local-provider Test if Profile button is displayed ✅
63 Local chromium-local-provider Toggle "Send Anonymous Performance Results" ✅
64 Local chromium-local-provider Toggle "Send Anonymous Usage Statistics" ✅
65 Local chromium-local-provider Verify extension nav items use top-level layout ➖
66 Local chromium-local-provider Verify Meshery Adapter for Istio Section ✅
67 Local chromium-local-provider Verify Meshery Catalog Section Details ➖
68 Local chromium-local-provider Verify Meshery Design Embed Details ➖
69 Local chromium-local-provider Verify Meshery Docker Extension Details ➖
70 Local chromium-local-provider Verify Performance Analysis Details ➖
71 Local chromium-local-provider Verify that UI components are displayed ✅
72 Local local-setup authenticate as Local provider ✅

🔗 Relationship Tests

[Show/Hide] Relationship Test Details (18 tests)
Kind Type SubType From To Model Design Name Status
edge binding permission ClusterRole ServiceAccount kubernetes Understanding Relationships ❌
edge binding permission Role ServiceAccount kubernetes Understanding Relationships ❌
edge non-binding network Service Deployment kubernetes service-to-deployment-network ✅
edge non-binding network Service Deployment kubernetes meshery-design-fixture.json ✅
edge non-binding reference ClusterRoleBinding ClusterRole kubernetes meshery-design-fixture.json ❌
hierarchical parent alias Container Deployment kubernetes container-hierarchical-parent-alias-relationship ✅
hierarchical parent alias Container Deployment kubernetes deployment-configmap-reference-relationship ✅
hierarchical parent alias Container Deployment kubernetes service-to-deployment-network ✅
hierarchical parent alias Container Deployment kubernetes meshery-design-fixture.json ✅
hierarchical parent alias Container Deployment kubernetes Understanding Relationships ✅
hierarchical parent alias Container Pod kubernetes container-hierarchical-parent-alias-relationship ✅
hierarchical parent inventory * Namespace kubernetes hierarchical-parent-namespace-relationship ✅
hierarchical parent inventory * Namespace kubernetes service-to-deployment-network ✅
hierarchical parent inventory * Namespace kubernetes pv-pvc-edge-non-binding-reference-relationship ✅
hierarchical parent inventory * Namespace kubernetes Understanding Relationships ✅
hierarchical sibling matchlabels ClusterRole ClusterRole kubernetes meshery-design-fixture.json ✅
hierarchical sibling matchlabels Deployment Deployment kubernetes meshery-design-fixture.json ✅
hierarchical sibling matchlabels Service Service kubernetes meshery-design-fixture.json ✅

@banana-three-join
banana-three-join merged commit e94c72b into meshery:master Jul 29, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/ui User Interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI] Add permission shields to Telemetry navigation and empty-state actions

2 participants