Commit graph

93 commits

Author SHA1 Message Date
Yuliia Naumenko
ce45dad8b6
Changed alerting API endpoints urls, bodies and params to follow Kibana STYLEGUIDE (#66838)
* Changed alerting API endpoints urls, bodies and params to follow Kibana STYLEGUIDE

* Changed alerting REST API to keep the pattern 'alerts/alert/{id}'

* fixed tests

* fixed tests

* Fixed jest tests

* Renamed plugin from alerting to alerts

* fixed tests

* fixed tests

* Fixed alert type check error

* Fixed find api

* fixed type checks

* fixed tests security issues

* Fixed view in app

* -

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-01 18:45:36 -07:00
Yuliia Naumenko
d09bd63786
Changed actions API endpoints urls to follow Kibana STYLEGUIDE (#65936)
* Changed actions API endpoints urls to follow Kibana STYLEGUIDE

* Fixed tests

* fixed test

* fixed test

* resolved conflicts

* Fixed siem tests

* Fixed failing test

* fixed readme and test

* Changed actions api urls to follow the template 'api/{plugin}/{type}/{id}

* Fixed type checks

* Fixed tests and API

* fixed tests

* Fixed type checks

* fixed type check
2020-05-24 20:27:42 -07:00
restrry
bf04235dae apply prettier styles 2020-05-22 09:08:58 +02:00
Gidi Meir Morris
65370c70d2
[Alerting] Hides the alert SavedObjects type (#66719)
* make alert saved object type hidden

* fix support for hidden alert type in alerting tests

* updated api docs

* fixed some missing types and unused imports

* fixed test broken by field rename

* added support for including hidden types in saved objects client

* fixed merge conflict

* cleaned up some test descriptions

* adds a getClient api to Encrypted Saved Objects

* fixed alerts fixture

* added missing plugin type in alerting

* removed unused field

* chaged ESO api to an options object as per Security teams request

* fixed usage of eso client

* fixed typos and oversights

* split alerts file into two - for actions and alerts
2020-05-21 11:00:15 +01:00
Yuliia Naumenko
5ed5fda832
Allow registered alert types to be non-editable (#65606)
* Allow registered alert types to be non-editable

* Fixed isUiEditEnabled values

* Fixed due to comments

* fixed failing tests

* Enable alert type selection per alert consumer, only 'alerting' consumer can display other consumers alert types, but in case if it isEditable

* fixed tests

* Removed consumer property from the client side alert type registry and added server side property producer which purpose is to manage a feature logic

* fixed type check

* Fixed tests and type checks

* Removed error message for non registered plugins

* Fixed failing tests

* Fixed due to comments

* fixed test

* -

* revert logic for requiresAppContext

* Added close toast after saving alert
2020-05-12 13:38:22 -07:00
Gidi Meir Morris
94127d803a
[Alerting] migrates acceptance and functional test fixtures to KP (#64888)
This PR migrates the vast majority of Alerting legacy code to the Kibana Platform.

This includes:

1. Removed legacy Task Manager
2. Migrates Fixture plugins in Alerting, Triggers UI and Task Manager Perf

This does not includes:

1. The PagerDuty simulator due to a lack of support for custom responses in the platform. issue opened. https://github.com/elastic/kibana/issues/65045
2. The Webhooks simulator due to a lack of support for custom authorisation. Requires investigation.
2020-05-06 09:57:26 +01:00
Christos Nasikas
47b8ba5d5b
[SIEM][CASE] Refactor Connectors - Jira Connector (#63450) 2020-05-01 00:20:00 +03:00
Gidi Meir Morris
9fe7229357
[Alerting] migrates all remaining plugins to new platform (#64335)
Completes the migration of all Alerting Services plugins onto the Kibana Platform

It includes:

1. Actions plugin
2. Alerting plugin
3. Task Manager plugin
4. Triggers UI plugin

And touches the Uptime and Siem plugins as their use of the Task Manager relied on some of the legacy lifecycle to work (registering AlertTypes and Telemetry tasks after the Start stage has already began). The fix was simply to moves these registrations to the Setup stage.
2020-04-29 15:46:54 +01:00
Mike Côté
db374fc950
Ability to get scoped call cluster from alerting and action executors (#64432)
* Initial work

* Rename to getScopedCallCluster

* Fix typecheck

* Fix more type check issues

* Add tests

* Add docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-04-27 13:46:04 -04:00
Yuliia Naumenko
f7e1c17f28
Implemented do not return the config from the action APIs get and getAll (#64266) 2020-04-23 07:53:54 -07:00
Patrick Mueller
7677764c65
[Alerting] fixes to allow pre-configured actions to be executed (#63432)
resolves https://github.com/elastic/kibana/issues/63162

Most of the support for pre-configured actions has already been added
to Kibana, except for one small piece.  The ability for them to be
executed.  This PR adds that support.
2020-04-14 18:20:50 -04:00
Yuliia Naumenko
730dcbf638
Implemented actions server API for supporting preconfigured connectors (#62382)
* Implemented actions server API for supporting preconfigured connectors defined in kibana.yaml

* Fixed type check

* Fixed due to comments and extended functional tests

* Fixed tests and renamed connectors

* fixed jest tests

* Fixed type checks

* Fixed failing alert save

* Fixed alert client tests

* fixed type checks

* Fixed language check error

* Fixed jest tests

* Added missing comments and docs

* fixed due to comments

* Fixed json config for preconfigured

* fixed type check, reverted config

* config experiment with json stringify

* revert experiment

* Removed the spaces from connector names in config
2020-04-08 09:54:42 -07:00
Patrick Mueller
aa73e2aee3
[Alerting] change index action config executionTimeField to nullable (#61127)
resolves https://github.com/elastic/kibana/issues/61056

When the index action params moved into config, the `schema.maybe()` on the
`executionTimeField` should have been changed to `schema.nullable()`, otherwise
you can never "unset" the field, once it's set.

Changes rippled down to the UI as well.

To be extra safe, we also check that the `executionTimeField` isn't an empty
string when trimmed, as ES will not accept a document with a property that is
the empty string.
2020-03-24 23:19:56 -04:00
Patrick Mueller
72bc0eae32
[Alerting] allow email action to not require auth (#60839)
resolves https://github.com/elastic/kibana/issues/57143

Currently, the built-in email action requires user/password properties to be
set in it's secrets parameters.  This PR changes that requirement, so they
are no longer required.
2020-03-23 19:02:28 -04:00
Mike Côté
851b8a82a5
License checks for actions plugin (#59070)
* Define minimum license required for each action type (#58668)

* Add minimum required license

* Require at least gold license as a minimum license required on third party action types

* Use strings for license references

* Ensure license type is valid

* Fix some tests

* Add servicenow to gold

* Add tests

* Set license requirements on other built in action types

* Use jest.Mocked<ActionType> instead

* Change servicenow to platinum

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

* Make actions config mock and license state mock use factory pattern and jest mocks (#59370)

* Add license checks to action HTTP APIs (#59153)

* Initial work

* Handle errors in update action API

* Add unit tests for APIs

* Make action executor throw when action type isn't enabled

* Add test suite for basic license

* Fix ESLint errors

* Fix failing tests

* Attempt 1 to fix CI

* ESLint fixes

* Create sendResponse function on ActionTypeDisabledError

* Make disabled action types by config return 403

* Remove switch case

* Fix ESLint

* Add license checks within alerting / actions framework (#59699)

* Initial work

* Handle errors in update action API

* Add unit tests for APIs

* Verify action type before scheduling action task

* Make actions plugin.execute throw error if action type is disabled

* Bug fixes

* Make action executor throw when action type isn't enabled

* Add test suite for basic license

* Fix ESLint errors

* Stop action task from re-running when license check fails

* Fix failing tests

* Attempt 1 to fix CI

* ESLint fixes

* Create sendResponse function on ActionTypeDisabledError

* Make disabled action types by config return 403

* Remove switch case

* Fix ESLint

* Fix confusing assertion

* Add comment explaining double mock

* Log warning when alert action isn't scheduled

* Disable action types in UI when license doesn't support it (#59819)

* Initial work

* Handle errors in update action API

* Add unit tests for APIs

* Verify action type before scheduling action task

* Make actions plugin.execute throw error if action type is disabled

* Bug fixes

* Make action executor throw when action type isn't enabled

* Add test suite for basic license

* Fix ESLint errors

* Stop action task from re-running when license check fails

* Fix failing tests

* Attempt 1 to fix CI

* ESLint fixes

* Return enabledInConfig and enabledInLicense from actions get types API

* Disable cards that have invalid license in create connector flyout

* Create sendResponse function on ActionTypeDisabledError

* Make disabled action types by config return 403

* Remove switch case

* Fix ESLint

* Disable when creating alert action

* Return minimumLicenseRequired in /types API

* Disable row in connectors when action type is disabled

* Fix failing jest test

* Some refactoring

* Card in edit alert flyout

* Sort action types by name

* Add tooltips to create connector action type selector

* Add tooltips to alert flyout action type selector

* Add get more actions link in alert flyout

* Add callout when creating a connector

* Typos

* remove float right and use flexgroup

* replace pixels with eui variables

* turn on sass lint for triggers_actions_ui dir

* trying to add padding around cards

* Add callout in edit alert screen when some actions are disabled

* improve card selection for Add Connector flyout

* Fix cards for create connector

* Add tests

* ESLint issue

* Cleanup

* Cleanup pt2

* Fix type check errors

* moving to 3-columns cards for connector selection

* Change re-enable to enable terminology

* Revert "Change re-enable to enable terminology"

This reverts commit b497dfd6b6.

* Add re-enable comment

* Remove unecessary fragment

* Add type to actionTypeNodes

* Fix EuiLink to not have opacity of 0.7 when not hovered

* design cleanup in progress

* updating classNames

* using EuiIconTip

* Remove label on icon tip

* Fix failing jest test

Co-authored-by: Andrea Del Rio <delrio.andre@gmail.com>

* Add index to .index action type test

* PR feedback

* Add isErrorThatHandlesItsOwnResponse

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Andrea Del Rio <delrio.andre@gmail.com>
2020-03-20 10:49:37 -04:00
Christos Nasikas
3acbbcd2b0
Return incident's url (#60617) 2020-03-19 23:23:37 +02:00
Mike Côté
bafd45fff2
Fix race condition in flaky alerting test (#60438)
* Fix race condition in flaky test

* Fix flakiness in test

* Fix more flakiness
2020-03-19 13:20:48 -04:00
Mike Côté
27045e0942
Make slack param validation handle empty messages (#60468) 2020-03-19 08:02:07 -04:00
Christos Nasikas
24534e832e
ServiceNow action improvements (#60052)
* Apply action types to fields

* Add information to each field

* Do not create or update comments when actionType is set to nothing

* Improve helpers tests

* Improve tests

* Refactor: Use transformers and pipes

* Better types

* Refactor tests to new changes

* Better error messages

* Improve field formatting and display

* Improve integration tests

* Make username mandatory field

* Translate transformers

* Refactor schema

* Translate appendInformationToField helper

* Improve intergration tests

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-03-18 20:46:05 +02:00
Yuliia Naumenko
2207e0ab26
Index Action - Moved index params fields to connector config (#60349)
* Moved index params fields to connector config

* Fixed type check issue

* Fixing functional tests

* Fixed due to comments

* Fixed functional tests

* Fixed tests and type check
2020-03-17 18:20:00 -07:00
spalger
b71099d620 skip flaky suite (#58643) (#58991) 2020-03-17 08:13:32 -07:00
Patrick Mueller
ce1836b2af
[Alerting] extend Alert Type with names/descriptions of action variables (#59756)
resolves https://github.com/elastic/kibana/issues/58529

This PR extends alertType with an `actionVariables` property, which
describes the properties of the context object passed when scheduling
actions, and the current state.  These property descriptions are used
by the web ui for the alert create and edit forms, to allow the properties
to be added to action parameters as mustache template variables.
2020-03-12 23:17:29 -04:00
Christos Nasikas
e6327d32b0
[SIEM][CASE] ServiceNow executor (#58894)
* Refactor structure

* Init ServiceNow class

* Add constants

* Add configuration scheme

* Refactor configuration schema

* Refactor parameters schema

* Create new types

* Add supported source fields

* Create helpers

* Create ServiceNow lib

* Push incident

* Declare private methods

* Create UpdateIncident type

* Create updateIncident method

* Create executor actions

* Refactor response

* Test helpers

* Remove unnecessary validation

* Fix validation errors

* Throw error for unsupported actions

* Create mock incident

* Test executor

* Test ServiceNow lib

* Convert to camelCase

* Remove caller_id

* Refactor helpers

* Refactor schema

* Remove executorAction

* Test action handlers

* Refactor tests

* Create and update comments

* Remove closure option & change attribute name

* Fix tests

* Change lib structure

* Validate empty mapping

* Fix functional tests

* Fix type

* Change API to only add comments through incident's API

* Add instruction to README

* Change API version

* Test

* Test simulator

* Fix version on tests

* Remove SIEM reference in README
2020-03-11 16:01:07 +02:00
Patrick Mueller
7db4196164
[Alerting] add more alert properties to action parameter templating (#59718)
This is a pre-cursor to https://github.com/elastic/kibana/issues/58529

I realized a bit ago that we weren't making quite enough info available
in the action parameter templating that happens when alerts schedule
actions to execute.  Missing were alert name, tags, and spaceId.

For the index threshold alert, I had added them to it's context, but
then every other action would have to do the same if they also
wanted those values.

So I added these as additional top-level variables that can be
used in templates, along with the alert id, alert instance id,
context, and state.  The other bits in RawAlert didn't seem
that interesting, to be used as an action parameter.
2020-03-10 16:50:19 -04:00
Pierre Gayvallet
45fb6f38b8
Hide input value from kbn-config-schema error messages (#58843)
* use inline snapshots instead of snapshots

* hide input value from error messages

* update core snapshots

* update xpack snapshots

* fix ftr assertions

* fix new snapshots

* hide values for byte_size and duration

* update new snapshots

* remove another byte_size value reference

* fix yet another value references in error messages

* update xpack snapshots

* update xpack ftr assertions
2020-03-06 17:47:28 +01:00
Yuliia Naumenko
5ff13ada6b
Add custom action to registry and show actions list in siem (#58395)
* Add custom action to registry and show actions list in siem

* Exposed action form as reusable component

* Fixed few small bugs

* Fixed red ci

* Fixed type checks

* Fixed failed tests

* Fixed due to comments

* Fixed type check errors

* Fixed plugin check

* Rebalancing CI groups according to #58930

* Fixed merge issues
2020-03-05 17:47:08 -08:00
Yuliia Naumenko
1eb0176036
Added UI support for the default action group for Alert Type Model (#57603)
* Added UI support for the default action group for Alert Type Model

* Fixed set default on  alert type select

* Fixed type check

* Moved setting of default alert type to the server api

* Added default value for actionGroups if it is empty in register alert type functions

* Fixed type check

* Fixed due to comments	aed89377b9	Yuliia Naumenko <yuliia.naumenko@elastic.com>	Feb 20, 2020 at 12:40 PM

* Renamed defaultActionGroup to defaultActionGroupId

* Fixed failing tests
2020-02-21 13:58:54 -08:00
Yuliia Naumenko
c07ff7174e
Alerting plugin migrate to Kibana platform (#57635)
* Moved alerting plugin to new platform

* Fixed type checks

* Fixed failing tests

* Fixed functional tests

* Fixed plugin context initialization

* small typo

* Fixed type checks

* Fixed create alert schema

* Moved alerting files to Kibana platform folder

* Fixed duration validation

* Fixed find page size

* Fixed type check

* Fixed due to comments

* Fixed merge issues

* Added missing

* Fixed alerting functional tests

* Fixed tests

* Fixed update schema validation

* Added throttle update

* Fixed failing tests

* test

* fixed setup alerting dependencies for siem and monitoring plugins

* Fixed siem setup dependancies
2020-02-18 09:05:56 -08:00
Patrick Mueller
96c39a5a14
change slack action to only report on whitelisted host name (#57582)
Previously, when using the slack action with a url which was not whitelisted, the entire URL was reported in the error.  With this change, only the hostname is reported in the error.
2020-02-14 18:29:50 -05:00
Gidi Meir Morris
fd193fdf59
[Alerting] make actionGroup name's i18n-able (#57404)
We want to make the Action Group i18n-able for display in the AlertDetails page, so instead of just a list of ids, the AlertType now registers an object where key is the id and value is the human readable, and translatable, value.
2020-02-13 10:21:48 +13:00
Mike Côté
62e3189c34
Fix update alert API to still work when AAD is out of sync (#57039)
* Ensure update API still works when AAD is broken

* Add API integration test

* Fix ESLint errors

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-02-11 07:47:10 -05:00
Peter Schretlen
bb7e152211
Webhook action - make user and password secrets optional (#56823) 2020-02-10 17:08:56 -05:00
Mike Côté
a3dd282588
Make the update alert API key API work when AAD is out of sync (#56640)
* Make the update API key API work when AAD is out of sync

* Make updateAPIKey only load SOC where possible

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-02-10 14:48:29 -05:00
Mike Côté
1f87f3afa2
Don't create API key for disabled alerts when calling create API (#57041)
* Don't create API key for disabled alerts when calling create API

* Fix failing test

* Remove unused code in test
2020-02-10 13:22:08 -05:00
Mike Côté
8155415012
Fix enable and disable API to still work when AAD is out of sync (#56634)
* Fix enable and disable API to still work when AAD is broken

* Load SO once before fallback

* Fix comment

* Invalidate API key if any in enable API

* Add missing integration test

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-02-10 13:18:23 -05:00
Gidi Meir Morris
a02232d62b adds ability to fetch Alert and Alert Instance state (#56625)
Enables access to the Alert State, which allows us to see which current Alert Instances are active.

This includes:

1. Addition of a `get` api on Task Manager
2. Typing and validation on Serialisation & Deserialisation of the State of an Alert's underlying Task
3. Addition of the `getAlertState` api on AlertsClient
2020-02-10 12:11:20 +13:00
Mike Côté
24ed07137c
Ability to delete alerts even when AAD is out of sync (#56543)
* Ability to delete alerts even when AAD is bad

* Small code fixes

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-02-03 16:20:00 -05:00
Mike Côté
8fe39aef9d
Cleanup action task params objects after successful execution (#55227)
* Cleanup action task params saved objects after use

* Fix jest tests

* Add integration test to ensure object gets cleaned up

* Add unit tests

* Fix comment

* Re-use updated_at instead of creating createdAt

* Consider null/undefined returned from executor as success as well

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-27 15:02:44 -05:00
Mike Côté
72a8da2dcb
Re-enable skipped tests for unmuting an alert (#55861)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-27 09:39:02 -05:00
Brian Seeders
179dba2deb
Skip flaky test 2020-01-22 14:17:01 -05:00
Gidi Meir Morris
838d7ba213
migrate Actions to Kibana platform (#55026)
Migrates the Actions plugin from Legacy on to the Kibana Platform.
2020-01-22 17:08:54 +00:00
Yuliia Naumenko
5b641b706b
[Alerting] Exposed actionGroups in alertTypeRegistry API (#55495)
* Exposed actionGroups in alertTypeRegistry API

* Fixed functional tests
2020-01-22 08:16:51 -08:00
Mike Côté
66e2c720fd
Re-enable mute all test now that API is no longer flaky (#55172) 2020-01-17 16:26:09 -05:00
Mike Côté
9c2d778d1c
Fix enable API to schedule task after alert is updated (#55095) 2020-01-17 10:48:48 -05:00
Steph Milovic
5ba24b8f54
[SIEM] [Case] Service Now Kibana Action (#53890) 2020-01-15 13:50:38 -07:00
Brian Seeders
51d96e52ec
Skip flaky test 2020-01-13 15:54:58 -05:00
Patrick Mueller
5853360d75
pass more alert info into alert executor (#54035)
resolves https://github.com/elastic/kibana/issues/50522

The alert executor function is now passed these additional alert-specific
properties as parameters:

- spaceId
- namespace
- name
- tags
- createdBy
- updatedBy
2020-01-09 18:14:53 -05:00
Gidi Meir Morris
785b916917
allows Alerts to recover gracefully from Executor errors (#53688)
Prevents errors in Alert Executors from forcing their underlying tasks into a zombie state.
2020-01-06 14:52:06 +00:00
Gidi Meir Morris
d4b1966d4f
adds createdAt and updatedAt fields to alerting (#53793)
When users are writing UI's they need to see when an alert was created and when it was last updated, to this end we've added these two fields on the alert type.
2020-01-03 16:34:17 +00:00
Mike Côté
98ac7a64ad
Add tests to ensure AAD isn't broken after performing a change on an alert / action (#53333) 2019-12-31 13:36:39 -05:00