Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Security Solution] Add case bulk alerts action appears multiple time in the menu #181972

Open
e40pud opened this issue Apr 29, 2024 · 3 comments
Assignees
Labels
bug Fixes for quality problems that affect the customer experience fixed Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Threat Hunting:Investigations Security Solution Investigations Team Team:Threat Hunting Security Solution Threat Hunting Team

Comments

@e40pud
Copy link
Contributor

e40pud commented Apr 29, 2024

Describe the bug:

"Add to new case" and "Add to existing case" menu items appear multiple times after opening/closing alerts bulk menu.

Steps to reproduce:

  1. Open alerts page
  2. Select all alerts via "all alerts" checkbox
  3. Open bulk menu
  4. Select all N alerts via button next to the bulk actions buttons
  5. Open bulk menu
  6. Clear selection
  7. Repeat steps 2-6 multiple time

Current behavior:

You can see that menu grows and there are multiple duplicates of "Add to new case" and "Add to existing case" menu items.

Expected behavior:

There should not be duplicates of "Add to new case" and "Add to existing case" menu items.

Screenshots (if relevant):

Screen.Recording.2024-04-29.at.13.52.34.mov
@e40pud e40pud added bug Fixes for quality problems that affect the customer experience triage_needed Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. labels Apr 29, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-solution (Team: SecuritySolution)

kqualters-elastic added a commit that referenced this issue Apr 30, 2024
…g added by bulk actions select all (#182007)

## Summary

Related issue: #181972

When the useBulkActions hook in the alerts table is used with the
optionally defined at registration time hook useBulkActionsConfig, and
that hook returns a stable array, the hook calls a function that mutates
this array directly, which causes duplicate items to appear in the alert
context menu. This is due to the useBulkActions hook using the bulk
actions state via context, and so runs every time a user selects a
row/all rows. Doing this via filter might not be the most performant
way, but in order to have everything referentially stable, I think the
arguments to useBulkActions/useBulkUntrackActions should be changed a
bit, but that can be a discussion for another time. The test case added
below will currently fail on main/8.14.

Before:

![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)


After:

![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)


### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Apr 30, 2024
…g added by bulk actions select all (elastic#182007)

## Summary

Related issue: elastic#181972

When the useBulkActions hook in the alerts table is used with the
optionally defined at registration time hook useBulkActionsConfig, and
that hook returns a stable array, the hook calls a function that mutates
this array directly, which causes duplicate items to appear in the alert
context menu. This is due to the useBulkActions hook using the bulk
actions state via context, and so runs every time a user selects a
row/all rows. Doing this via filter might not be the most performant
way, but in order to have everything referentially stable, I think the
arguments to useBulkActions/useBulkUntrackActions should be changed a
bit, but that can be a discussion for another time. The test case added
below will currently fail on main/8.14.

Before:

![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)

After:

![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

(cherry picked from commit 8a1d295)
kibanamachine added a commit that referenced this issue Apr 30, 2024
…ms being added by bulk actions select all (#182007) (#182109)

# Backport

This will backport the following commits from `main` to `8.14`:
- [[Security Solution] [Alerts Table] [RAC] Prevent duplicate items
being added by bulk actions select all
(#182007)](#182007)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Kevin
Qualters","email":"56408403+kqualters-elastic@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-04-30T12:11:43Z","message":"[Security
Solution] [Alerts Table] [RAC] Prevent duplicate items being added by
bulk actions select all (#182007)\n\n## Summary\r\n\r\nRelated issue:
#181972\r\n\r\nWhen the useBulkActions hook in the alerts table is used
with the\r\noptionally defined at registration time hook
useBulkActionsConfig, and\r\nthat hook returns a stable array, the hook
calls a function that mutates\r\nthis array directly, which causes
duplicate items to appear in the alert\r\ncontext menu. This is due to
the useBulkActions hook using the bulk\r\nactions state via context, and
so runs every time a user selects a\r\nrow/all rows. Doing this via
filter might not be the most performant\r\nway, but in order to have
everything referentially stable, I think the\r\narguments to
useBulkActions/useBulkUntrackActions should be changed a\r\nbit, but
that can be a discussion for another time. The test case added\r\nbelow
will currently fail on
main/8.14.\r\n\r\nBefore:\r\n\r\n![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)\r\n\r\n\r\nAfter:\r\n\r\n![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8a1d2950fa16f8cb50a21cb793640a290b54032c","branchLabelMapping":{"^v8.15.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:ResponseOps","Team:Threat
Hunting:Investigations","v8.14.0","v8.15.0"],"title":"[Security
Solution] [Alerts Table] [RAC] Prevent duplicate items being added by
bulk actions select
all","number":182007,"url":"#182007
Solution] [Alerts Table] [RAC] Prevent duplicate items being added by
bulk actions select all (#182007)\n\n## Summary\r\n\r\nRelated issue:
#181972\r\n\r\nWhen the useBulkActions hook in the alerts table is used
with the\r\noptionally defined at registration time hook
useBulkActionsConfig, and\r\nthat hook returns a stable array, the hook
calls a function that mutates\r\nthis array directly, which causes
duplicate items to appear in the alert\r\ncontext menu. This is due to
the useBulkActions hook using the bulk\r\nactions state via context, and
so runs every time a user selects a\r\nrow/all rows. Doing this via
filter might not be the most performant\r\nway, but in order to have
everything referentially stable, I think the\r\narguments to
useBulkActions/useBulkUntrackActions should be changed a\r\nbit, but
that can be a discussion for another time. The test case added\r\nbelow
will currently fail on
main/8.14.\r\n\r\nBefore:\r\n\r\n![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)\r\n\r\n\r\nAfter:\r\n\r\n![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8a1d2950fa16f8cb50a21cb793640a290b54032c"}},"sourceBranch":"main","suggestedTargetBranches":["8.14"],"targetPullRequestStates":[{"branch":"8.14","label":"v8.14.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.15.0","branchLabelMappingKey":"^v8.15.0$","isSourceBranch":true,"state":"MERGED","url":"#182007
Solution] [Alerts Table] [RAC] Prevent duplicate items being added by
bulk actions select all (#182007)\n\n## Summary\r\n\r\nRelated issue:
#181972\r\n\r\nWhen the useBulkActions hook in the alerts table is used
with the\r\noptionally defined at registration time hook
useBulkActionsConfig, and\r\nthat hook returns a stable array, the hook
calls a function that mutates\r\nthis array directly, which causes
duplicate items to appear in the alert\r\ncontext menu. This is due to
the useBulkActions hook using the bulk\r\nactions state via context, and
so runs every time a user selects a\r\nrow/all rows. Doing this via
filter might not be the most performant\r\nway, but in order to have
everything referentially stable, I think the\r\narguments to
useBulkActions/useBulkUntrackActions should be changed a\r\nbit, but
that can be a discussion for another time. The test case added\r\nbelow
will currently fail on
main/8.14.\r\n\r\nBefore:\r\n\r\n![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)\r\n\r\n\r\nAfter:\r\n\r\n![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8a1d2950fa16f8cb50a21cb793640a290b54032c"}}]}]
BACKPORT-->

Co-authored-by: Kevin Qualters <56408403+kqualters-elastic@users.noreply.github.com>
yuliacech pushed a commit to yuliacech/kibana that referenced this issue May 3, 2024
…g added by bulk actions select all (elastic#182007)

## Summary

Related issue: elastic#181972

When the useBulkActions hook in the alerts table is used with the
optionally defined at registration time hook useBulkActionsConfig, and
that hook returns a stable array, the hook calls a function that mutates
this array directly, which causes duplicate items to appear in the alert
context menu. This is due to the useBulkActions hook using the bulk
actions state via context, and so runs every time a user selects a
row/all rows. Doing this via filter might not be the most performant
way, but in order to have everything referentially stable, I think the
arguments to useBulkActions/useBulkUntrackActions should be changed a
bit, but that can be a discussion for another time. The test case added
below will currently fail on main/8.14.

Before:

![bulk_actions_with_dupe](https://github.com/elastic/kibana/assets/56408403/7f730bb9-fcb2-4a8e-93f8-3e08523e3a34)


After:

![bulk_actions_no_dupe](https://github.com/elastic/kibana/assets/56408403/01f76c6b-59fb-459f-8950-1fc1fe8dfe12)


### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
@MadameSheema MadameSheema added Team:Threat Hunting Security Solution Threat Hunting Team Team:Threat Hunting:Investigations Security Solution Investigations Team labels May 6, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-threat-hunting (Team:Threat Hunting)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-threat-hunting-investigations (Team:Threat Hunting:Investigations)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Fixes for quality problems that affect the customer experience fixed Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Threat Hunting:Investigations Security Solution Investigations Team Team:Threat Hunting Security Solution Threat Hunting Team
Projects
None yet
Development

No branches or pull requests

5 participants