Update copy for bulk fill gaps UI#225070
Conversation
|
Pinging @elastic/security-detection-engine (Team:Detection Engine) |
nastasha-solomon
left a comment
There was a problem hiding this comment.
Checked the screenshots and they look good. Thanks for making these changes!
nikitaindik
left a comment
There was a problem hiding this comment.
Thanks @denar50! I reviewed the code and tested changes locally. Left a few comments, but approving in advance since comments are about minor things. Please take a look though.
Another minor thing I noticed is that the manual rule run error message doesn't have a dot at the end.


| @@ -394,7 +394,7 @@ export const BULK_FILL_RULE_GAPS_CONFIRMATION_CONFIRM = i18n.translate( | |||
| export const BULK_MANUAL_RULE_RUN_LIMIT_ERROR_TITLE = i18n.translate( | |||
There was a problem hiding this comment.
Since "Cannot execute the bulk action" is pretty generic and used for both modals, I think it can be a single var with a generic name like BULK_ACTION_ERROR_MODAL_TITLE. Then we use same variable in both modals.
| export const BULK_FILL_RULE_GAPS_LIMIT_ERROR_CLOSE_BUTTON = i18n.translate( | ||
| 'xpack.securitySolution.detectionEngine.rules.allRules.bulkActions.bulkFillRuleGapsRuleLimitErrorCloseButton', | ||
| { | ||
| defaultMessage: 'Close', |
There was a problem hiding this comment.
I wonder if we already have an existing reusable i18n string for "Close". Please check if we can import it from some common place.
| text, | ||
| }: BulkManualRuleRunRulesLimitErrorModalProps) => { | ||
| return ( | ||
| <EuiModal onClose={onClose}> |
There was a problem hiding this comment.
It looks like EUI already has EuiConfirmModal. Can we use it instead?
There was a problem hiding this comment.
The thing is that a confirmation modal shows two buttons: the thing you're trying to confirm which as a CTA, and a cancel button. In our case, we only have the close action. I believe this is why the original author chose to use EuiModal instead.
|
|
||
| if ((dryRunResult?.succeededRulesCount ?? 0) > MAX_MANUAL_RULE_RUN_BULK_SIZE) { | ||
| showManualRuleRunLimitError(); | ||
| if ((dryRunResult?.succeededRulesCount ?? 0) > MAX_BULK_FILL_RULE_GAPS_BULK_SIZE) { |
There was a problem hiding this comment.
Curious why we have this limitation only in UI. Do we want to allow more than 100 via API?
There was a problem hiding this comment.
This is already handled in the function validateBulkAction in x-pack/solutions/security/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts
There was a problem hiding this comment.
Are you referring to this line? It seems to check only the case when you pass a list if IDs. But it won't error if you pass a query, like we do when applying a bulk action all the rules.
In general, do you folks want to limit gap filling to 100 rules for API users as well?
There was a problem hiding this comment.
Hmm good point. Also if a query is passed it seems that the max rules become 10000 instead according to this line.
@nkhristinin should we allow a query to be used to find rules instead of a list of ids (currently allowed by the endpoint, but not by the UI) but then we can add our limit here? or should we only allow a list of rule ids to be passed?
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
Page load bundle
History
cc @denar50 |
|
Starting backport for target branches: 8.19 https://github.com/elastic/kibana/actions/runs/15856715998 |
|
@nikitaindik I will address your comments in a follow up PR. |
## Summary These are small copy changes in two modals for the bulk schedule gap fills feature. ## Rule limitation modal Before  After  ## Time range selection modal Before  After  Additionally I have also made a small change to the rule limitation modal for manual runs Before  After  ## How to test? Generate 101 rules using [this tool](https://github.com/elastic/security-documents-generator). `yarn start rules --rules 100 -c -i"5m"` ### Rules limitation modal 1. Go to the rules page 2. Trigger the rules limitation modal by clicking on "Select all 101 rules" 3. Then click on Bulk actions > Manual run and Bulk actions > fill gaps respectively. ### Time range selection modal for bulk gap fills 1. Go to the rules page 2. Select a couple of rules 3. Then click on Bulk actions > fill gaps --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit e927fe5)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
# Backport This will backport the following commits from `main` to `8.19`: - [Update copy for bulk fill gaps UI (#225070)](#225070) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Edgar Santos","email":"edgar.santos@elastic.co"},"sourceCommit":{"committedDate":"2025-06-24T16:58:11Z","message":"Update copy for bulk fill gaps UI (#225070)\n\n## Summary\n\nThese are small copy changes in two modals for the bulk schedule gap\nfills feature.\n\n## Rule limitation modal\nBefore\n\n\n\nAfter\n\n\n\n## Time range selection modal\nBefore\n\n\n\nAfter\n\n\n\nAdditionally I have also made a small change to the rule limitation\nmodal for manual runs\nBefore\n\n\n\nAfter\n\n\n\n## How to test?\nGenerate 101 rules using [this\ntool](https://github.com/elastic/security-documents-generator).\n`yarn start rules --rules 100 -c -i\"5m\"`\n\n### Rules limitation modal\n1. Go to the rules page\n2. Trigger the rules limitation modal by clicking on \"Select all 101\nrules\"\n3. Then click on Bulk actions > Manual run and Bulk actions > fill gaps\nrespectively.\n\n### Time range selection modal for bulk gap fills\n1. Go to the rules page\n2. Select a couple of rules\n3. Then click on Bulk actions > fill gaps\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"e927fe55ba3f679d220aeffc922ffd6329983176","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Detection Engine","backport:version","v9.1.0","v8.19.0"],"title":"Update copy for bulk fill gaps UI","number":225070,"url":"https://github.com/elastic/kibana/pull/225070","mergeCommit":{"message":"Update copy for bulk fill gaps UI (#225070)\n\n## Summary\n\nThese are small copy changes in two modals for the bulk schedule gap\nfills feature.\n\n## Rule limitation modal\nBefore\n\n\n\nAfter\n\n\n\n## Time range selection modal\nBefore\n\n\n\nAfter\n\n\n\nAdditionally I have also made a small change to the rule limitation\nmodal for manual runs\nBefore\n\n\n\nAfter\n\n\n\n## How to test?\nGenerate 101 rules using [this\ntool](https://github.com/elastic/security-documents-generator).\n`yarn start rules --rules 100 -c -i\"5m\"`\n\n### Rules limitation modal\n1. Go to the rules page\n2. Trigger the rules limitation modal by clicking on \"Select all 101\nrules\"\n3. Then click on Bulk actions > Manual run and Bulk actions > fill gaps\nrespectively.\n\n### Time range selection modal for bulk gap fills\n1. Go to the rules page\n2. Select a couple of rules\n3. Then click on Bulk actions > fill gaps\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"e927fe55ba3f679d220aeffc922ffd6329983176"}},"sourceBranch":"main","suggestedTargetBranches":["8.19"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/225070","number":225070,"mergeCommit":{"message":"Update copy for bulk fill gaps UI (#225070)\n\n## Summary\n\nThese are small copy changes in two modals for the bulk schedule gap\nfills feature.\n\n## Rule limitation modal\nBefore\n\n\n\nAfter\n\n\n\n## Time range selection modal\nBefore\n\n\n\nAfter\n\n\n\nAdditionally I have also made a small change to the rule limitation\nmodal for manual runs\nBefore\n\n\n\nAfter\n\n\n\n## How to test?\nGenerate 101 rules using [this\ntool](https://github.com/elastic/security-documents-generator).\n`yarn start rules --rules 100 -c -i\"5m\"`\n\n### Rules limitation modal\n1. Go to the rules page\n2. Trigger the rules limitation modal by clicking on \"Select all 101\nrules\"\n3. Then click on Bulk actions > Manual run and Bulk actions > fill gaps\nrespectively.\n\n### Time range selection modal for bulk gap fills\n1. Go to the rules page\n2. Select a couple of rules\n3. Then click on Bulk actions > fill gaps\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"e927fe55ba3f679d220aeffc922ffd6329983176"}},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Edgar Santos <edgar.santos@elastic.co>
## Summary These are small copy changes in two modals for the bulk schedule gap fills feature. ## Rule limitation modal Before  After  ## Time range selection modal Before  After  Additionally I have also made a small change to the rule limitation modal for manual runs Before  After  ## How to test? Generate 101 rules using [this tool](https://github.com/elastic/security-documents-generator). `yarn start rules --rules 100 -c -i"5m"` ### Rules limitation modal 1. Go to the rules page 2. Trigger the rules limitation modal by clicking on "Select all 101 rules" 3. Then click on Bulk actions > Manual run and Bulk actions > fill gaps respectively. ### Time range selection modal for bulk gap fills 1. Go to the rules page 2. Select a couple of rules 3. Then click on Bulk actions > fill gaps --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary This PR is a follow up of #225070, addressing the remaining comments regarding the UI. - moved some common text to their own translation variables - added missing period to the end of a sentence for consistency 
## Summary This PR is a follow up of elastic#225070, addressing the remaining comments regarding the UI. - moved some common text to their own translation variables - added missing period to the end of a sentence for consistency  (cherry picked from commit 3b0c225) # Conflicts: # x-pack/platform/plugins/private/translations/translations/fr-FR.json # x-pack/platform/plugins/private/translations/translations/ja-JP.json # x-pack/platform/plugins/private/translations/translations/zh-CN.json
Summary
These are small copy changes in two modals for the bulk schedule gap fills feature.
Rule limitation modal
Before

After

Time range selection modal
Before

After

Additionally I have also made a small change to the rule limitation modal for manual runs

Before
After

How to test?
Generate 101 rules using this tool.
yarn start rules --rules 100 -c -i"5m"Rules limitation modal
Time range selection modal for bulk gap fills