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

[RAM] Add notify badge with API #137430

Closed
wants to merge 4 commits into from

Conversation

XavierM
Copy link
Contributor

@XavierM XavierM commented Jul 28, 2022

Summary

POC to bring snooze functionality in the rules table of security solutions

Screen Shot 2022-07-28 at 6 12 28 AM

Checklist

Delete any items that are not applicable to this PR.

@XavierM XavierM added release_note:enhancement Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) Team:Threat Hunting Security Solution Threat Hunting Team Team:Detection Rule Management Security Detection Rule Management Team v8.5.0 labels Jul 28, 2022
@XavierM XavierM marked this pull request as ready for review September 8, 2022 18:16
@XavierM XavierM requested review from a team as code owners September 8, 2022 18:16
@elasticmachine
Copy link
Contributor

Pinging @elastic/response-ops (Team:ResponseOps)

@XavierM XavierM requested a review from jpdjere September 8, 2022 18:16
@elasticmachine
Copy link
Contributor

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

@banderror banderror self-requested a review September 12, 2022 08:32
@matschaffer matschaffer self-requested a review September 13, 2022 03:09
@matschaffer
Copy link
Contributor

@elasticmachine merge upstream

Copy link
Contributor

@matschaffer matschaffer left a comment

Choose a reason for hiding this comment

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

The @elastic/infra-monitoring-ui change seems fine in isolation so ✅ for that, but I'm guessing @elastic/response-ops should probably weigh-in on this as a feature.

The title says "POC" but I guess the intent is to release this?

Also wondering if more of these stubs should be using createDefaultAlertExecutorOptions or something like it to avoid the widespread addition of the fields to test suites that aren't concerned with snooze behavior. Not saying that should happen in this PR, but maybe a follow up issue.

Copy link
Contributor

@fkanout fkanout left a comment

Choose a reason for hiding this comment

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

Actionable Observability changes LGTM.

jpdjere added a commit that referenced this pull request Sep 27, 2022
…140626)

## Intro

This PR modifies the logic of bulk updating rule actions, in preparation for #137430

## Summary

- Removes the mute logic for bulk updating rule actions
- Remove option for “Perform no actions” from the bulk update rule actions dropdown options ONLY (option still available when creating or editing rules individually)
- Also corrects bulk update rule actions flyout, so that:
    - available actions are always displayed
    - copy referring to using "Perform No Actions" to mute all selected rules is no longer displayed.

## Screenshots

**Removed unwanted copy and "On each rule execution" selected as default**
![image](https://user-images.githubusercontent.com/5354282/191498419-10299ee5-4a9e-474e-b00a-657dc90816fa.png)

**"Perform No Action" option no longer available**
![image](https://user-images.githubusercontent.com/5354282/191498500-3965edad-8142-4834-808e-c210e72e17cb.png)


### Checklist

Delete any items that are not applicable to this PR.

- [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials
- [ ] [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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] 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))
- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] 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))
- [ ] 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)
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Sep 27, 2022
…lastic#140626)

## Intro

This PR modifies the logic of bulk updating rule actions, in preparation for elastic#137430

## Summary

- Removes the mute logic for bulk updating rule actions
- Remove option for “Perform no actions” from the bulk update rule actions dropdown options ONLY (option still available when creating or editing rules individually)
- Also corrects bulk update rule actions flyout, so that:
    - available actions are always displayed
    - copy referring to using "Perform No Actions" to mute all selected rules is no longer displayed.

## Screenshots

**Removed unwanted copy and "On each rule execution" selected as default**
![image](https://user-images.githubusercontent.com/5354282/191498419-10299ee5-4a9e-474e-b00a-657dc90816fa.png)

**"Perform No Action" option no longer available**
![image](https://user-images.githubusercontent.com/5354282/191498500-3965edad-8142-4834-808e-c210e72e17cb.png)

### Checklist

Delete any items that are not applicable to this PR.

- [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials
- [ ] [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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] 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))
- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] 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))
- [ ] 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)

(cherry picked from commit 7aa5428)
kibanamachine added a commit that referenced this pull request Sep 27, 2022
…140626) (#141977)

## Intro

This PR modifies the logic of bulk updating rule actions, in preparation for #137430

## Summary

- Removes the mute logic for bulk updating rule actions
- Remove option for “Perform no actions” from the bulk update rule actions dropdown options ONLY (option still available when creating or editing rules individually)
- Also corrects bulk update rule actions flyout, so that:
    - available actions are always displayed
    - copy referring to using "Perform No Actions" to mute all selected rules is no longer displayed.

## Screenshots

**Removed unwanted copy and "On each rule execution" selected as default**
![image](https://user-images.githubusercontent.com/5354282/191498419-10299ee5-4a9e-474e-b00a-657dc90816fa.png)

**"Perform No Action" option no longer available**
![image](https://user-images.githubusercontent.com/5354282/191498500-3965edad-8142-4834-808e-c210e72e17cb.png)

### Checklist

Delete any items that are not applicable to this PR.

- [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials
- [ ] [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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] 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))
- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] 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))
- [ ] 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)

(cherry picked from commit 7aa5428)

Co-authored-by: Juan Pablo Djeredjian <[email protected]>
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.

@XavierM finally, I reviewed it!

Checked out, tested locally, and reviewed the changes on our side. The snooze component in the Rules table works like a charm. 🙌 Thank you so much for proving that it can work in Security.

Observations after testing

Imported rules without actions are shown as indefinitely snoozed (mute_all: true). This is expected because right now we have this weird logic in Security that mutes a rule under the hood if it has Perform no actions or doesn't have actions in the actions array.

Screenshot 2022-09-29 at 19 58 57

Newly created rules without actions are shown as indefinitely snoozed (mute_all: true). Newly created rules with actions are shown as not snoozed. This is expected and the reason is the same.

Screenshot 2022-09-29 at 20 09 27

Newly installed prebuilt rules are shown as not snoozed, although they don't have any actions. I didn't expect this. It means that probably we just don't have this mute/unmute logic in the add_prepackaged_rules endpoint 🤷‍♂️

Screenshot 2022-09-29 at 20 09 50

Comments on implementation

I appreciate that the _snooze and _unsnooze endpoints are internal. This will give us some space and time for stabilizing their interface and it won't be blocking the development.

I left a bunch of comments on the implementation below. My main point is to avoid leakage of the snooze data into Security Solution's code.

Suggestions for this PR

Let's close this PR for now and we will reopen and build on top of it later when we start working on implementing support for snoozing in Security. I asked our leads to create an epic for that. I hope we will have some capacity for working on it in 8.7 (can't promise though).

I'd also support merging the changes made in the Framework (triggers_actions_ui plugin, x-pack/test/alerting_api_integration, etc) if it's easy to do in a separate PR.

Comment on lines 503 to 494
const responseOptionalFields = {
execution_summary: RuleExecutionSummary,
active_snoozes: t.array(t.string),
mute_all: t.boolean,
is_snoozed_until: t.union([IsoDateString, t.undefined, t.null]),
snooze_schedule: t.array(RuleSnoozeSchedule),
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's not expose the full snooze model from the detection_engine API endpoints. It leaks the "implementation" details of this feature from the Alerting Framework to Security:

  • As you can see from the diff, you had to add the new fields to a lot of places in the code of security_solution plugin.
  • It couples the Security code with the Framework code I'd say quite a lot. Every time you need to evolve this model in ResponseOps you will have to remember to tweak the corresponding code on the Security side and align those changes with the Rules and potentially Alerts area. Let's try to avoid this dependency - it seems unnecessary.

My suggestion is to read the full snooze model via an Alerting API endpoint.

  • It would be some "bulk get snooze information for multiple rules by their ids", and we'd call it on every page refresh of the Rules table. In addition, our existing API endpoints in Security could be returning just basic information about rule snoozing (e.g. is_snoozed_now, has_snooze_schedule; I'd probably even deprecate mute_all if possible).
  • The basic information that would be returned with rules could be easily constructed on the BE side based on the full snooze model, probably using some helper methods of the RulesClient. This info could be helpful to make the initial rendering of the Rules Table, Rule Details page, etc -- this could reduce the number of spinners and show some minimally useful info right away.
  • The full snoozing information would be fetched via a dedicated Alerting endpoint and used to re-render the Snooze components to show full info and make them interactive.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes that make sense to me too and I even like it better

Comment on lines +50 to +57
export const RuleSnoozeSchedule = t.intersection([
t.type({
duration: t.number,
rRule: RRuleRecord,
}),
t.partial({
id: t.string,
skipRecurrences: t.array(t.string),
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: it's common to use snake_case in API endpoints' parameters and responses

Comment on lines 229 to 230
render: (rule: Rule) => {
return triggersActionsUi.getRulesListNotifyBadge({
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice! Just out of curiosity: why it is returned via triggersActionsUi and can't be just imported and used as a React component in JSX?

Comment on lines 231 to 232
rule: {
...rule,
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do you need the whole rule here? Let's limit it to the only properties you actually need, e.g. id.

Comment on lines 238 to 239
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} as any,
Copy link
Contributor

Choose a reason for hiding this comment

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

Why any is needed?

// eslint-disable-next-line @typescript-eslint/no-explicit-any
} as any,
isLoading: loadingRuleIds.includes(rule.id) || isLoading,
onRuleChanged: reFetchRules,
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do we need to refetch the current page of rules when only the snooze info can be changed by this component? I mean, it can't change other rule fields and it can't change other rules. Could it be stateful and maintain its own state when calling API endpoints?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes! we can do that

@@ -368,7 +369,7 @@ export const createSecurityRuleTypeWrapper: CreateSecurityRuleTypeWrapper =

const createdSignalsCount = result.createdSignals.length;

if (actions.length) {
if (actions.length && !isRuleSnoozed(options.rule)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you for taking care of legacy rule actions as well 🙏

@@ -60,6 +60,7 @@ describe('get_export_by_object_ids', () => {
rulesNdjson: {
author: ['Elastic'],
actions: [],
active_snoozes: [],
Copy link
Contributor

@banderror banderror Sep 29, 2022

Choose a reason for hiding this comment

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

By the way, regarding rule export and import, I'm not sure we should support snooze data in export/import. It feels like too dynamic/sporadic data that can become outdated pretty quickly whereas exported data should be static and not bound to time.

This is the reason why we don't export rule monitoring data: the execution_summary object.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Make sense!

@XavierM XavierM force-pushed the snooze-security-solution branch from 9fd4278 to 70fdf7a Compare January 25, 2023 21:42
@XavierM XavierM requested review from a team as code owners January 25, 2023 21:42
@XavierM XavierM changed the title [SECURITY] POC Snooze rule from security solution [RAM] Add notify badge with API Jan 25, 2023
@XavierM XavierM closed this Jan 25, 2023
@kibana-ci
Copy link
Collaborator

kibana-ci commented Jan 25, 2023

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alert Pagination renders the first page
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alert Pagination renders the first page
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user to mute a specific alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user to mute a specific alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user to unmute a specific alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user to unmute a specific alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user unmute an inactive alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts allows the user unmute an inactive alert
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts renders the active alerts
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts renders the active alerts
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts renders the muted inactive alerts
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Alerts renders the muted inactive alerts
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule button should open edit rule flyout
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule button should open edit rule flyout
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule button should reset rule when canceling an edit
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule button should reset rule when canceling an edit
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with deleted connector should show and update deleted connectors when there are existing connectors of the same type
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with deleted connector should show and update deleted connectors when there are existing connectors of the same type
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with deleted connector should show and update deleted connectors when there are no existing connectors of the same type
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with deleted connector should show and update deleted connectors when there are no existing connectors of the same type
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with legacy rule-level notify values should convert rule-level params to action-level params and save the alert successfully
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Edit rule with legacy rule-level notify values should convert rule-level params to action-level params and save the alert successfully
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header renders the rule details
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header renders the rule details
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header renders toast when schedule is less than configured minimum
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header renders toast when schedule is less than configured minimum
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should add snooze schedule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should add snooze schedule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should allow you to snooze a disabled rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should allow you to snooze a disabled rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should disable the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should disable the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should reenable a disabled the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should reenable a disabled the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should snooze the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should snooze the rule
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should snooze the rule for a set duration
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details Header should snooze the rule for a set duration
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details View In App renders the rule details view in app button
  • [job] [logs] FTR Configs #4 / Actions and Triggers app Rule Details View In App renders the rule details view in app button
  • [job] [logs] Security Solution Tests #4 / Add exception using data views from rule details Creates an exception item from alert actions overflow menu
  • [job] [logs] FTR Configs #28 / dashboard app - group 2 full screen mode "before all" hook for "option not available in edit mode"
  • [job] [logs] Jest Tests #4 / disable/enable functionality should show that the rule is disabled
  • [job] [logs] Jest Tests #4 / disable/enable functionality should show that the rule is enabled
  • [job] [logs] Jest Tests #4 / execution duration overview render last execution status
  • [job] [logs] Jest Tests #7 / Field Renderers MoreContainer it should render with correct attrName prop
  • [job] [logs] Security Solution Tests #3 / Hover actions "before each" hook for "Adds global filter - filter in"
  • [job] [logs] Security Solution Tests #3 / Hover actions "before each" hook for "Adds global filter - filter in"
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component handles clicking on active correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component handles clicking on active correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component handles clicking on recovered correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component handles clicking on recovered correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component shows component on the rule detils page
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Alert summary widget component shows component on the rule detils page
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Navigate to the new Rule Details page should navigate to the new rule details page by clicking on the rule from the rules table
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Navigate to the new Rule Details page should navigate to the new rule details page by clicking on the rule from the rules table
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Navigate to the new Rule Details page should navigate to the new rule details page by URL
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Navigate to the new Rule Details page should navigate to the new rule details page by URL
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components maps correctly the rule type with the human readable rule type
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components maps correctly the rule type with the human readable rule type
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components show the rule name as the page title
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components show the rule name as the page title
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components shows the rule definition section in the rule summary
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components shows the rule definition section in the rule summary
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components shows the rule status section in the rule summary
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page Page components shows the rule status section in the rule summary
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should close actions popover correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should close actions popover correctly
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should show the actions button if user has permissions
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should show the actions button if user has permissions
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should show the rule edit and delete button if user has permissions
  • [job] [logs] FTR Configs #6 / ObservabilityApp Observability Rule Details page User permissions should show the rule edit and delete button if user has permissions
  • [job] [logs] Security Solution Tests #3 / Overflow items Network stats and tables "before each" hook for "Shows more items in the popover"
  • [job] [logs] Security Solution Tests #3 / Overflow items Network stats and tables "before each" hook for "Shows more items in the popover"
  • [job] [logs] Security Solution Tests #3 / Pagination Host uncommon processes table) pagination keeps track of page results when tabs change
  • [job] [logs] Security Solution Tests #3 / Pagination Host uncommon processes table) pagination keeps track of page results when tabs change
  • [job] [logs] Security Solution Tests #3 / Pagination Host uncommon processes table) pagination updates results and page number
  • [job] [logs] Security Solution Tests #3 / Pagination Host uncommon processes table) pagination updates results and page number
  • [job] [logs] Security Solution Tests #3 / risk tab should be able to change items count per page
  • [job] [logs] Security Solution Tests #3 / risk tab should be able to change items count per page
  • [job] [logs] Jest Tests #4 / rule status panel fetches and renders the number of executions in the last 24 hours
  • [job] [logs] Jest Tests #4 / rule status panel if rule is already disabled should do nothing when picking disable in the dropdown
  • [job] [logs] Jest Tests #4 / rule status panel if rule is already enabled should do nothing when picking enable in the dropdown
  • [job] [logs] Jest Tests #4 / rule status panel should disable the rule when picking disable in the dropdown
  • [job] [logs] Jest Tests #4 / rule status panel should enable the rule when picking enable in the dropdown
  • [job] [logs] Jest Tests #4 / rule status panel should show the loading spinner when the rule enabled switch was clicked and the server responded with some delay
  • [job] [logs] Jest Tests #4 / rules render a list of rules
  • [job] [logs] Jest Tests #4 / rules render all active rules
  • [job] [logs] Jest Tests #4 / rules render all inactive rules
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution / Rules selection should correctly update the selection label when rules are bulk selected and then unselected via the table select all checkbox
  • [job] [logs] Jest Tests #12 / Table Helpers #getRowItemsWithActions it returns 2 items then overflows when displayCount is 2
  • [job] [logs] Security Solution Tests #4 / url state sets KQL in host page and detail page and check if href match on breadcrumb, tabs and subTabs
  • [job] [logs] Security Solution Tests #4 / url state sets KQL in host page and detail page and check if href match on breadcrumb, tabs and subTabs
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should allow multiple of the same options if allowMultiples is true
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should clear the command output history when clear is entered
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should display all available commands when help command is entered
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should display custom help output when Command service has getHelp() defined
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should execute a command entered
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should render custom command --help output when Command service defines getCommandUsage()
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if all arguments are optional, but at least 1 must be defined
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if any required option is not set
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if argument is used more than once
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if command's definition validate() callback returns a message
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if no options were provided, but command requires some
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if options are used but command supports none
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if unknown (multiple) arguments are used
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if unknown (single) argument is used
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if unknown arguments are used along with the --help argument
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if unknown command
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error if values are given to the --help argument
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show error returned by the option's validate() callback
  • [job] [logs] Jest Tests #11 / When a Console command is entered by the user should show individual command help when --help option is used
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input and when the command input history popover is opened and clear history confirm dialog is displayed should close the confirm modal if Cancel button is clicked
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input and when the command input history popover is opened should add history item to the input area when selected and clear placeholder
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input and when the command input history popover is opened should clear the input area and show placeholder with first item that is focused
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input and when the command input history popover is opened should return original value to input and clear placeholder if popup is closed with no selection
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input and when the command input history popover is opened should show confirm dialog when Clear history button is clicked
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display default hint when nothing is typed into the command input area
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display hint when a known command is typed
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display hint when an unknown command is typed
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display placeholder text when input area is blank
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display the input history popover when UP key is pressed
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should display what the user is typing
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should execute correct command if arrow button is clicked
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should hide the history popover if user clicks back on input area
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should not display command key names in the input, when command keys are used
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should NOT display placeholder text if input area has text entered
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should repeat letters if the user holds letter key down on the keyboard
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should show the arrow button as disabled if input area is blank
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should show the arrow button as disabled if input has only whitespace entered and it is left to the cursor
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should show the arrow button as disabled if input has only whitespace entered and it is right to the cursor
  • [job] [logs] Jest Integration Tests #1 / When entering data into the Console input should show the arrow button as not disabled if input has text entered
  • [job] [logs] Jest Tests #11 / When using EnteredInput class should clear input when calling clear()

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
securitySolution 3534 3560 +26
triggersActionsUi 487 491 +4
total +30

Async chunks

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

id before after diff
securitySolution 12.8MB 12.8MB +5.5KB
triggersActionsUi 707.7KB 709.8KB +2.2KB
total +7.7KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
securitySolution 52.4KB 52.4KB -9.0B

History

  • 💚 Build #71552 succeeded 9fd427867a8ac9c4228202d1c96333694931b3a8
  • 💛 Build #70600 was flaky b426a7f7bd23dba007b886c51c2829b92dfb53ca
  • 💛 Build #70535 was flaky 32b4115a61772c9a3107747563b2158b76d1816b
  • 💔 Build #70426 failed 5b9d0b9b728c9e3de437cfdfd08f1451afcb71ec

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release_note:enhancement Team:Detection Rule Management Security Detection Rule Management Team Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) Team:Threat Hunting Security Solution Threat Hunting Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants