Skip to content

upcoming: [DI-28222] - Scaffolding setup for widget level dimension filters and group by issue fix#13088

Merged
venkymano-akamai merged 9 commits intolinode:developfrom
venkymano-akamai:widget_dimension_filters_skeletal_setup
Nov 19, 2025
Merged

upcoming: [DI-28222] - Scaffolding setup for widget level dimension filters and group by issue fix#13088
venkymano-akamai merged 9 commits intolinode:developfrom
venkymano-akamai:widget_dimension_filters_skeletal_setup

Conversation

@venkymano-akamai
Copy link
Contributor

Description 📝

Add widget dimension filters skeleton setup and fix for the group by for firewall dashboards for linode and nodebalancer.

Changes 🔄

List any change(s) relevant to the reviewer.

  1. Fix groupby issue in global group by due to firewall metric definition having unique metrics for linode and nodebalancer.
  2. Add a skeletal setup for widget dimension filters with icon and drawer and renderer.

Scope 🚢

Upon production release, changes in this PR will be visible to:

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

18-11-2025 in develop

Preview 📷

Before After
Screenshot 2025-11-10 at 4 39 42 PM Screenshot 2025-11-10 at 4 39 53 PM
Screenshot 2025-11-10 at 4 41 55 PM Screenshot 2025-11-10 at 4 41 55 PM
-------
Drawer
-------
Screenshot 2025-11-10 at 4 41 45 PM

How to test 🧪

  1. Login and go to Monitor -> Metrics and switch to mock
  2. In the devtools, feature flag section, inside cloudpulse enable showWidgetDimensionFilters.
  3. To test the group by fix, please see the group by options for both firewall for linode dashboards and firewall for nodebalancer dashboard, you should see different options now.
  4. After selecting all required filters, in. the widgets you will be able to see the filter icon, upon clicking you will be able to see the skeletal drawer structure
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

export type TransformFunctionMap = Record<TransformKey, TransformFunction>;

export type AssociatedEntityType = 'both' | 'linode' | 'nodebalancer';
export type AssociatedEntityType = 'linode' | 'nodebalancer';
Copy link
Contributor Author

Choose a reason for hiding this comment

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

both is not needed, as there is no usecase for it

Copy link
Contributor

@ankita-akamai ankita-akamai left a comment

Choose a reason for hiding this comment

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

LGTM!

Comment on lines +183 to +189
const associatedEntityType = getAssociatedEntityType(dashboard.id);
return metricDefinition
.filter(({ label }) =>
associatedEntityType
? label.includes(ASSOCIATED_ENTITY_METRIC_MAP[associatedEntityType])
: true
)
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you put a small info comment in the code here?

@venkymano-akamai venkymano-akamai changed the title upcoming: [DI-28222] - Skeletal setup for widget level dimension filters and group by issue fix upcoming: [DI-28222] - Scaffolding setup for widget level dimension filters and group by issue fix Nov 17, 2025
@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Nov 18, 2025
@venkymano-akamai
Copy link
Contributor Author

venkymano-akamai commented Nov 18, 2025

@bnussman-akamai / @dwiley-akamai

This PR now has the necessary approvals from the CloudPulse team.
Please see if you require a final review of this change.

If yes, please take a look when you have a moment.
If no, please feel free to merge.

Thanks!

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 25 failing tests on test run #8 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
25 Failing837 Passing11 Skipped81m 45s

Details

Failing Tests
SpecTest
user-permissions.spec.tsCloud Manager Cypress Tests→User permission management » can toggle full account access
user-permissions.spec.tsCloud Manager Cypress Tests→User permission management » can update global and specific permissions
user-permissions.spec.tsCloud Manager Cypress Tests→User permission management » can reset user permissions changes
user-profile.spec.tsCloud Manager Cypress Tests→User Profile » can change email and username of the active account
vm-host-maintenance-linode.spec.tsCloud Manager Cypress Tests→Host & VM maintenance notification banner » maintenance notification banner does not display platform maintenance messages
delete-volume.spec.tsCloud Manager Cypress Tests→volume delete flow » deletes a volume
attach-volume.spec.tsCloud Manager Cypress Tests→volume attach and detach flows » attaches a volume to a Linode
restricted-user-billing.spec.tsCloud Manager Cypress Tests→restricted user billing flows » cannot edit billing information as child account
restricted-user-billing.spec.tsCloud Manager Cypress Tests→restricted user billing flows » can edit billing information as a regular user and as a parent user
enable-object-storage.spec.tsCloud Manager Cypress Tests→Object Storage enrollment » can cancel Object Storage
account-login-history.spec.tsCloud Manager Cypress Tests→Account login history » users can view the login history table
display-settings.spec.tsCloud Manager Cypress Tests→Display Settings » can change username via profile display page
account-linode-managed.spec.tsCloud Manager Cypress Tests→Account Linode Managed » users can enable Linode Managed
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » rebuilds a linode from Image
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » rebuilds a linode from Community StackScript
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » rebuilds a linode from Account StackScript
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » cannot rebuild a provisioning linode
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » can rebuild a Linode reusing existing user data
rebuild-linode.spec.tsCloud Manager Cypress Tests→rebuild linode » can rebuild a linode with the GECKO is enabled
account-cancellation.spec.tsCloud Manager Cypress Tests→Account cancellation » users can cancel account
account-cancellation.spec.tsCloud Manager Cypress Tests→Parent/Child account cancellation » allows a default account with no active child accounts to close the account
users-landing-page.spec.tsCloud Manager Cypress Tests→Users landing page » can add users with full access
users-landing-page.spec.tsCloud Manager Cypress Tests→Users landing page » can add users with restricted access
users-landing-page.spec.tsCloud Manager Cypress Tests→Users landing page » can delete users
smoke-billing-activity.spec.tsCloud Manager Cypress Tests→Billing Activity Feed » displays correct timezone for invoice and payment dates

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/account/user-permissions.spec.ts,cypress/e2e/core/account/user-profile.spec.ts,cypress/e2e/core/linodes/vm-host-maintenance-linode.spec.ts,cypress/e2e/core/volumes/delete-volume.spec.ts,cypress/e2e/core/volumes/attach-volume.spec.ts,cypress/e2e/core/billing/restricted-user-billing.spec.ts,cypress/e2e/core/objectStorage/enable-object-storage.spec.ts,cypress/e2e/core/account/account-login-history.spec.ts,cypress/e2e/core/account/display-settings.spec.ts,cypress/e2e/core/account/account-linode-managed.spec.ts,cypress/e2e/core/linodes/rebuild-linode.spec.ts,cypress/e2e/core/account/account-cancellation.spec.ts,cypress/e2e/core/account/users-landing-page.spec.ts,cypress/e2e/core/billing/smoke-billing-activity.spec.ts"

@venkymano-akamai
Copy link
Contributor Author

Hi Team,

Ran the failed tests in local, apart from one spec (rebuild-linode.spec.ts), everything passes, attaching the screenshot of it. Also rebuild-linode.spec.ts is not related to this PR

Screenshot 2025-11-19 at 2 58 41 PM

@venkymano-akamai
Copy link
Contributor Author

Also, merging this since it has enough approvals, it also has a follow up PR. @bnussman-akamai / @dwiley-akamai , please continue to review and if there are any comments , it will be done in the follow up PR

@venkymano-akamai venkymano-akamai merged commit b2a852e into linode:develop Nov 19, 2025
34 of 35 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Merged in Cloud Manager Nov 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants