-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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] Fix broken Rule Filters components when content is extremely long and when alias is present #176590
Conversation
Pinging @elastic/security-detections-response (Team:Detections and Resp) |
Pinging @elastic/security-solution (Team: SecuritySolution) |
Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management) |
.../public/detection_engine/rule_management/components/rule_details/rule_definition_section.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, pulled down and tested with a few different filter examples 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! This looks like a more robust fix and I hope it will be enough to not have any more regressions in the future.
Tested locally with the rule from the SDH (#145076 (comment)) and some modifications of it. This is how it looked like (I think it looks good!):
I found a bug which is not related to this fix and created a ticket for it: #176866
LGTM 👍
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Async chunks
History
To update your PR or re-run it, just comment with: cc @jpdjere |
…s extremely long and when alias is present (elastic#176590) Fixes: elastic#145076 Fixes: elastic#162543 ## Summary This PR solves two separate issues in the Filters component, used in the Rule Details page. 1. **when rule filter is extremely long, the component would break the layout of the whole page**: fixed by adding a styled wrapper component to our About, Definition and Schedule section, [that allows wrapping of extremely long text `anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap). This was precisely the issue that was breaking our layout when the filters were extremely long, with the aggravating factor that the filters were async loaded, and populated the component after the css was loaded. 2. **when a rule filter had a name (alias) that should have been displayed as a label instead of the actual filter**. This was like this before 8.8, but was apparently lost during some refactoring. This PR reintroduces that logic. ## Screenshots ### Broken page with long filters #### Before ![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a) #### After ![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8) **Mobile:** ![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d) #### Alias not showing as name ### Before ![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821) ### After ![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51) ## Browser compatibility - Above screenshots are **Chrome** - **Firefox** ![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff) - **Safari** ![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036) ### Checklist Delete any items that are not applicable to this PR. - [x] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co> (cherry picked from commit 532ac06)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…ntent is extremely long and when alias is present (#176590) (#176928) # Backport This will backport the following commits from `main` to `8.12`: - [[Security Solution] Fix broken Rule Filters components when content is extremely long and when alias is present (#176590)](#176590) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Juan Pablo Djeredjian","email":"jpdjeredjian@gmail.com"},"sourceCommit":{"committedDate":"2024-02-14T15:13:07Z","message":"[Security Solution] Fix broken Rule Filters components when content is extremely long and when alias is present (#176590)\n\nFixes: https://github.com/elastic/kibana/issues/145076\r\nFixes: https://github.com/elastic/kibana/issues/162543\r\n\r\n## Summary\r\n\r\nThis PR solves two separate issues in the Filters component, used in the\r\nRule Details page.\r\n\r\n1. **when rule filter is extremely long, the component would break the\r\nlayout of the whole page**: fixed by adding a styled wrapper component\r\nto our About, Definition and Schedule section, [that allows wrapping of\r\nextremely long text\r\n`anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap).\r\nThis was precisely the issue that was breaking our layout when the\r\nfilters were extremely long, with the aggravating factor that the\r\nfilters were async loaded, and populated the component after the css was\r\nloaded.\r\n2. **when a rule filter had a name (alias) that should have been\r\ndisplayed as a label instead of the actual filter**. This was like this\r\nbefore 8.8, but was apparently lost during some refactoring. This PR\r\nreintroduces that logic.\r\n\r\n## Screenshots\r\n\r\n### Broken page with long filters\r\n\r\n#### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a)\r\n\r\n#### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8)\r\n**Mobile:**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d)\r\n\r\n\r\n#### Alias not showing as name\r\n\r\n### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821)\r\n### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51)\r\n\r\n\r\n## Browser compatibility\r\n\r\n- Above screenshots are **Chrome**\r\n- **Firefox**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff)\r\n\r\n- **Safari**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036)\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>","sha":"532ac0604651dc7be83361653ddfb8d4682780c2","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Detections and Resp","Team: SecuritySolution","Team:Detection Rule Management","Feature:Rule Details","8.13 candidate","v8.13.0","v8.12.2"],"title":"[Security Solution] Fix broken Rule Filters components when content is extremely long and when alias is present","number":176590,"url":"https://github.com/elastic/kibana/pull/176590","mergeCommit":{"message":"[Security Solution] Fix broken Rule Filters components when content is extremely long and when alias is present (#176590)\n\nFixes: https://github.com/elastic/kibana/issues/145076\r\nFixes: https://github.com/elastic/kibana/issues/162543\r\n\r\n## Summary\r\n\r\nThis PR solves two separate issues in the Filters component, used in the\r\nRule Details page.\r\n\r\n1. **when rule filter is extremely long, the component would break the\r\nlayout of the whole page**: fixed by adding a styled wrapper component\r\nto our About, Definition and Schedule section, [that allows wrapping of\r\nextremely long text\r\n`anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap).\r\nThis was precisely the issue that was breaking our layout when the\r\nfilters were extremely long, with the aggravating factor that the\r\nfilters were async loaded, and populated the component after the css was\r\nloaded.\r\n2. **when a rule filter had a name (alias) that should have been\r\ndisplayed as a label instead of the actual filter**. This was like this\r\nbefore 8.8, but was apparently lost during some refactoring. This PR\r\nreintroduces that logic.\r\n\r\n## Screenshots\r\n\r\n### Broken page with long filters\r\n\r\n#### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a)\r\n\r\n#### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8)\r\n**Mobile:**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d)\r\n\r\n\r\n#### Alias not showing as name\r\n\r\n### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821)\r\n### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51)\r\n\r\n\r\n## Browser compatibility\r\n\r\n- Above screenshots are **Chrome**\r\n- **Firefox**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff)\r\n\r\n- **Safari**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036)\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>","sha":"532ac0604651dc7be83361653ddfb8d4682780c2"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/176590","number":176590,"mergeCommit":{"message":"[Security Solution] Fix broken Rule Filters components when content is extremely long and when alias is present (#176590)\n\nFixes: https://github.com/elastic/kibana/issues/145076\r\nFixes: https://github.com/elastic/kibana/issues/162543\r\n\r\n## Summary\r\n\r\nThis PR solves two separate issues in the Filters component, used in the\r\nRule Details page.\r\n\r\n1. **when rule filter is extremely long, the component would break the\r\nlayout of the whole page**: fixed by adding a styled wrapper component\r\nto our About, Definition and Schedule section, [that allows wrapping of\r\nextremely long text\r\n`anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap).\r\nThis was precisely the issue that was breaking our layout when the\r\nfilters were extremely long, with the aggravating factor that the\r\nfilters were async loaded, and populated the component after the css was\r\nloaded.\r\n2. **when a rule filter had a name (alias) that should have been\r\ndisplayed as a label instead of the actual filter**. This was like this\r\nbefore 8.8, but was apparently lost during some refactoring. This PR\r\nreintroduces that logic.\r\n\r\n## Screenshots\r\n\r\n### Broken page with long filters\r\n\r\n#### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a)\r\n\r\n#### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8)\r\n**Mobile:**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d)\r\n\r\n\r\n#### Alias not showing as name\r\n\r\n### Before\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821)\r\n### After\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51)\r\n\r\n\r\n## Browser compatibility\r\n\r\n- Above screenshots are **Chrome**\r\n- **Firefox**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff)\r\n\r\n- **Safari**\r\n\r\n![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036)\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>","sha":"532ac0604651dc7be83361653ddfb8d4682780c2"}},{"branch":"8.12","label":"v8.12.2","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Juan Pablo Djeredjian <jpdjeredjian@gmail.com>
…s extremely long and when alias is present (elastic#176590) Fixes: elastic#145076 Fixes: elastic#162543 ## Summary This PR solves two separate issues in the Filters component, used in the Rule Details page. 1. **when rule filter is extremely long, the component would break the layout of the whole page**: fixed by adding a styled wrapper component to our About, Definition and Schedule section, [that allows wrapping of extremely long text `anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap). This was precisely the issue that was breaking our layout when the filters were extremely long, with the aggravating factor that the filters were async loaded, and populated the component after the css was loaded. 2. **when a rule filter had a name (alias) that should have been displayed as a label instead of the actual filter**. This was like this before 8.8, but was apparently lost during some refactoring. This PR reintroduces that logic. ## Screenshots ### Broken page with long filters #### Before ![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a) #### After ![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8) **Mobile:** ![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d) #### Alias not showing as name ### Before ![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821) ### After ![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51) ## Browser compatibility - Above screenshots are **Chrome** - **Firefox** ![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff) - **Safari** ![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036) ### Checklist Delete any items that are not applicable to this PR. - [x] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>
…s extremely long and when alias is present (elastic#176590) Fixes: elastic#145076 Fixes: elastic#162543 ## Summary This PR solves two separate issues in the Filters component, used in the Rule Details page. 1. **when rule filter is extremely long, the component would break the layout of the whole page**: fixed by adding a styled wrapper component to our About, Definition and Schedule section, [that allows wrapping of extremely long text `anywhere`](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap). This was precisely the issue that was breaking our layout when the filters were extremely long, with the aggravating factor that the filters were async loaded, and populated the component after the css was loaded. 2. **when a rule filter had a name (alias) that should have been displayed as a label instead of the actual filter**. This was like this before 8.8, but was apparently lost during some refactoring. This PR reintroduces that logic. ## Screenshots ### Broken page with long filters #### Before ![image](https://github.com/elastic/kibana/assets/5354282/928f642d-fce2-4bd7-b0ee-2f318109777a) #### After ![image](https://github.com/elastic/kibana/assets/5354282/dcac5f7b-c716-44c9-9f9c-124cd616bcf8) **Mobile:** ![image](https://github.com/elastic/kibana/assets/5354282/a2ef0f17-2cab-49d9-99bd-0a9d3a712a2d) #### Alias not showing as name ### Before ![image](https://github.com/elastic/kibana/assets/5354282/d68c7569-2f86-4f58-8b45-d67ee53e6821) ### After ![image](https://github.com/elastic/kibana/assets/5354282/f4f24427-8e82-4abe-9fa2-dbc8690dbb51) ## Browser compatibility - Above screenshots are **Chrome** - **Firefox** ![image](https://github.com/elastic/kibana/assets/5354282/e2ab0221-bfde-4544-afb2-6f5e1a4db0ff) - **Safari** ![image](https://github.com/elastic/kibana/assets/5354282/962dd314-1ba9-4aa2-81c1-955c1c1f9036) ### Checklist Delete any items that are not applicable to this PR. - [x] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>
Fixes: #145076
Fixes: #162543
Summary
This PR solves two separate issues in the Filters component, used in the Rule Details page.
anywhere
. This was precisely the issue that was breaking our layout when the filters were extremely long, with the aggravating factor that the filters were async loaded, and populated the component after the css was loaded.Screenshots
Broken page with long filters
Before
After
Mobile:
Alias not showing as name
Before
After
Browser compatibility
Above screenshots are Chrome
Firefox
Safari
Checklist
Delete any items that are not applicable to this PR.
For maintainers