Commit graph

989 commits

Author SHA1 Message Date
Georgiana-Andreea Onoleață
4434e87e4d
[ResponseOps] - Fix failing test in index_threshold_max_alerts (#208038)
## Summary

- un-skipped test and ran the flaky test runner

Fixes: https://github.com/elastic/kibana/issues/193876.
2025-01-27 12:07:36 +02:00
Christos Nasikas
9a3fc89629
[ResponseOps][Rules] Validate timezone in rule routes (#201508)
## Summary

This PR adds validation only for internal routes that use the `rRule`
schema.

## Testing

1. Create a rule in main.
2. Snooze the rule by using the API as

```
POST /internal/alerting/rule/<ruleId>/_snooze
{
    "snooze_schedule": {
        "id": "e58e2340-dba6-454c-8308-b2ca66a7cf7b",
        "duration": 86400000,
        "rRule": {
            "dtstart": "2024-09-04T09:27:37.011Z",
            "tzid": "invalid",
            "freq": 2,
            "interval": 1,
            "byweekday": [
                "invalid"
            ]
        }
    }
}
```

4. Go to the rules page and verify that the rules are not loaded.
5. Switch to my PR.
6. Go to the rules page and verify that the rules load.

### Checklist

- [x] [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

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-24 18:46:24 +01:00
Antonio
0df78e629b
[ResponseOps][MW] Fix bug when creating repeating Maintenance Window (#207084)
Closes #198774

## Summary

- There was a bug when submitting `rrule` with a `byweekday` I fixed
that validation to use a more inclusive regex. `byweekday` can be the
expected `MO`, `TU`, etc but also `-1FR` or `+3SA` where the number
corresponds to the week in a month.
- The model version for the maintenance window was incorrect so when
saving the SO the validation was failing. I fixed that and now we are
allowed to save `number[]` as expected.
- I removed some duplicated code and we now use the `rrule` schema from
the `common` folder
2025-01-24 11:40:25 +00:00
Ying Mao
b219962bda
Revert "[ES body removal] @elastic/response-ops (#204882)" (#207899)
This reverts commit 7bb2dad38f.

Original PR https://github.com/elastic/kibana/pull/204882 caused errors
updating alert data stream index mappings in serverless. This seems to
be a difference in the Elasticsearch client code handling requests with
a body param vs requests without a body param
a4315a905e (diff-07b3475acb306ea63796d4e5cc559c073a63b84c8deeb9948d9ef24fb04c6439)
2025-01-22 22:47:06 -06:00
Alexi Doak
12998a8fe1
[ResponseOps] Granular connector RBAC followup (#205818)
## Summary

This PR is followup to, https://github.com/elastic/kibana/pull/203503.
This PR adds a test to make sure that sub-feature description remains
accurate, and changes to hide the connector edit test tab and create
connector button when a user only has read access.

### Checklist

- [ ] [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


### To verify

1. Create a new read only role and disable EDR connectors under the
Actions and Connectors privilege
2. Create a new user and assign that role to user
3. Create a Sentinel One connector (It doesn't need to work, you can use
fake values for the url and token)
4. Login as the new user and go to the connector page in stack
management
5. Verify that the "Create connector" button is not visible
6. Click on the connector you created, verify that you can't see the
test tab
2025-01-21 13:33:54 -08:00
Alejandro Fernández Haro
7bb2dad38f
[ES body removal] @elastic/response-ops (#204882) 2025-01-21 14:10:54 +00:00
Ying Mao
075806bffa
[Response Ops][Alerting] Adding ability to run actions for backfill rule runs (#200784)
Resolves https://github.com/elastic/response-ops-team/issues/251


## Note

This PR includes some saved object schema changes that I will pull out
into their own separate PR in order to perform an intermediate release.
I wanted to make sure all the schema changes made sense in the overall
context of the PR before opening those separate PRs.

Update: PR for intermediate release here:
https://github.com/elastic/kibana/pull/203184 (Merged)

## Summary

Adds ability to run actions for backfill rule runs.

- Updates schedule backfill API to accept `run_actions` parameter to
specify whether to run actions for backfill.
- Schedule API accepts any action where `frequency.notifyWhen ===
'onActiveAlert'`. If a rule has multiple actions where some are
`onActiveAlert` and some are `onThrottleInterval`, the invalid actions
will be stripped and a warning returned in the schedule response but
valid actions will be scheduled.
- Connector IDs are extracted and stored as references in the ad hoc run
params saved object
- Any actions that result from a backfill task run are scheduled as low
priority tasks

## To Verify

1. Create a detection rule. Make sure you have some past data that the
rule can run over in order to generate actions. Make sure you add
actions to the rule. For testing, I added some conditional actions so I
could see actions running only on backfill runs using
`kibana.alert.rule.execution.type: "manual"`. Create actions with and
without summaries.
2. Schedule a backfill either directly via the API or using the
detection UI. Verify that actions are run for the backfill runs that
generate alerts.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-01-20 10:03:33 -05:00
Kibana Machine
221f1b100f skip failing test suite (#193876) 2025-01-11 06:07:06 +11:00
Ying Mao
8a9202ed8e
Add ".reindexed-v8-" prefix to the valid prefixes list (#204819)
As part of v9.0 readiness, we reindex the indices in v.8 but still has
data from v.7x.
As a result of the process, the reindexed indices get `.reindexed-v8-`
prefix.
This PR add that prefix to the valid prefixes list.


# To verify:

Run Kibana and ES in 7.17 (use `-E path.data=your-data-path` to keep the
data in your local)
Create some rules that generate alerts (Observability rules to have AAD)
Let them run for a while.
Stop Kibana and ES, switch to 8.x branch and run ES and Kibana again
Open the Upgrade Assistant.
It should show the `.internal.alerts-*` indices 
Click on them and start reindexing on the opened flyout.
Check that `.reindexed-v8-internal.alerts-*` index has been created
Let you rules run for a while again.
Your alerts should be updated and there shouldn't be any error on your
terminal.

---------

Co-authored-by: Ersin Erdal <ersin.erdal@elastic.co>
Co-authored-by: Ersin Erdal <92688503+ersin-erdal@users.noreply.github.com>
2025-01-07 21:50:52 +01:00
Paul Tavares
b1957ae209
[Stack Connectors][Microsoft Defender] Adds new connector for Microsoft Defender for Endpoint (#203183)
## Summary

- New connector for Microsoft Defender for Endpoint. To be used in
support of Security Solution Bi-Directional response actions.
2025-01-07 10:25:27 -05:00
Alexi Doak
23a5c6d2db
[ResponseOps] Granular Connector RBAC (#203503)
Part of https://github.com/elastic/kibana/issues/180908

## Summary

**EDR Connector Subfeature Privilege**
This PR creates a new EDR connector sub-feature privilege under the read
privilege for connectors. The read privilege currently allows users to
execute connectors, and this new privilege will limit some of the
connectors that can be executed. When the EDR privilege is turned on,
users will be able to execute EDR connectors, and when it is off they
will not execute. This new privilege includes SentinelOne and
Crowdstrike connectors.

To determine which connectors are considered EDR connectors, we
leverage`getKibanaPrivileges` in the connector type definition. I
removed the restrictions to use this field only for system actions and
renamed `getSystemActionKibanaPrivileges` to
`getActionKibanaPrivileges`. I also added a field, `subFeatureType `, to
the connector type definition to help disable testing/executing an
connectors that are restricted under a sub-feature.

**EDR Connector Execution for Testing**
The execution of EDR connectors using the API is limited to a single
sub-action for testing purposes. This ensures users can still
configure/test EDR connectors. In a separate
[PR](https://github.com/elastic/kibana/pull/204804), I added back the
SentinelOne and Crowdstrike params UIs with options restricted to one
sub-action.

**Rule API and Feature Configuration Updates**
Validation has been added to the rule APIs to enforce restrictions on
adding EDR connectors. The connector feature configuration has been
updated to include a new feature ID, EdrForSecurityFeature, which
ensures that EDR connectors are hidden on the rule form.
Note: I saw that EDR connectors are also temporarily restricted in the
Security Solution UI. To streamline this, I removed the
`isBidirectionalConnectorType` check in `action_type_registry.ts`.
Instead, I removed `SecurityConnectorFeatureId` from the
`supportedFeatureIds` of the SentinelOne connector type definition.


### Checklist

Check the PR satisfies following conditions. 

- [ ] [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


## To test

**EDR Connector Subfeature Privilege**
1. Create a new role and disable EDR connectors under the Actions and
Connectors privilege
2. Create a new user and assign that role to user
3. Create a Sentinel One connector (It doesn't need to work, you can use
fake values for the url and token)
4. Login as the new user and run the following in Dev Tools to verify
that you aren't authorized execute the Sentinel One connector
```
POST kbn:/api/actions/connector/$CONNECTOR_ID/_execute
{
  "params": {
    "subAction": "getAgents",
    "subActionParams": {}
  }
}
```
7. Update the role to enable EDR connectors and repeat the steps to
verify that you are authorized to run the connector. (It will fail but
verify it's not Unauthorized)

**EDR Connector Execution for Testing**
1. Enable the EDR connectors privilege in the role you created above and
log in as the user you created above.
2. Run the following in Dev Tools to verify that you are authorized
execute the Sentinel One connector using only the `getAgents`
sub-action. (It will fail but verify it's not `Unauthorized`)
```
POST kbn:/api/actions/connector/$CONNECTOR_ID/_execute
{
  "params": {
    "subAction": "getAgents",
    "subActionParams": {}
  }
}
```
3. Run it again but replace the `subAction` with `isolateHost`. Verify
that you get an unauthorized error.

**Rule API and Feature Configuration Updates**
1. 1. Enable the EDR connectors privilege in the role you created above
and log in as the user you created above.
2. Go to Stack Management
3. Try to create a rule, and verify that you don't see the SentinelOne
connector.
4. Try to create a rule using the API and add your SentinelOne
connector, verify that the API throws an error.
```
POST kbn:/api/alerting/rule
{
  "tags": [],
  "params": {},
  "schedule": {
    "interval": "1m"
  },
  "consumer": "alerts",
  "name": "Always firing rule",
  "rule_type_id": "example.always-firing",
  "actions": [
    {
      "group": "small",
      "id": "$CONNECTOR_ID",
      "params": {
        "subAction": "isolateAgent",
        "subActionParams": {}
      },
      "frequency": {
        "notify_when": "onActionGroupChange",
        "throttle": null,
        "summary": false
      }
    }
  ],
  "alert_delay": {
    "active": 1
  }
}
```
5. You can test the same behaviors when trying to add a SentinelOne
connector to existing rules.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-06 10:53:35 -08:00
Antonio
98cc4b153f
[ResponseOps][Rules] Move synthetic rule types' params to @kbn/response-ops-rule-params (#204582)
Connected with #195187

## Summary

- Moved params of synthetic status monitor rule type to
`/response-ops/rule_params/synthetics_monitor_status/`
- Moved params of TLS rule type to
`/response-ops/rule_params/synthetics_tls/`

I created a follow-up issue to handle the places where io-ts is used for
params validation in `observability/plugins/synthetics`. #205207

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-03 13:20:03 +01:00
Gerard Soldevila
49df29609e
Sustainable Kibana Architecture: Move modules owned by @elastic/response-ops (#202836)
## Summary

This PR aims at relocating some of the Kibana modules (plugins and
packages) into a new folder structure, according to the _Sustainable
Kibana Architecture_ initiative.

> [!IMPORTANT]
> * We kindly ask you to:
> * Manually fix the errors in the error section below (if there are
any).
> * Search for the `packages[\/\\]` and `plugins[\/\\]` patterns in the
source code (Babel and Eslint config files), and update them
appropriately.
> * Manually review
`.buildkite/scripts/pipelines/pull_request/pipeline.ts` to ensure that
any CI pipeline customizations continue to be correctly applied after
the changed path names
> * Review all of the updated files, specially the `.ts` and `.js` files
listed in the sections below, as some of them contain relative paths
that have been updated.
> * Think of potential impact of the move, including tooling and
configuration files that can be pointing to the relocated modules. E.g.:
>     * customised eslint rules
>     * docs pointing to source code

> [!NOTE]
> * This PR has been auto-generated.
> * Any manual contributions will be lost if the 'relocate' script is
re-run.
> * Try to obtain the missing reviews / approvals before applying manual
fixes, and/or keep your changes in a .patch / git stash.
> * Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.

Are you trying to rebase this PR to solve merge conflicts? Please follow
the steps describe
[here](https://elastic.slack.com/archives/C07TCKTA22E/p1734019532879269?thread_ts=1734019339.935419&cid=C07TCKTA22E).

#### 9 plugin(s) are going to be relocated:

| Id | Target folder |
| -- | ------------- |
| `@kbn/actions-plugin` | `x-pack/platform/plugins/shared/actions` |
| `@kbn/alerting-plugin` | `x-pack/platform/plugins/shared/alerting` |
| `@kbn/cases-plugin` | `x-pack/platform/plugins/shared/cases` |
| `@kbn/event-log-plugin` | `x-pack/platform/plugins/shared/event_log` |
| `@kbn/rule-registry-plugin` |
`x-pack/platform/plugins/shared/rule_registry` |
| `@kbn/stack-alerts-plugin` |
`x-pack/platform/plugins/shared/stack_alerts` |
| `@kbn/stack-connectors-plugin` |
`x-pack/platform/plugins/shared/stack_connectors` |
| `@kbn/task-manager-plugin` |
`x-pack/platform/plugins/shared/task_manager` |
| `@kbn/triggers-actions-ui-plugin` |
`x-pack/platform/plugins/shared/triggers_actions_ui` |




#### 12 packages(s) are going to be relocated:

| Id | Target folder |
| -- | ------------- |
| `@kbn/actions-types` |
`src/platform/packages/shared/kbn-actions-types` |
| `@kbn/alerting-comparators` |
`x-pack/platform/packages/shared/kbn-alerting-comparators` |
| `@kbn/alerting-state-types` |
`x-pack/platform/packages/private/kbn-alerting-state-types` |
| `@kbn/alerting-types` |
`src/platform/packages/shared/kbn-alerting-types` |
| `@kbn/alerts-as-data-utils` |
`src/platform/packages/shared/kbn-alerts-as-data-utils` |
| `@kbn/alerts-grouping` |
`x-pack/solutions/observability/packages/kbn-alerts-grouping` |
| `@kbn/alerts-ui-shared` |
`src/platform/packages/shared/kbn-alerts-ui-shared` |
| `@kbn/cases-components` |
`src/platform/packages/shared/kbn-cases-components` |
| `@kbn/grouping` | `src/platform/packages/shared/kbn-grouping` |
| `@kbn/response-ops-rule-params` |
`src/platform/packages/private/response-ops/rule_params` |
| `@kbn/rrule` | `src/platform/packages/shared/kbn-rrule` |
| `@kbn/triggers-actions-ui-types` |
`src/platform/packages/shared/kbn-triggers-actions-ui-types` |


<details open>
<summary>Script errors</summary>

```
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/pgayvallet/DEV/workspaces/elastic/kibana/x-pack/platform/plugins/shared/alerting/README.md:257
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/pgayvallet/DEV/workspaces/elastic/kibana/x-pack/platform/plugins/shared/stack_connectors/README.md:411
```

</details><details >
<summary>Updated relative paths</summary>

```
src/platform/packages/private/response-ops/rule_params/jest.config.js:12
src/platform/packages/private/response-ops/rule_params/tsconfig.json:2
src/platform/packages/private/response-ops/rule_params/tsconfig.type_check.json:2
src/platform/packages/private/response-ops/rule_params/tsconfig.type_check.json:20
src/platform/packages/shared/kbn-actions-types/jest.config.js:12
src/platform/packages/shared/kbn-actions-types/tsconfig.json:2
src/platform/packages/shared/kbn-actions-types/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-actions-types/tsconfig.type_check.json:22
src/platform/packages/shared/kbn-alerting-types/jest.config.js:12
src/platform/packages/shared/kbn-alerting-types/tsconfig.json:2
src/platform/packages/shared/kbn-alerting-types/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-alerting-types/tsconfig.type_check.json:25
src/platform/packages/shared/kbn-alerting-types/tsconfig.type_check.json:34
src/platform/packages/shared/kbn-alerting-types/tsconfig.type_check.json:40
src/platform/packages/shared/kbn-alerting-types/tsconfig.type_check.json:43
src/platform/packages/shared/kbn-alerts-as-data-utils/jest.config.js:12
src/platform/packages/shared/kbn-alerts-as-data-utils/tsconfig.json:2
src/platform/packages/shared/kbn-alerts-as-data-utils/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-alerts-ui-shared/jest.config.js:12
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.json:2
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:121
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:28
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:49
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:52
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:61
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:64
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:73
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:79
src/platform/packages/shared/kbn-alerts-ui-shared/tsconfig.type_check.json:82
src/platform/packages/shared/kbn-cases-components/jest.config.js:12
src/platform/packages/shared/kbn-cases-components/tsconfig.json:2
src/platform/packages/shared/kbn-cases-components/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-grouping/jest.config.js:12
src/platform/packages/shared/kbn-grouping/tsconfig.json:2
src/platform/packages/shared/kbn-grouping/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-grouping/tsconfig.type_check.json:24
src/platform/packages/shared/kbn-grouping/tsconfig.type_check.json:36
src/platform/packages/shared/kbn-rrule/jest.config.js:12
src/platform/packages/shared/kbn-rrule/tsconfig.json:2
src/platform/packages/shared/kbn-rrule/tsconfig.type_check.json:2
src/platform/packages/shared/kbn-triggers-actions-ui-types/jest.config.js:12
src/platform/packages/shared/kbn-triggers-actions-ui-types/tsconfig.json:2
src/platform/packages/shared/kbn-triggers-actions-ui-types/tsconfig.type_check.json:2
x-pack/platform/packages/private/kbn-alerting-state-types/jest.config.js:10
x-pack/platform/packages/private/kbn-alerting-state-types/tsconfig.json:2
x-pack/platform/packages/private/kbn-alerting-state-types/tsconfig.type_check.json:2
x-pack/platform/packages/private/kbn-alerting-state-types/tsconfig.type_check.json:20
x-pack/platform/packages/shared/kbn-alerting-comparators/jest.config.js:10
x-pack/platform/packages/shared/kbn-alerting-comparators/tsconfig.json:2
x-pack/platform/packages/shared/kbn-alerting-comparators/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/actions/docs/openapi/README.md:5
x-pack/platform/plugins/shared/actions/jest.config.js:10
x-pack/platform/plugins/shared/actions/jest.integration.config.js:10
x-pack/platform/plugins/shared/actions/server/integration_tests/axios_utils_connection.test.ts:35
x-pack/platform/plugins/shared/actions/server/integration_tests/axios_utils_proxy.test.ts:34
x-pack/platform/plugins/shared/actions/server/lib/custom_host_settings.test.ts:24
x-pack/platform/plugins/shared/actions/server/manual_tests/forward_proxy.js:46
x-pack/platform/plugins/shared/actions/server/sub_action_framework/README.md:358
x-pack/platform/plugins/shared/actions/tsconfig.json:2
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:100
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:103
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:106
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:112
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:115
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:118
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:121
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:124
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:19
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:46
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:49
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:52
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:55
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:58
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:61
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:64
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:67
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:70
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:73
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:76
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:79
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:82
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:85
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:88
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:91
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:94
x-pack/platform/plugins/shared/actions/tsconfig.type_check.json:97
x-pack/platform/plugins/shared/alerting/README.md:257
x-pack/platform/plugins/shared/alerting/README.md:274
x-pack/platform/plugins/shared/alerting/README.md:281
x-pack/platform/plugins/shared/alerting/jest.config.js:10
x-pack/platform/plugins/shared/alerting/jest.integration.config.js:10
x-pack/platform/plugins/shared/alerting/tsconfig.json:2
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:100
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:103
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:106
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:109
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:112
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:115
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:118
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:121
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:124
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:127
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:130
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:133
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:136
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:139
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:142
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:145
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:148
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:154
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:157
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:160
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:163
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:166
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:169
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:172
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:175
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:178
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:181
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:184
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:187
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:19
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:190
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:193
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:196
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:199
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:202
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:205
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:208
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:49
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:52
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:55
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:58
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:61
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:64
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:67
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:70
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:73
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:76
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:79
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:82
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:85
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:88
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:91
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:94
x-pack/platform/plugins/shared/alerting/tsconfig.type_check.json:97
x-pack/platform/plugins/shared/cases/jest.config.js:10
x-pack/platform/plugins/shared/cases/tsconfig.json:10
x-pack/platform/plugins/shared/cases/tsconfig.json:2
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:100
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:103
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:106
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:112
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:115
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:118
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:12
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:121
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:124
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:127
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:130
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:133
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:136
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:139
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:142
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:145
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:148
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:151
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:154
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:157
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:160
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:163
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:166
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:172
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:178
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:181
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:184
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:187
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:19
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:190
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:193
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:196
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:199
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:202
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:205
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:208
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:43
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:46
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:49
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:52
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:55
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:58
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:61
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:64
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:67
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:70
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:73
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:76
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:79
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:82
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:91
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:94
x-pack/platform/plugins/shared/cases/tsconfig.type_check.json:97
x-pack/platform/plugins/shared/event_log/README.md:330
x-pack/platform/plugins/shared/event_log/jest.config.js:10
x-pack/platform/plugins/shared/event_log/jest.integration.config.js:10
x-pack/platform/plugins/shared/event_log/scripts/create_schemas.js:257
x-pack/platform/plugins/shared/event_log/server/es/context.test.ts:14
x-pack/platform/plugins/shared/event_log/server/es/names.test.ts:10
x-pack/platform/plugins/shared/event_log/tsconfig.json:2
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:20
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:26
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:29
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:32
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:35
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:38
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:41
x-pack/platform/plugins/shared/event_log/tsconfig.type_check.json:47
x-pack/platform/plugins/shared/rule_registry/jest.config.js:10
x-pack/platform/plugins/shared/rule_registry/scripts/generate_ecs_fieldmap/index.js:19
x-pack/platform/plugins/shared/rule_registry/tsconfig.json:12
x-pack/platform/plugins/shared/rule_registry/tsconfig.json:2
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:13
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:20
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:23
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:32
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:35
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:38
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:41
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:44
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:50
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:53
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:56
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:59
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:62
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:65
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:68
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:71
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:74
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:77
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:80
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:83
x-pack/platform/plugins/shared/rule_registry/tsconfig.type_check.json:86
x-pack/platform/plugins/shared/stack_alerts/jest.config.js:10
x-pack/platform/plugins/shared/stack_alerts/server/rule_types/index_threshold/README.md:125
x-pack/platform/plugins/shared/stack_alerts/tsconfig.json:2
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:100
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:103
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:106
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:109
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:112
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:115
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:118
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:121
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:124
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:127
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:130
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:133
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:136
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:139
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:142
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:148
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:151
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:154
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:19
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:31
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:34
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:40
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:43
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:46
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:49
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:52
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:55
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:58
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:61
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:64
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:67
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:70
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:73
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:76
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:79
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:82
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:85
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:88
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:91
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:94
x-pack/platform/plugins/shared/stack_alerts/tsconfig.type_check.json:97
x-pack/platform/plugins/shared/stack_connectors/README.md:411
x-pack/platform/plugins/shared/stack_connectors/README.md:417
x-pack/platform/plugins/shared/stack_connectors/jest.config.js:10
x-pack/platform/plugins/shared/stack_connectors/tsconfig.json:2
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:101
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:107
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:110
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:113
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:20
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:29
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:32
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:35
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:38
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:41
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:44
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:50
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:53
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:56
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:59
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:62
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:65
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:68
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:71
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:74
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:77
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:80
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:83
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:89
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:92
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:95
x-pack/platform/plugins/shared/stack_connectors/tsconfig.type_check.json:98
x-pack/platform/plugins/shared/task_manager/README.md:64
x-pack/platform/plugins/shared/task_manager/jest.config.js:10
x-pack/platform/plugins/shared/task_manager/jest.integration.config.js:10
x-pack/platform/plugins/shared/task_manager/tsconfig.json:2
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:18
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:21
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:24
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:27
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:30
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:33
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:36
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:39
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:42
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:45
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:48
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:51
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:54
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:57
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:60
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:63
x-pack/platform/plugins/shared/task_manager/tsconfig.type_check.json:69
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1229
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1283
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1332
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1404
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1418
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1419
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1534
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1548
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1618
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:1632
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:312
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:335
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:336
x-pack/platform/plugins/shared/triggers_actions_ui/README.md:393
x-pack/platform/plugins/shared/triggers_actions_ui/jest.config.js:10
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.json:12
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.json:2
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:102
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:105
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:108
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:111
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:114
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:117
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:120
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:123
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:126
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:129
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:132
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:135
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:138
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:14
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:144
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:147
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:153
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:156
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:159
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:162
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:165
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:171
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:174
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:177
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:180
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:183
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:186
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:189
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:192
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:195
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:198
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:21
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:33
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:36
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:39
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:42
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:45
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:48
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:51
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:57
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:60
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:63
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:66
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:72
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:75
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:78
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:81
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:87
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:90
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:93
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:96
x-pack/platform/plugins/shared/triggers_actions_ui/tsconfig.type_check.json:99
x-pack/solutions/observability/packages/kbn-alerts-grouping/jest.config.js:12
x-pack/solutions/observability/packages/kbn-alerts-grouping/tsconfig.json:2
x-pack/solutions/observability/packages/kbn-alerts-grouping/tsconfig.type_check.json:2
x-pack/solutions/observability/packages/kbn-alerts-grouping/tsconfig.type_check.json:39
```

</details>

---------

Co-authored-by: pgayvallet <pierre.gayvallet@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-26 15:49:50 +01:00
Julia
43abe233d8
[ResponceOps][MaintenanceWindow] MX Pagination (#202539)
Fixes: https://github.com/elastic/kibana/issues/198252

In this PR I introduced pagination in MW frontend part and also pass
filters(status and search) to the backend. Pagination arguments were
passed to backend in another PR:
https://github.com/elastic/kibana/pull/197172/files#diff-f375a192a08a6db3fbb6b6e927cecaab89ff401efc4034f00761e8fc4478734c

How to test:
Go to Maintenance Window, create more than 10 MW with different
statuses. Try pagination, search on text and filter by status.

Check the PR satisfies following conditions:

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-21 21:01:11 +01:00
Alexi Doak
1ba2716c7b
[ResponseOps] Granular Connector RBAC - adding API key to event log (#204114)
Part of https://github.com/elastic/kibana/issues/180908

## Summary

This change is part of adding granular RBAC for SecuritySolution
connectors. In this PR, I updated the action executor to log API key
details when a connector is executed by a user authenticated via API
key. The public name and id of the API key are now included in the event
log.

### Checklist

Check the PR satisfies following conditions. 

- [ ] [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

### To verify

1. Create an API key
2. Create a connector that will successfully run, it doesn't have to be
SentinelOne.
3. Run the following with the ID and correct params for your connector
type.
```
curl -X POST "http://localhost:5601/api/actions/connector/$CONNECTOR_ID/_execute" -H 'Authorization: ApiKey $API_KEY' -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d'
{
  "params": {
    "message": "hi"
  }
}'
```
4. Go to dev tools and run the following query to verify that the API
key information is stored in the event log
```
GET /.kibana-event-log*/_search
{
  "sort": [
    {
      "@timestamp": {
        "order": "desc"
      }
    }
  ],
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "event.provider": {
              "value": "actions"
            }
          }
        }
      ]
    }
  }
```
2024-12-19 12:30:15 -06:00
Umberto Pepato
d5af2e031c
[ResponseOps][Alerts] Fix muted alerts query using wrong filter (#204182)
## Summary

Reverts the `getMutedAlerts` filter to use rule ids instead of rule type
ids that caused the muted alerts state to be always empty.

## To verify

1. Create a rule that fire alerts
2. Navigate to `Stack management > Alerts`
3. Click on any alert actions menu (•••)
4. Toggle on and off the alert muted state and check that the action
updates accordingly and the slashed bell icon appears in the status cell
when muted

## Release note

Fix alert mute/unmute action
2024-12-18 07:23:29 -06:00
Dima Arnautov
fd986432e8
[ML] Transforms: Support wildcards in the alerting rule flyout (#204226)
## Summary


Closes #166810

- Adds wildcards support for the tranform health alerting rule. 
- Populates transforms with alerting rules based on wildcard
expressions.
- Excludes `alerting_rules` from the JSON tab.  

### Checklist

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [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
2024-12-17 07:28:39 -06:00
Janki Salvi
279f4aec6f
[ResponseOps][Rules] Delete legacy routes (#203148)
## Summary

Resolves https://github.com/elastic/kibana/issues/195179
Resolves https://github.com/elastic/kibana/issues/192558

This PR deletes deprecated legacy alerts routes `api/alerts/alert` in
v9.0.
It also updates docs to reflect the same.


### Checklist

- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials



### Release notes
Deleted deprecated alerts routes.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-16 08:35:28 -06:00
Maryam Saeidi
a0fe4e698a
[ES Query] Fix saving ECS group by fields for query DSL rule (#203769)
Fixes #203472

## Summary

|Rule|Group info|
|---|---|

|![image](55328973-d585-4148-a74f-d2c275b9989d)|

@elastic/response-ops What sort of test do you suggest to add for this
case?

### 🧪 How to run test

#### Deployment agnostic
- [x] Test on MKI
```
// Server
node scripts/functional_tests_server --config x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts

// Test
node scripts/functional_test_runner --config=x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts --grep="ElasticSearch query rule"
```
2024-12-16 09:16:43 +01:00
Charis Kalpakis
c2a1dd5813
security and spaces group1 config split 2024-12-13 18:08:29 +02:00
Kibana Machine
72d3eaba2b skip failing test suite (#196257) 2024-12-05 13:13:20 +11:00
Kibana Machine
37b68a1e6f skip failing test suite (#202337) 2024-12-05 13:05:53 +11:00
Christos Nasikas
a3496c9ca6
[ResponseOps][Alerting] Decouple feature IDs from consumers (#183756)
## Summary

This PR aims to decouple the feature IDs from the `consumer` attribute
of rules and alerts.

Towards: https://github.com/elastic/kibana/issues/187202
Fixes: https://github.com/elastic/kibana/issues/181559
Fixes: https://github.com/elastic/kibana/issues/182435

> [!NOTE]  
> Unfortunately, I could not break the PR into smaller pieces. The APIs
could not work anymore with feature IDs and had to convert them to use
rule type IDs. Also, I took the chance and refactored crucial parts of
the authorization class that in turn affected a lot of files. Most of
the changes in the files are minimal and easy to review. The crucial
changes are in the authorization class and some alerting APIs.

## Architecture

### Alerting RBAC model

The Kibana security uses Elasticsearch's [application
privileges](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-privileges.html#security-api-put-privileges).
This way Kibana can represent and store its privilege models within
Elasticsearch roles. To do that, Kibana security creates actions that
are granted by a specific privilege. Alerting uses its own RBAC model
and is built on top of the existing Kibana security model. The Alerting
RBAC uses the `rule_type_id` and `consumer` attributes to define who
owns the rule and the alerts procured by the rule. To connect the
`rule_type_id` and `consumer` with the Kibana security actions the
Alerting RBAC registers its custom actions. They are constructed as
`alerting:<rule-type-id>/<feature-id>/<alerting-entity>/<operation>`.
Because to authorizate a resource an action has to be generated and
because the action needs a valid feature ID the value of the `consumer`
should be a valid feature ID. For example, the
`alerting:siem.esqlRule/siem/rule/get` action, means that a user with a
role that grants this action can get a rule of type `siem.esqlRule` with
consumer `siem`.

### Problem statement

At the moment the `consumer` attribute should be a valid feature ID.
Though this approach worked well so far it has its limitation.
Specifically:

- Rule types cannot support more than one consumer.
- To associate old rules with a new feature ID required a migration on
the rule's SOs and the alerts documents.
- The API calls are feature ID-oriented and not rule-type-oriented.
- The framework has to be aware of the values of the `consumer`
attribute.
- Feature IDs are tightly coupled with the alerting indices leading to
[bugs](https://github.com/elastic/kibana/issues/179082).
- Legacy consumers that are not a valid feature anymore can cause
[bugs](https://github.com/elastic/kibana/issues/184595).
- The framework has to be aware of legacy consumers to handle edge
cases.
- The framework has to be aware of specific consumers to handle edge
cases.

### Proposed solution

This PR aims to decouple the feature IDs from consumers. It achieves
that a) by changing the way solutions configure the alerting privileges
when registering a feature and b) by changing the alerting actions. The
schema changes as:

```
// Old formatting
id: 'siem', <--- feature ID
alerting:['siem.queryRule']

// New formatting
id: 'siem', <--- feature ID
alerting: [{ ruleTypeId: 'siem.queryRule', consumers: ['siem'] }] <-- consumer same as the feature ID in the old formatting
```

The new actions are constructed as
`alerting:<rule-type-id>/<consumer>/<alerting-entity>/<operation>`. For
example `alerting:rule-type-id/my-consumer/rule/get`. The new action
means that a user with a role that grants this action can get a rule of
type `rule-type` with consumer `my-consumer`. Changing the action
strings is not considered a breaking change as long as the user's
permission works as before. In our case, this is true because the
consumer will be the same as before (feature ID), and the alerting
security actions will be the same. For example:

**Old formatting**

Schema:
```
id: 'logs', <--- feature ID
alerting:['.es-query'] <-- rule type ID
```

Generated action:

```
alerting:.es-query/logs/rule/get
```

**New formatting**

Schema:
```
id: 'siem', <--- feature ID
alerting: [{ ruleTypeId: '.es-query', consumers: ['logs'] }] <-- consumer same as the feature ID in the old formatting
```

Generated action:

```
alerting:.es-query/logs/rule/get <--- consumer is set as logs and the action is the same as before
```

In both formating the actions are the same thus breaking changes are
avoided.

### Alerting authorization class
The alerting plugin uses and exports the alerting authorization class
(`AlertingAuthorization`). The class is responsible for handling all
authorization actions related to rules and alerts. The class changed to
handle the new actions as described in the above sections. A lot of
methods were renamed, removed, and cleaned up, all method arguments
converted to be an object, and the response signature of some methods
changed. These changes affected various pieces of the code. The changes
in this class are the most important in this PR especially the
`_getAuthorizedRuleTypesWithAuthorizedConsumers` method which is the
cornerstone of the alerting RBAC. Please review carefully.

### Instantiation of the alerting authorization class
The `AlertingAuthorizationClientFactory` is used to create instances of
the `AlertingAuthorization` class. The `AlertingAuthorization` class
needs to perform async operations upon instantiation. Because JS, at the
moment, does not support async instantiation of classes the
`AlertingAuthorization` class was assigning `Promise` objects to
variables that could be resolved later in other phases of the lifecycle
of the class. To improve readability and make the lifecycle of the class
clearer, I separated the construction of the class (initialization) from
the bootstrap process. As a result, getting the `AlertingAuthorization`
class or any client that depends on it (`getRulesClient` for example) is
an async operation.

### Filtering
A lot of routes use the authorization class to get the authorization
filter (`getFindAuthorizationFilter`), a filter that, if applied,
returns only the rule types and consumers the user is authorized to. The
method that returns the filter was built in a way to also support
filtering on top of the authorization filter thus coupling the
authorized filter with router filtering. I believe these two operations
should be decoupled and the filter method should return a filter that
gives you all the authorized rule types. It is the responsibility of the
consumer, router in our case, to apply extra filters on top of the
authorization filter. For that reason, I made all the necessary changes
to decouple them.

### Legacy consumers & producer
A lot of rules and alerts have been created and are still being created
from observability with the `alerts` consumer. When the Alerting RBAC
encounters a rule or alert with `alerts` as a consumer it falls back to
the `producer` of the rule type ID to construct the actions. For example
if a rule with `ruleTypeId: .es-query` and `consumer: alerts` the
alerting action will be constructed as
`alerting:.es-query/stackAlerts/rule/get` where `stackRules` is the
producer of the `.es-query` rule type. The `producer` is used to be used
in alerting authorization but due to its complexity, it was deprecated
and only used as a fallback for the `alerts` consumer. To avoid breaking
changes all feature privileges that specify access to rule types add the
`alerts` consumer when configuring their alerting privileges. By moving
the `alerts` consumer to the registration of the feature we can stop
relying on the `producer`. The `producer` is not used anymore in the
authorization class. In the next PRs the `producer` will removed
entirely.

### Routes
The following changes were introduced to the alerting routes:

- All related routes changed to be rule-type oriented and not feature ID
oriented.
- All related routes support the `ruleTypeIds` and the `consumers`
parameters for filtering. In all routes, the filters are constructed as
`ruleTypeIds: ['foo'] AND consumers: ['bar'] AND authorizationFilter`.
Filtering by consumers is important. In o11y for example, we do not want
to show ES rule types with the `stackAlerts` consumer even if the user
has access to them.
- The `/internal/rac/alerts/_feature_ids` route got deleted as it was
not used anywhere in the codebase and it was internal.

All the changes in the routes are related to internal routes and no
breaking changes are introduced.

### Constants
I moved the o11y and stack rule type IDs to `kbn-rule-data-utils` and
exported all security solution rule type IDs from
`kbn-securitysolution-rules`. I am not a fan of having a centralized
place for the rule type IDs. Ideally, consumers of the framework should
specify keywords like `observablility` (category or subcategory) or even
`apm.*` and the framework should know which rule type IDs to pick up. I
think it is out of the scope of the PR, and at the moment it seems the
most straightforward way to move forward. I will try to clean up as much
as possible in further iterations. If you are interested in the upcoming
work follow this issue https://github.com/elastic/kibana/issues/187202.

### Other notable code changes
- Change all instances of feature IDs to rule type IDs.
- `isSiemRuleType`: This is a temporary helper function that is needed
in places where we handle edge cases related to security solution rule
types. Ideally, the framework should be agnostic to the rule types or
consumers. The plan is to be removed entirely in further iterations.
- Rename alerting `PluginSetupContract` and `PluginStartContract` to
`AlertingServerSetup` and `AlertingServerStart`. This made me touch a
lot of files but I could not resist.
- `filter_consumers` was mistakenly exposed to a public API. It was
undocumented.
- Files or functions that were not used anywhere in the codebase got
deleted.
- Change the returned type of the `list` method of the
`RuleTypeRegistry` from `Set<RegistryRuleType>` to `Map<string,
RegistryRuleType>`.
- Assertion of `KueryNode` in tests changed to an assertion of KQL using
`toKqlExpression`.
- Removal of `useRuleAADFields` as it is not used anywhere.

## Testing

> [!CAUTION]
> It is very important to test all the areas of the application where
rules or alerts are being used directly or indirectly. Scenarios to
consider:
> - The correct rules, alerts, and aggregations on top of them are being
shown as expected as a superuser.
> - The correct rules, alerts, and aggregations on top of them are being
shown as expected by a user with limited access to certain features.
> - The changes in this PR are backward compatible with the previous
users' permissions.

### Solutions
Please test and verify that:
- All the rule types you own with all possible combinations of
permissions both in ESS and in Serverless.
- The consumers and rule types make sense when registering the features.
- The consumers and rule types that are passed to the components are the
intended ones.

### ResponseOps
The most important changes are in the alerting authorization class, the
search strategy, and the routes. Please test:
- The rules we own with all possible combinations of permissions.
- The stack alerts page and its solution filtering.
- The categories filtering in the maintenance window UI.

## Risks
> [!WARNING]
> The risks involved in this PR are related to privileges. Specifically:
> - Users with no privileges can access rules and alerts they do not
have access to.
> - Users with privileges cannot access rules and alerts they have
access to.
>
> An excessive list of integration tests is in place to ensure that the
above scenarios will not occur. In the case of a bug, we could a)
release an energy release for serverless and b) backport the fix in ESS.
Given that this PR is intended to be merged in 8.17 we have plenty of
time to test and to minimize the chances of risks.

## FQA

- I noticed that a lot of routes support the `filter` parameter where we
can pass an arbitrary KQL filter. Why we do not use this to filter by
the rule type IDs and the consumers and instead we introduce new
dedicated parameters?

The `filter` parameter should not be exposed in the first place. It
assumes that the consumer of the API knows the underlying structure and
implementation details of the persisted storage API (SavedObject client
API). For example, a valid filter would be
`alerting.attributes.rule_type_id`. In this filter the consumer should
know a) the name of the SO b) the keyword `attributes` (storage
implementation detail) and c) the name of the attribute as it is
persisted in ES (snake case instead of camel case as it is returned by
the APIs). As there is no abstraction layer between the SO and the API,
it makes it very difficult to make changes in the persistent schema or
the APIs. For all the above I decided to introduce new query parameters
where the alerting framework has total control over it.

- I noticed in the code a lot of instances where the consumer is used.
Should not remove any logic around consumers?

This PR is a step forward making the framework as agnostic as possible.
I had to keep the scope of the PR as contained as possible. We will get
there. It needs time :).

- I noticed a lot of hacks like checking if the rule type is `siem`.
Should not remove the hacks?

This PR is a step forward making the framework as agnostic as possible.
I had to keep the scope of the PR as contained as possible. We will get
there. It needs time :).

- I hate the "Role visibility" dropdown. Can we remove it?

I also do not like it. The goal is to remove it. Follow
https://github.com/elastic/kibana/issues/189997.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@elastic.co>
Co-authored-by: Paula Borgonovi <159723434+pborgonovi@users.noreply.github.com>
2024-12-03 12:21:53 +02:00
Jiawei Wu
7e71e5a1eb
[Response Ops] Remove ephemeral tasks from action and alerting plugins (#197421)
## Summary
Issue: https://github.com/elastic/kibana/issues/151461

Removes all reference to ephemeral tasks in the alerting and actions
plugin. As well as unit and E2E tests while maintaining backwards
compatibility for `xpack.alerting.maxEphemeralActionsPerAlert` flag.


### Checklist
- [x] [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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-12-02 14:06:01 -08:00
Gerard Soldevila
b24fdf5d3f
Sustainable Kibana Architecture: Categorise straightforward packages (#199630)
## Summary

This PR is part of the Kibana Sustainable Architecture effort.

The goal is to start categorising Kibana packages into _generic
platform_ (`group: "platform"`) vs _solution-specific_.

```
group?: 'search' | 'security' | 'observability' | 'platform'
visibility?: 'private' | 'shared'
```
Uncategorised modules are considered to be `group: 'common', visibility:
'shared'` by default.

We want to prevent code from solution A to depend on code from solution
B.
Thus, the rules are pretty simple:

* Modules can only depend on:
  * Modules in the same group
  * OR modules with 'shared' visibility
* Modules in `'observability', 'security', 'search'` groups are
mandatorily `visibility: "private"`.

Long term, the goal is to re-organise packages into dedicated folders,
e.g.:

```
x-pack/platform/plugins/private
x-pack/observability/packages
```

For this first wave, we have categorised packages that seem
"straightforward":
* Any packages that have:
  * at least one dependant module
  * all dependants belong to the same group
* Categorise all Core packages:
  * `@kbn/core-...-internal` => _platform/private_
  * everything else => _platform/shared_
* Categorise as _platform/shared_ those packages that:
  * Have at least one dependant in the _platform_ group.
  * Don't have any `devOnly: true` dependants.

### What we ask from you, as CODEOWNERS of the _package manifests_, is
that you confirm that the categorisation is correct:

* `group: "platform", visibility: "private"` if it's a package that
should only be used from platform code, not from any solution code. It
will be loaded systematically in all serverless flavors, but solution
plugins and packages won't be able to `import` from it.
* `group: "platform", visibility: "shared"` if it's a package that can
be consumed by both platform and solutions code. It will be loaded
systematically in all serverless flavors, and anybody can import / use
code from it.
* `group: "observability" | "security" | "search", visibility:
"private"` if it's a package that is intented to be used exclusively
from a given solution. It won't be accessible nor loaded from other
solutions nor platform code.

Please refer to
[#kibana-sustainable-architecture](https://elastic.slack.com/archives/C07TCKTA22E)
for any related questions.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-22 10:33:25 +01:00
Kibana Machine
e5bbd2d31e
Authorized route migration for routes owned by @elastic/response-ops (#198188)
### Authz API migration for authorized routes

This PR migrates `access:<privilege>` tags used in route definitions to
new security configuration.
Please refer to the documentation for more information: [Authorization
API](https://docs.elastic.dev/kibana-dev-docs/key-concepts/security-api-authorization)

### **Before migration:**
Access control tags were defined in the `options` object of the route:

```ts
router.get({
  path: '/api/path',
  options: {
    tags: ['access:<privilege_1>', 'access:<privilege_2>'],
  },
  ...
}, handler);
```

### **After migration:**
Tags have been replaced with the more robust
`security.authz.requiredPrivileges` field under `security`:

```ts
router.get({
  path: '/api/path',
  security: {
    authz: {
      requiredPrivileges: ['<privilege_1>', '<privilege_2>'],
    },
  },
  ...
}, handler);
```

### What to do next?
1. Review the changes in this PR.
2. You might need to update your tests to reflect the new security
configuration:
  - If you have tests that rely on checking `access` tags.
  - If you have snapshot tests that include the route definition.
- If you have FTR tests that rely on checking unauthorized error
message. The error message changed to also include missing privileges.

## Any questions?
If you have any questions or need help with API authorization, please
reach out to the `@elastic/kibana-security` team.

---------

Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co>
2024-11-20 03:03:48 -06:00
Ying Mao
51ac51fa2b
Fixing flaky tests (#199562)
Resolves https://github.com/elastic/kibana/issues/196226
Resolves https://github.com/elastic/kibana/issues/197352
Resolves https://github.com/elastic/kibana/issues/198631
Resolves https://github.com/elastic/kibana/issues/199722
Resolves https://github.com/elastic/kibana/issues/199351
Resolves https://github.com/elastic/kibana/issues/199580

## Summary

* Fixes flaky `find` test that relied on relative dates to use a fixed
offset in the find query params. This closes multiple issues because it
is a security and spaces test that uses the same test for different
user/space scenarios
* Fixes flaky `schedule` test that was checking AAD on an
`ad_hoc_run_param` object after backfill was complete and the SO was
completed. Added artificial delay to rule execution so the backfill
doesn't run as quickly.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-12 19:44:24 -06:00
Ying Mao
be949d66e4
[Response Ops][Task Manager] Adding background task to mark removed task types as unrecognized (#199057)
Resolves https://github.com/elastic/kibana/issues/192686

## Summary

Creates a background task to search for removed task types and mark them
as unrecognized. Removes the current logic that does this during the
task claim cycle for both task claim strategies.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-11 15:17:46 -05:00
Kibana Machine
ceec5aeb3e skip failing test suite (#196226) 2024-11-08 12:20:28 +11:00
Shahzad
96c9b5b5d0
[Synthetics] Handle private locations simultaneous edits !! (#195874)
## Summary

Fixes https://github.com/elastic/kibana/issues/190801 !!

Handle private locations simultaneous edits !! 

Registered a new saved object to handle private locations properly.
Instead of using a singleton, now each private location will be
represented by it's own saved object.

### Existing private locations
When we are doing any write operation, we migrate them to new kind of
saved object and remove the legacy saved object type.


### Testing

- Create multiple private locations on main 
- Switch to branch and create few more locations
- Make sure all private locations are editable, deleteable and have been
migrated to new saved object types in the course

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-07 22:31:09 +01:00
Ying Mao
705c503182
Fixes flaky backfill tests. (#198592)
Resolves https://github.com/elastic/kibana/issues/192144
Resolves https://github.com/elastic/kibana/issues/198168
Resolves https://github.com/elastic/kibana/issues/197239

## Summary

Minor fixes to the backfill functional tests to try to reduce flakiness.
2024-11-07 07:49:36 -05:00
Janki Salvi
d81d0716a7
[ResponseOps][Connectors] Allow to use POST method for get case information in case management webhook (#197437)
## Summary

Resolves https://github.com/elastic/kibana/issues/178074

This PR allows to use POST method and JSON payload for body for get case
information in case management webhook.

<img width="1279" alt="Screenshot 2024-10-24 at 15 02 33"
src="https://github.com/user-attachments/assets/aaabc5b8-cd9e-46d6-aab8-85a27731bd88">

### How to test
- Create a case management webhook connector [as per
documentation](https://www.elastic.co/guide/en/kibana/master/cases-webhook-action-type.html)
- Use any public API which supports GET and POST methods 
- Use POST method for Get case information
- Verify that it validates the URL and JSON payload correctly 
- Test the connector using Test tab
- Create a rule with action using case management webhook connector
- Verify alerts are generated and action executed without any errors

### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [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
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
2024-11-07 12:44:54 +00:00
Julian Gernun
953d877df0
[Response Ops][Connectors] Refactor Jira Connector to use latest API only (#197787)
## Summary

Jira Cloud and Datacenter work using the same API urls. In this PR we
remove the calls to the capabilities API which was being used to know
the API url we needed to hit

To test it:
- Create Jira Cloud and Datacenter connectors
- Test all use cases related to them

Related to https://github.com/elastic/kibana/issues/189017

## Research Work

**getCapabilities, createIncident and getIncident** are always the same,
therefore ignored for the rest of this document

- getCapabilities: `/rest/capabilities`
- createIncident: `/rest/api/2/issue`
- getIncident: `/rest/api/2/issue`

## API links

- Cloud:
https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#version
- DC: https://docs.atlassian.com/software/jira/docs/api/REST/9.17.0/

### Expected API urls based on the API links

- Get issue types

- Cloud: `GET /rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes`
  - DC:`GET /rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes`

- Get fields by issue type
- Cloud: `GET
/rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}`
- DC:
`GET /rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}`

### API we hit

- Get issue types

- Cloud `GET
/rest/api/2/issue/createmeta?projectKeys=ROC&expand=projects.issuetypes.fields`
(variable name we are using is `getIssueTypesOldAPIURL`)
- DC `GET /rest/api/2/issue/createmeta/RES/issuetypes` (variable name is
`getIssueTypesUrl`)

- Get fields by issue type
- Cloud `GET
/rest/api/2/issue/createmeta?projectKeys=ROC&issuetypeIds={issueTypeId}&expand=projects.issuetypes.fields`
(variable name is `getIssueTypeFieldsOldAPIURL`)
- DC `GET /rest/api/2/issue/createmeta/RES/issuetypes/{issueTypeId}`
(variable name is `getIssueTypeFieldsUrl`)

#### Analysed use cases to retrieve API urls we hit

- created a case with JIRA Cloud as Connector
- did a connector test with JIRA Cloud as connector
- created a case with JIRA DC as connector
- did a connector test with JIRA DC as connector

### Conclusions

- We are not using the right endpoints for Cloud, we should update them
to use the same endpoints.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co>
Co-authored-by: adcoelho <antonio.coelho@elastic.co>
Co-authored-by: Antonio <antoniodcoelho@gmail.com>
Co-authored-by: Lisa Cawley <lcawley@elastic.co>
2024-11-07 11:47:29 +01:00
Christos Nasikas
669761be5e
[ResponseOps][Rules] Allow users to create rules with predefined non random IDs (#199119)
## Summary

This PR allows users to create rules with predefined nonrandom IDs. To
test it, try to create a rule with a predefined ID like `POST
/api/alerting/rule/<my_rule_id>`

Fixes: https://github.com/elastic/kibana/issues/182594

### Checklist

Delete any items that are not applicable to this PR.

- [x] [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

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#_add_your_labels)
2024-11-07 10:06:57 +02:00
Maryam Saeidi
b585ca658a
Migrate Custom threshold duplicated tests to the deployment agnostic framework (#198691)
Closes #183378
Closes #179095

## Summary
This PR moves the Custom threshold rule duplicated API integration tests
to the deployment agnostic test.

## How to run

To run serverless
```
node scripts/functional_tests_server --config x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts
node scripts/functional_test_runner --config x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts --grep="Custom Threshold rule"
```

To run stateful
```
node scripts/functional_tests_server --config x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts
node scripts/functional_test_runner --config x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts --grep="Custom Threshold rule"
```

### TODO

- [x] Test in MKI before merging


#### How to run tests on MKI

According to this
[discussion](https://github.com/elastic/observability-dev/issues/3519#issuecomment-2379914274),
we should test in MKI environment before merging. For details on how to
run in MKI, see [this section of the
document](https://docs.google.com/document/d/1tiax7xoDYwFXYZjRTgVKkVMjN-SQzBWk4yn1JY6Z5UY/edit#heading=h.ece2z8p74izh)
and [this
readme](https://github.com/elastic/kibana/blob/main/x-pack/test_serverless/README.md#run-tests-on-mki).

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-06 06:03:21 -06:00
Alexi Doak
9efe20e1e1
[ResponseOps] Remove 7.x deprecated kibana.yml settings (#198435)
Resolves https://github.com/elastic/kibana/issues/194622

## Summary

Removes the following deprecated configuration settings:

- `xpack.actions.customHostSettings.ssl.rejectUnauthorized`
- `xpack.actions.whitelistedHosts`
- `xpack.actions.rejectUnauthorized`
- `xpack.actions.proxyRejectUnauthorizedCertificates`
- `xpack.alerts.healthCheck`
- `xpack.alerts.invalidateApiKeysTask.interval`
- `xpack.alerts.invalidateApiKeysTask.removalDelay`
- `xpack.alerting.defaultRuleTaskTimeout`

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-04 11:47:52 -08:00
Mike Côté
7b05079d94
Wait for backfill SOs to be deleted before running the invalidate API key task (#198422)
Resolves https://github.com/elastic/kibana/issues/198168

Flaky test runners:
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7309
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7314
2024-10-31 13:38:48 -05:00
Ying Mao
322392fb28
[Response Ops][Alerting] Removing lifecycle executor from rule registry (#192576)
## Summary

All lifecycle rule types have been migrated to use the alerting
framework alerts client so the lifecycle executor in the rule registry
can be removed since it is no longer in use.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-10-31 12:30:47 -04:00
Mike Côté
14fa363053
Fix flaky connector adapters test (#198396)
Resolves https://github.com/elastic/kibana/issues/198388

In this PR, I'm increasing the rule frequency to avoid rule actions
running multiple times when asserting for the action to only have ran
once.

Flaky test runner:
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7307
2024-10-31 09:53:55 -04:00
Alexi Doak
e6c3e6e693
[ResponseOps] Cleanup alerting RBAC exception code (#197719)
Resolves https://github.com/elastic/response-ops-team/issues/250

## Summary

This PR eliminates the alerting RBAC exemption code. It removes all
references to `getAuthorizationModeBySource` and
`bulkGetAuthorizationModeBySource`, along with the corresponding legacy
RBAC usage counters. Additionally, downstream code paths that rely on
RBAC for authorization have been updated, and all related test cases
have been removed.
2024-10-30 13:13:18 -07:00
Mike Côté
0a93f3cf10
Fix flaky alert flapping test (#198013)
Resolves https://github.com/elastic/kibana/issues/195573

In this PR, I'm un-skipping the alerts as data flapping tests. The flaky
test runners weren't able to reproduce the flakiness. I believe it's
because we needed to wait longer after changing the flapping settings
for the cache to clear. This is already done in
https://github.com/elastic/kibana/pull/197070/files#diff-3d57bae0b495bddd934b87ca29e2f43fa21bab9bf304b5d359d7e230284415c0
but it was merged after the test was skipped.

Flaky test runners:
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7286
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7293
-
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7306
2024-10-30 12:39:40 -05:00
Julia
6645e74707
[ResponseOps][MaintenanceWindow] Introduce pagination for MW find API (#197172)
Fixes: https://github.com/elastic/kibana/issues/193076

This PR introduce pagination for our MW find API.

How to test:

Use postman/insomnia/curl.
Do not forget to add this header: `x-elastic-internal-origin: Kibana`,
because this endpoint in internal.

Basically you need to do something like this:
```
GET http://localhost:5601/top/internal/alerting/rules/maintenance_window/_find?page=3&per_page=3
```

Try different page and per_page combination. Try without them.

### Checklist

- [x] [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-30 13:54:58 +01:00
Tiago Costa
367add60f2
skip flaky suite (#192144) 2024-10-30 04:56:40 +00:00
Ying Mao
dd90b67a87
[Response Ops][Actions] Remove deprecated HTTP APIs (#197510)
Resolves https://github.com/elastic/kibana/issues/90382

## Summary

Removes legacy action APIs for 9.0 and updates all tests that still used
the legacy APIs to use the current APIs. Also did some renaming of
action -> connector in the files I had to touch.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-10-29 15:20:12 -04:00
Jiawei Wu
7ad937db57
[Response Ops][Maintenance Window] Fix Maintenance Window Wildcard Scoped Queries (#194777)
## Summary

Issue: https://github.com/elastic/sdh-kibana/issues/4923

Fixes maintenance window scoped query using wildcards by injecting the
`analyze_wildcard` property to the DSL used to determine which alerts
should be associated with the maintenance window.

Also fixes the update route to correctly take into account the user's
`allowLeadingWildcard` flag. It was implemented for the create route but
not the update route.

Fixes: https://github.com/elastic/kibana/issues/194763

### To test:
1. Install sample data:

![image](https://github.com/user-attachments/assets/4be72fc8-e4ab-47a3-b5db-48f97b1827ae)

2. Create a maintenance window with the following scoped query: 

![image](https://github.com/user-attachments/assets/e2d37fd0-b957-4e76-bea3-8d954651c557)

3. Create a ES query rule and trigger actions:

![image](https://github.com/user-attachments/assets/551f5145-9ab7-48c4-a48e-e674b4f0509a)

4. Assert the `maintenance_window_id` on the 4 alerts are set

![image](https://github.com/user-attachments/assets/7ace95d3-d992-4305-a564-cf3004c9ae9e)


### Checklist
- [x] [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)

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-10-26 04:47:29 -05:00
Mike Côté
c8be1e26d0
Mark connector param validation failures as user errors (#197812)
Resolves https://github.com/elastic/response-ops-team/issues/255

In this PR, I'm changing the type of error thrown when connector
parameter validation fails so it indicates it's a user type of error.
This will allow us to exclude these errors from our serverless
monitoring given the users define the parameters the connectors receive
when they run. Mainly via alerting rule mustache templates, which are
easy to render empty strings and such.
2024-10-25 14:54:59 -05:00
Kibana Machine
10f234c131 skip failing test suite (#195573) 2024-10-26 00:53:46 +11:00
Mike Côté
c31f11e7d8
Set mget task claim strategy as the default (#197070)
Resolves https://github.com/elastic/kibana/issues/194625

In this PR, I'm setting `mget` as the default task claiming strategy
along the following changes:
- Given we no longer need the 8.16 specific PRs
(https://github.com/elastic/kibana/pull/196317 and
https://github.com/elastic/kibana/pull/196757), I've also reverted them.
- Given we now use `met` as the default, I've renamed
`task_manager_claimer_mget` to `task_manager_claimer_update_by_query`
and made tests in that folder test using the `update_by_query` claim
strategy.
- Stabilize flaky tests caused by mget + polling for tasks more
frequently

Flaky test runners:
-
[[59b71bc](59b71bcdbe)]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7197
-
[[aea910e](aea910e36d)]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7199
-
[[4723ced](4723ced751)]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7206
-
[[d28c8c5](d28c8c56f6)]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7209
-
[[dd7773a](dd7773aeba)]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7224

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-25 08:57:46 -04:00
Maryam Saeidi
30f81ce4e9
Migrate Custom threshold > AVG - PCT - FIRED test to the deployment agnostic framework (#195902)
Part of #183378

## Summary
This PR moves the first Custom threshold rule test to the deployment
agnostic test. The rest will follow in a follow-up PR.

## How to run

To run serverless
```
node scripts/functional_tests_server --config x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts
node scripts/functional_test_runner --config x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts --grep="Custom Threshold rule"
```

To run stateful
```
node scripts/functional_tests_server --config x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts
node scripts/functional_test_runner --config x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts --grep="Custom Threshold rule"
```

### TODO

- [x] https://github.com/elastic/kibana/pull/195890
- [x] Test in MKI before merging


#### How to run tests on MKI

According to this
[discussion](https://github.com/elastic/observability-dev/issues/3519#issuecomment-2379914274),
we should test in MKI environment before merging. For details on how to
run in MKI, see [this section of the
document](https://docs.google.com/document/d/1tiax7xoDYwFXYZjRTgVKkVMjN-SQzBWk4yn1JY6Z5UY/edit#heading=h.ece2z8p74izh)
and [this
readme](https://github.com/elastic/kibana/blob/main/x-pack/test_serverless/README.md#run-tests-on-mki).
2024-10-24 12:22:59 +02:00
Zacqary Adam Xeper
196cabad9b
[ResponseOps][Rules] Remove unintended internal Find routes API with public access (#193757)
## Summary

Fixes #192957 

Removes the `internal/_find` route from public access by moving the
hard-coded `options` into the route builder functions.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-10-23 00:33:31 -04:00