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] Fix broken Rule Filters components when content is extremely long and when alias is present #176590

Merged
merged 8 commits into from
Feb 14, 2024

Conversation

jpdjere
Copy link
Contributor

@jpdjere jpdjere commented Feb 9, 2024

Fixes: #145076
Fixes: #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. 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

After

image
Mobile:
image

Alias not showing as name

Before

image

After

image

Browser compatibility

  • Above screenshots are Chrome

  • Firefox
    image

  • Safari
    image

Checklist

Delete any items that are not applicable to this PR.

  • Any UI touched in this PR does not create any new axe failures (run axe in browser: FF, Chrome)
  • This renders correctly on smaller devices using a responsive layout. (You can test this in your browser)
  • This was checked for cross-browser compatibility

For maintainers

@jpdjere jpdjere added release_note:fix Feature:Detection Rules Security Solution rules and Detection Engine Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Detection Rule Management Security Detection Rule Management Team v8.12.0 8.13 candidate v8.13.0 labels Feb 9, 2024
@jpdjere jpdjere self-assigned this Feb 9, 2024
@jpdjere jpdjere marked this pull request as ready for review February 9, 2024 13:41
@jpdjere jpdjere requested a review from a team as a code owner February 9, 2024 13:41
@jpdjere jpdjere requested a review from dplumlee February 9, 2024 13:41
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detections-response (Team:Detections and Resp)

@elasticmachine
Copy link
Contributor

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

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management)

@banderror banderror added v8.12.2 Feature:Rule Details Security Solution Detection Rule Details page and removed v8.12.0 Feature:Detection Rules Security Solution rules and Detection Engine labels Feb 9, 2024
@jpdjere jpdjere requested a review from banderror February 12, 2024 12:50
Copy link
Contributor

@dplumlee dplumlee left a 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 👍

Copy link
Contributor

@banderror banderror left a 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!):

Screenshot 2024-02-13 at 21 07 17 Screenshot 2024-02-13 at 21 07 31

I found a bug which is not related to this fix and created a ticket for it: #176866

LGTM 👍

@banderror banderror enabled auto-merge (squash) February 14, 2024 13:21
@kibana-ci
Copy link
Collaborator

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Jest Integration Tests #4 / migration v2 - CHECK_TARGET_MAPPINGS when upgrading to a newer stack version runs UPDATE_TARGET_MAPPINGS_PROPERTIES when mappings have changed
  • [job] [logs] Defend Workflows Cypress Tests #4 / Response console File operations: "before all" hook for ""get-file --path" - should retrieve a file" "before all" hook for ""get-file --path" - should retrieve a file"

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 11.5MB 11.5MB +282.0B

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @jpdjere

@banderror banderror merged commit 532ac06 into elastic:main Feb 14, 2024
42 checks passed
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Feb 14, 2024
…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)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.12

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Feb 14, 2024
…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>
CoenWarmer pushed a commit to CoenWarmer/kibana that referenced this pull request Feb 15, 2024
…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>
@banderror banderror added the impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. label Feb 15, 2024
fkanout pushed a commit to fkanout/kibana that referenced this pull request Mar 4, 2024
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.13 candidate Feature:Rule Details Security Solution Detection Rule Details page impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. release_note:fix Team:Detection Rule Management Security Detection Rule Management Team Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. v8.12.2 v8.13.0
Projects
None yet
6 participants