Skip to content

Conversation

@santoshp210-akamai
Copy link
Contributor

@santoshp210-akamai santoshp210-akamai commented Nov 13, 2025

Description 📝

Integrating Firewall nodebalancers to ACLP-Alerting

Changes 🔄

List any change(s) relevant to the reviewer.

  • Add EntityTypeSelect shown when Service is Firewall
  • Filter the contents in Entity table and Dimension filter based on the entity type
  • Run NodeBalancer query only when dimensions contain nodebalancer_id
  • Build id to label map and use it in Alert Show Detail
  • Unit tests and mock updates for translation and filtering

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 🗓️

26th Nov

Preview 📷

Before After
image image
Firewall-Entity-Scope.mp4
Firewall-Account-Scope.mp4
Firewall-Edit-Flow.mp4

How to test 🧪

Prerequisites

(How to setup test environment)

Prerequisites

Choose the Mock environment, Legacy MSW Handlers
(How to setup test environment)

Create alert flow

  • In Alerts, click on Create Alert.
  • Choose the Firewall service.
  • Confirm EntityTypeSelect appears and can switch between Linode/NodeBalancer.

Show Details flow

  • Find the Firewall - nodebalancer alert in Alerts list.
  • Open Show-Details: confirm NodeBalancer IDs are shown as labels (not raw IDs).

Edit alert flow

  • Find the Firewall - nodebalancer alert in Alerts list.
  • Open Edit: confirm entity selection and filters persist and work for NodeBalancers.

Reproduction steps

(How to reproduce the issue, if applicable)

  • ...
  • ...

Verification steps

(How to verify changes)

  • EntityType select is visible in Firewall service
  • The Entity/Account shows Firewalls filtered according to the selected entity type.
  • The options in Metric Criteria Data Field are filtered according to the selected entity type.
  • Entity type is not sent or received as part of any API request.
  • The nodebalancer specific dimension filter customizations is working as expected.
  • Entity Type is auto selected in Edit page based on the Metric Data Field name.
  • Changing entity type resets the Metric Criteria
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

@ankita-akamai
Copy link
Contributor

ankita-akamai commented Nov 14, 2025

Track this pr - #13088, update current pr after link pr is merged.

Comment on lines 189 to 213
<CloudPulseServiceSelect isDisabled name="serviceType" />
<CloudPulseServiceSelect isDisabled={true} name="serviceType" />
Copy link
Contributor

Choose a reason for hiding this comment

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

just passing isDisabled doesn't work?

Comment on lines 71 to 73
? alertDetails.rule_criteria.rules[0]?.label.includes('Node Balancer')
? 'nodebalancer'
: 'linode'
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
? alertDetails.rule_criteria.rules[0]?.label.includes('Node Balancer')
? 'nodebalancer'
: 'linode'
? alertDetails.rule_criteria.rules[0]?.label.includes(entityLabelMap['nodebalancer'])
? 'nodebalancer'
: 'linode'

lets use the constant

// Filter firewall metrics based on entity type
if (serviceType === 'firewall' && entityType) {
const entityLabel = entityLabelMap[entityType];
filteredData = data.filter((metric) =>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
filteredData = data.filter((metric) =>
filteredData = data.filter(({label}) =>

Copy link
Contributor

@venkymano-akamai venkymano-akamai left a comment

Choose a reason for hiding this comment

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

Approving, pending some comments

Copy link
Contributor

@dwiley-akamai dwiley-akamai left a comment

Choose a reason for hiding this comment

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

Verification steps ✅
Code review ✅

Approved pending resolution of previous comments & the merge conflict

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Nov 19, 2025
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 1 failing test on test run #9 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
1 Failing861 Passing11 Skipped38m 42s

Details

Failing Tests
SpecTest
clone-linode.spec.tsCloud Manager Cypress Tests→clone linode » can clone a Linode from Linode details page

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/linodes/clone-linode.spec.ts"

@ankita-akamai
Copy link
Contributor

Merging as there are enough approvals and failures are unrelated.

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

Projects

Status: Merged

Development

Successfully merging this pull request may close these issues.

5 participants