Commit graph

268 commits

Author SHA1 Message Date
Ying Mao
cc95f115c3
[Response Ops][Task Manager] Pass fakeRequest for tasks with associated API key instead of actual key (#217327)
Resolves https://github.com/elastic/kibana/issues/216808

## Summary

Instead of directly passing the `apiKey` and `userScope` (when
available) into each task type runner, we create a fake Kibana Request
with an Authorization ApiKey header in the task manager and pass that
request into the task type runner.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-04-14 16:10:17 +02:00
Mike Côté
93174d3887
Change reporting CODEOWNERS to response ops (#213560)
In this PR, I'm changing the CODEOWNERS for reporting related modules.
While reviewing, ensure I haven't missed anything or moved a module that
should remain part of sharedux team.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Tim Sullivan <tsullivan@users.noreply.github.com>
Co-authored-by: Timothy Sullivan <tsullivan@elastic.co>
2025-04-04 23:27:42 +02:00
Jiawei Wu
4bdea60433
[Response Ops][Task Manager] Run tasks as the current user (#205577)
## Summary

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

This PR allows tasks to be ran scoped as the current user. It
accomplishes this by creating an API when the user schedules this task.
It will then persist the API key in the task instance which allows the
task handler to have access to the user's privileges.

To test: 

1. Run `yarn start --run-examples`
2. Navigate to
`http://localhost:5601/app/triggersActionsUiExample/task_manager_with_api_key`
3. Click on `Schedule Task 1 and 2`, this will schedule a mock test that
is defined in
`x-pack/platform/plugins/shared/alerting/server/plugin.ts`, which prints
out the task instance and the scoped clients.
4. Click on `Remove` to cancel the task, which then cleans up and
invalidates the API keys.
5. Reschedule the 2 tasks and click on `Remove All Tasks` which will
bulk remove tasks and invalidate API keys.

Limitation of this approach:
- Because we depend on a request, this would mean every schedule that is
tied to a user needs to be triggered using a request. (Unless we have a
way of generating an API key without using the request).

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-04-02 19:09:07 -06:00
Elena Shostak
7a41906d88
[Authz] Mandatory Security Config (#215180)
## Summary

This PR makes `security` a required field for route registration. To
incorporate the new required filed, changes has been made:

1. **Test file updates**. A lot of the updates made in this PR were made
in tests.
2. **Versioned route security configuration**. For the versioned route
`security` config has been lifted up to the top-level definition:

    Before
    ```ts
    router.versioned
      .get({
        path: '/api/path',
        options: { ... },
        ...
      }, handler)
      .addVersion({
         version: 1,
         validate: false,
         security: {
          authz: {
            requiredPrivileges: ['privilege'],
          },
         },
      });
    ```
    
    After
    ```ts
    router.versioned
      .get({
        path: '/api/path',
        options: { ... },
         security: {
          authz: {
            requiredPrivileges: ['privilege'],
          },
         },
        ...
      }, handler)
      .addVersion({
         version: 1,
         validate: false,
      });
    ```

3. **Type adjustments for route wrappers**. Type changes has been made
in:
-
`x-pack/solutions/observability/plugins/infra/server/lib/adapters/framework/adapter_types.ts`
-
`x-pack/solutions/observability/plugins/metrics_data_access/server/lib/adapters/framework/adapter_types.ts`
-
`x-pack/solutions/observability/plugins/synthetics/server/routes/types.ts`
-
`x-pack/solutions/observability/plugins/uptime/server/legacy_uptime/routes/types.ts`

Security was made an optional field for the wrappers defined in those
files, since the default security is provided in the wrapper itself and
then passed down to the core router.

### 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] 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)


__Closes: https://github.com/elastic/kibana/issues/215331__

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-03-27 12:04:53 -07:00
Nathan Reese
377a812784
[dashboard] clean up dashboard setup and start contracts (#212968)
* remove `locator` from setup and start contract
* remove `dashboardFeatureFlagConfig` from start contract

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-03-12 10:36:37 -06:00
Umberto Pepato
f8a3051605
[ResponseOps][Rules] Add solution field to rule types (#212079)
We need to add a `solution` field to rule types in order to provide a
root-level categorization based on the Kibana solution/area that owns
each rule type. This will serve as a more reliable alternative to
previous attempts at `featureId`-based filtering.

## Summary

- Adds a `solution` field to rule type objects, accepting the values
`observability`, `security` and `stack`.
- Categorizes existing rule types.
- Updates tests with the new field.

## Verification steps

1. Check that the rule types you own have been categorized under the
correct solution
2. Create rules in multiple areas of Kibana
3. Check that those rules show up correctly in their UIs and work
correctly

## References

Closes #212017
2025-03-12 17:19:58 +01:00
Zacqary Adam Xeper
fffc18cfc4
[Response Ops] [Rule Form] Remove V1 Rule Form Flyout (#209171)
## Summary

Closes #195211 

Removes all old rule form flyout code, which should no longer be
referenced at all after https://github.com/elastic/kibana/pull/206685/

### 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>
2025-03-08 14:26:54 +02:00
Nathan Reese
b213eb6bb2
[embeddable] replace Embeddable ViewMode with presentation-publishing ViewMode (#211960)
Embeddable ViewMode is part of legacy embeddable architecture. This PR
removes Embeddable ViewMode and replaces its usage with
presentation-publishing ViewMode. presentation-publishing ViewMode is a
string literal type so an enum is no longer needed.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-03-04 09:05:23 -07:00
Zacqary Adam Xeper
367ff8dbec
[Response Ops] [Rule Form] Add Rule Form Flyout v2 (#206685)
## Summary

Part of #195211

Replaces the create/edit rule flyout with the new rule flyout

<img width="1032" alt="Screenshot 2025-01-14 at 3 12 30 PM"
src="https://github.com/user-attachments/assets/9cbcf4f8-1078-4f7e-a55a-aacc2d877a14"
/>
<img width="1383" alt="Screenshot 2025-01-14 at 3 12 52 PM"
src="https://github.com/user-attachments/assets/2270d57b-9462-4898-9dd0-41baefcc02d4"
/>

Restores the confirmation prompt before canceling or saving a rule
without actions defined.

Also fixes most of the design papercuts in the Actions step:

<img width="494" alt="Screenshot 2025-01-14 at 3 11 06 PM"
src="https://github.com/user-attachments/assets/3cf21d43-88e0-4250-b290-a545e1ebdbcf"
/>
<img width="494" alt="Screenshot 2025-01-14 at 3 11 01 PM"
src="https://github.com/user-attachments/assets/00ef3f95-c91b-4bb7-aead-a3e23c02f7df"
/>





### 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/src/platform/packages/shared/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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2025-03-04 16:52:58 +02:00
Eyo O. Eyo
ff0470fb42
Consolidate all language definitions used in monaco within the @kbn/monaco package (#208950)
## Summary

This PR was created in response to
https://github.com/elastic/kibana/pull/208858, it migrates all existing
language definitions within the `@kbn/code-editor` package into the
`@kbn/monaco` package to provide a separation of concern for logic that
doesn't particularly relate to the configurations for the code editor
UI.

With this change, all supported languages are ingested from the
`@kbn/monaco` package where they will be domiciled from henceforth, and
in turn fix the issue that was discovered relating to the way the
language definitions within `@kbn/code-editor` get registered as a side
effect.

With this change, to add support for a new language, said language
should be defined within `@kbn/monaco`, and registered in
`languages/index.ts`.

<!--
### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] 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/src/platform/packages/shared/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
- [ ] [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
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] 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)

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...

-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-02-18 19:27:36 +01:00
Umberto Pepato
a74066d6f8
[ResponseOps][Alerts] Move the alerts table to a dedicated package (#207878)
## Summary

This PR turns the AlertsTable into a standalone component, making it
independent from the `TriggersActionsUI` plugin.

#### Removes the alerts table registry

All configuration is now managed through the AlertsTable component
props. Shared configurations are handled by giving consumers the ability
to directly provide alerts table wrapper components (see for example the
`renderAlertsTable` prop of `getCases`).

#### Moves the alerts table to dedicated package(s)

Following the feature-driven structure we're introducing for ResponseOps
(alerting) client-side packages:
- `@kbn/response-ops-alerts-table`
- `@kbn/response-ops-alerts-apis`
- `@kbn/response-ops-alerts-fields-browser`

#### Initial work on improving composition and organization

- Reorganizes the table code into a by-entity-type folder structure
(`components/`, `hooks/`, ...)
- Simplifies some components and breaks into smaller units when possible

## To verify

For consumers of the alerts table:
- Check that all your tables have the same behavior as before (columns,
sort, row actions, bulk actions, etc.)
- Check that your "shared" tables (i.e. cases alerts view in O11y and
Security) have the expected configuration and behavior

> [!WARNING]
> This PR moves a lot of files. Git might not always recognize the
correct delete/add file pairs. If you see weird diffs feel free to reach
out for help!

### Checklist

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

### Identify risks

| Risk | Description | Severity | Mitigation |
|---|---|---|---|
| Table misconfigurations | Some table configurations might slightly
differ from the previous AlertsTableRegistry-backed version | Low |
Quick fix |

## References

Closes #195180

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Christos Nasikas <xristosnasikas@gmail.com>
2025-02-12 11:07:55 +01:00
Gerard Soldevila
c347582ffb
SKA: Fix outdated eslint rules (#206961)
## Summary

Some eslint rules' paths were outdated after the SKA relocations.
This PR aims at fixing them.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-28 08:49:39 +01:00
Nathan Reese
05916056cd
[embeddable] make presentation interface names consistent (#205279)
PR cleans up presentation interface names for consistentency
* adds `$` suffix to all observables. For example, `dataLoading` =>
`dataLoading$`
* removes `Panel` naming convention from interface names since an api
may not be a panel, an api may be a dashboard. For example,
`PublisesPanelTitle` => `PublishesTitle`

#### Note to Reviewers
Pay special attention to any place where your application creates an
untyped API. In the example below, there is no typescript violation when
the parent returns `dataLoading` instead of `dataLoading$` since the
parent is not typed as `PublishesDataLoading`. Please check for
instances like these.

```
<ReactEmbeddableRenderer
  getParentApi={() => {
    dataLoading: new BehaviorSubject()
  }}
/>
```

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-22 10:46:01 -06:00
Georgiana-Andreea Onoleață
10cc89182f
[ResponseOps][UI] - EUI Visual Refresh integration and QA (#204352)
## Summary

Closes: https://github.com/elastic/kibana/issues/202551
Closes: https://github.com/elastic/kibana/issues/202550
Closes: https://github.com/elastic/kibana/issues/202549
Closes: https://github.com/elastic/kibana/issues/202548

Meta: https://github.com/elastic/kibana/issues/202547

Summary

- Buttons with `success` color have been updated to `primary`
- Replaced "textSuccess" to "successText"
example: Edit connector -> **Save** button
<img width="756" alt="Screenshot 2024-12-17 at 15 32 14"
src="https://github.com/user-attachments/assets/5d953c7a-6855-4718-98ab-fc89c516ff8d"
/>

- All references to renamed tokens have been updated to use the new
token name
- Replaced the color utility functions with EUI color tokens as they
will be deprecated
- All usage of color palette tokens and functions now pull from the
theme
- changed severity colors in Borealis

Amsterdam:
<img width="1931" alt="Screenshot 2024-12-18 at 11 50 51"
src="https://github.com/user-attachments/assets/401465b5-b589-47c7-82a6-8211f06c13a5"
/>

Borealis: 
<img width="1925" alt="Screenshot 2024-12-18 at 11 50 06"
src="https://github.com/user-attachments/assets/47ebcba7-70b0-4875-906a-55f509e0b5ca"
/>

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2025-01-15 09:07:25 +02:00
Dario Gieselaar
98ce312ba3
More strict plugin type definitions (#205232)
Stricter defaults for plugin types: `Plugin` and `CoreSetup` now have
empty objects as defaults instead of `object` which is assignable to
anything basically. This catches some type errors, but my motivation for
this is to allow something like:

```ts
function createPlugin ():Plugin<MySetupContract, MyStartContract, MySetupDependencies, MyStartDependencies> {
	return {
		// look ma, no additional typing necessary
		setup ( coreSetup, pluginsSetup ) {
		},
		start ( coreStart, pluginsStart ) {
		}
	}
}
```
2025-01-07 16:41:15 +01:00
Anton Dosov
952436aa52
[SKA] Categorize outstanding shared-ux modules (#205378)
## Summary

Categorize outstanding shared-ux modules for the move.
2025-01-02 08:14:22 -06:00
Tim Sullivan
80160cbf8f
Preparation for High Contrast Mode, ResponseOps domains (#202610)
## Summary

**Reviewers: Please test the code paths affected by this PR. See the
"Risks" section below.**

Part of work for enabling "high contrast mode" in Kibana. See
https://github.com/elastic/kibana/issues/176219.

**Background:**
Kibana will soon have a user profile setting to allow users to enable
"high contrast mode." This setting will activate a flag with
`<EuiProvider>` that causes EUI components to render with higher
contrast visual elements. Consumer plugins and packages need to be
updated selected places where `<EuiProvider>` is wrapped, to pass the
`UserProfileService` service dependency from the CoreStart contract.

**NOTE:** **EUI currently does not yet support the high-contrast mode
flag**, but support for that is expected to come in around 2 weeks.
These first PRs are simply preparing the code by wiring up the
`UserProvideService`.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

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

### Risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [medium/high] The implementor of this change did not manually test
the affected code paths and relied on type-checking and functional tests
to drive the changes. Code owners for this PR need to manually test the
affected code paths.
- [ ] [medium] The `UserProfileService` dependency comes from the
CoreStart contract. If acquiring the service causes synchronous code to
become asynchronous, check for race conditions or errors in rendering
React components. Code owners for this PR need to manually test the
affected code paths.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-12 14:34:44 -06:00
Tim Sullivan
99aa884fa0
Preparation for High Contrast Mode, Analytics Experience domains (#202608)
## Summary

**Reviewers: Please test the code paths affected by this PR. See the
"Risks" section below.**

Part of work for enabling "high contrast mode" in Kibana. See
https://github.com/elastic/kibana/issues/176219.

**Background:**
Kibana will soon have a user profile setting to allow users to enable
"high contrast mode." This setting will activate a flag with
`<EuiProvider>` that causes EUI components to render with higher
contrast visual elements. Consumer plugins and packages need to be
updated selected places where `<EuiProvider>` is wrapped, to pass the
`UserProfileService` service dependency from the CoreStart contract.

**NOTE:** **EUI currently does not yet support the high-contrast mode
flag**, but support for that is expected to come in around 2 weeks.
These first PRs are simply preparing the code by wiring up the
`UserProvideService`.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

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

### Risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [medium/high] The implementor of this change did not manually test
the affected code paths and relied on type-checking and functional tests
to drive the changes. Code owners for this PR need to manually test the
affected code paths.
- [ ] [medium] The `UserProfileService` dependency comes from the
CoreStart contract. If acquiring the service causes synchronous code to
become asynchronous, check for race conditions or errors in rendering
React components. Code owners for this PR need to manually test the
affected code paths.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-12 13:16:07 -06:00
Nathan Reese
80f915f9e3
[embeddable] remove EmbeddableRenderer and embeddable stories (#203007)
PR starts cleaning up legacy embeddable components by removing
EmbeddableRenderer, EmbedddableRoot, and embeddable story books.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Anton Dosov <dosantappdev@gmail.com>
2024-12-10 10:38:28 -07:00
Tim Sullivan
6178e8295d
Preparation for High Contrast Mode, Core/SharedUX domains (#202606)
## Summary

**Reviewers: Please test the code paths affected by this PR. See the
"Risks" section below.**

Part of work for enabling "high contrast mode" in Kibana. See
https://github.com/elastic/kibana/issues/176219.

**Background:**
Kibana will soon have a user profile setting to allow users to enable
"high contrast mode." This setting will activate a flag with
`<EuiProvider>` that causes EUI components to render with higher
contrast visual elements. Consumer plugins and packages need to be
updated selected places where `<EuiProvider>` is wrapped, to pass the
`UserProfileService` service dependency from the CoreStart contract.

**NOTE:** **EUI currently does not yet support the high-contrast mode
flag**, but support for that is expected to come in around 2 weeks.
These first PRs are simply preparing the code by wiring up the
`UserProvideService`.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

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

### Risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [medium/high] The implementor of this change did not manually test
the affected code paths and relied on type-checking and functional tests
to drive the changes. Code owners for this PR need to manually test the
affected code paths.
- [ ] [medium] The `UserProfileService` dependency comes from the
CoreStart contract. If acquiring the service causes synchronous code to
become asynchronous, check for race conditions or errors in rendering
React components. Code owners for this PR need to manually test the
affected code paths.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 08:26:41 -07:00
Zacqary Adam Xeper
8f267fd83c
[ResponseOps][Rules] Move Rule Form code into @kbn/response-ops-rule-form (#198725)
## Summary

Part of #195211

Moves Rule Form code out of `@kbn/alerts-ui-shared` and into a new
package called `@kbn/response-ops-rule-form`.

Some types and hooks that are used by multiple features or solutions are
still in `@kbn/alerts-ui-shared` and have been rerouted. The bulk of
Rule Form-specific code is in this new package.


### 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: Kevin Delemme <kevin.delemme@elastic.co>
2024-12-03 12:40:48 -06: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
Marco Liberati
61d0320c64
[Lens] Embeddable react refactor (#186642)
## Summary

This PR contains the refactor of the Lens embeddable with the new React
architecture.

fix https://github.com/elastic/kibana/issues/174957
fixes https://github.com/elastic/kibana/issues/180672

**Current status**:
 Ready to review

### Notes for testing and reviewers

Other than reworking the Lens embeddable with the new architecture this
PR contains the following major changes.

#### Edit flow
The `Edit` flow has changed to in-line first using the new `Edit` API
provided by the new system
* The impact of this change can be noticed in the code on the `Canvas`
case where the Custom Lens component is instructed to avoid the inline
editing. In all the other cases in-line editing is enabled by default
now.
* Another side effect of this has been the replacement of the special
`INLINE_EDIT` action id into the regular `EDIT` action. Some tests have
been affected by this replacing the `clickEdit` function with the
`openEditorFromFlyout` one.
* The Inline editing codebase **as been reworked entirely** so make sure
to stress test this side of things.

#### Attribute service

Another important aspect changed in this PR is the `attributeService`:
this was tied to the previous Embeddable system and it is now completely
skipped. The Lens wrapper around that has been reworked to be thinner
and directly call the CM services.
* Please make sure to test thoroughly save/load SO flows

#### Transformation API (by-value <=> by-reference flow)

The new system adopts the new Transformation API (who prevents the panel
to fully reload on change).
* Please make sure to test thoroughly Visualize library <=> by value
flows
* In particular moving from one type and another should change how the
Panel Settings interpret "default" values to reset

#### Message system

Also this part of the code was partially rewritten to be more manageable
ont he embeddable surface, maintaining the core functionalities.
* Please make sure to test thoroughly error messages, warnings and info
messages
  * Some scenarios to test includes
* multi-layer errors (i.e. use a broken KQL query for an
annotation/multi-layers). Check that the panel recovers correctly from
it when resolved
    * Missing references
    * Missing dataViews
    * Wrong formatted SO
* Configuration mistakes - check that a broken config is not saveable

### Other areas to check

* Change filters in dashboard/viz and check that are correctly handled
* Check drilldowns
* Check that `Unsaved changes` are correctly detected
* Check that the panel updates correctly on `View` mode change

## Main type changes

This PR contains also some important `type` changes, here's listed:
* the `query` property now explicitly supports ES|QL query type.
  * in `main` it used to work without type support
* `LensEmbeddableInput`/`LensEmbeddableOutput` types have changed, but
the type names remained the same.

## Follow ups already planned:

Some enhancements have been already collected and will be addressed in a
follow up [here](https://github.com/elastic/kibana/issues/195355)

### Tasks
<details>

<summary>Detailed list of tasks for the refactor</summary>

* New embeddable factory
  * [x] Define visualization context
  * [x] Define observables to track
  * [x] Basic panel settings
  * [x] Basic edit api
  * [x] inspector api 
  * [x] Library services
  * [x] Unified search api
  * [x] Basic integrations api
  * [x] State management api for inline editing
  * Publish correct observables
    * [x] `dataViews`
    * [x] `query`
    * [x] `filters`
    * [x] `dataLoading`
    * [x] `savedObjectId`
  * Actions
    * [x] View underlying data api
 * Custom renderer
   * [x] Basic implementation
   * [x] Support callbacks
   * [x] Support custom styling/paddings
 * Expose  
* [x] Handle searchSession
* Edit
  * [x] Open panel in Lens editor
  * Inline editing
    * [x] rework references logic
      * #180726
* integrate the logic to extract filters dataViews from filters as for
the first bug in #188545
    * DSL flyout
      * [x] open flyout
      * [x] save
    * ES|QL
      * [x] open flyout on creation
      * [x] open flyout on editing
      * [x] save
* [x] revisit mounting logic to avoid detach if possible (not possible
yet)
* [x] explore the integration with the new `onEdit` api method used for
the inline editing~~
      * [x] created panel management module and sorted it out
    * [x] open in Editor
      * [x] fix the save on return to dashboard
* ~~migrate by ref to by value on inline editing~~ will do it in a
follow up PR
* Add from library issues
  * [x] Fix missing title and tags
* Data loading
  * [x] Compute all required data params for rendering
* Render the panel
  * [x] hook up user messaging system
  * [x] Merge search context
  * [x] Expression variables
  * [x] panel settings
    * [x] per panel time range
    * [x] per panel filter
    * test with both DSL and ES|QL mode
  * Reload
    * [x] on unified search updates
    * [x] on config changes
    * [x] on drilldown changes?
    * [x] on view mode change 
 * Attributes service
   * [x] load from library
   * [x] save to library

</details>


### Pending issues:
<details>

<summary>Detailed list of issues</summary>

* [x] Unified histogram does not render in Discover
* [x] Saving to library from context menu in dashboard doesn't save the
title
* [x] When adding a vis from the library the new panel has no title
* [x] Vis disappears when opening inline editor and cancel
  * Create a viz, save and return to dashboard, then edit it and cancel.
* Saving an edit inline doesn't apply the changes (i.e. changing the
chart type)
  * [x] Changing the chart type on the layer panel leads to a crash
* [x] Changing the chart type won't update the visualization (via both
config panel or suggestions)
* [x] Edit a dimension will stretch the panel to overflow the fly-out
* [x] duplicating a dimension in the inline editor by drag and drop
works buggy visually
* When duplicating a panel, the new panel gets the same title rather
than “title (copy)”
  * [x] by-value panels
  * [x] by-reference panels
* [x] brushing throughout the timerange doesn’t work
* [x] filtering when clicking on value doesn’t work
* [x] filtering from legend doesn’t work
* [x] for lens table, the sort ascending/descending actions don’t have
an effect
* [x] filtering doesn’t display on table either
* Discover related issues
* thanks to @davismcphee investigation the source of the issue seems to
be related to the way the `abortController` is managed in the new
embeddable implementation as Discover is relying on that.
* [x] needs to investigate for a fix that restores the previous
behaviour of the `abortController` management
  * [x] the hits total count is not in sync with the chart/table now
* [x] Change chart type via suggestion panel when inline editing in
Discover doesn't update the chart
* [x] Dirty panel issue (see @nickofthyme 's
[comment](https://github.com/elastic/kibana/pull/186642#discussion_r1792659477)
)
* [x] `Unsaved changes` issue (see @mbondyra
[comment](https://github.com/elastic/kibana/pull/186642#discussion_r1795384587))
* [x] Multiple errors not rendered correctly in panel when blocking
(i.e. missing field - `lens-message-list-trigger` related)
  * [x] recover from a blocker error required 2 renders
* Missing SO error should not be handled for the custom render component
(legacy behaviour) but should be correctly handled for dashboard (will
be handled in a follow up PR given that is broken on `main` too)
* [x] Too many requests on Unified Histogram when in Discover (3 vs 2)
* [x] Too many request on slow queries for Unified Histogram (2 vs 1)
* [x] Annotations preview issues (chart rendering with height `0px`)
* [x] `uuid` not propagated correctly
* [x] another flavour of this was `id` not propagated correctly into the
`data-test-embeddable-id` attribute
* [x] Dispatch correctly the `render` events
* [x] refresh interval does not propagate thru the Lens custom component
in Discover (thanks to @jughosta to sort this out )
</details>

---------

Co-authored-by: Marta Bondyra <4283304+mbondyra@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Marco Vettorello <vettorello.marco@gmail.com>
Co-authored-by: Marta Bondyra <marta.bondyra@elastic.co>
Co-authored-by: Bhavya RM <bhavya@elastic.co>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
2024-11-26 09:34:13 +01:00
Cee Chen
83a9acd79b
Remove deprecated usages of EuiFormRow's display="columnCompressedSwitch" prop (#198709)
## Summary

This prop option has been deprecated as of
https://github.com/elastic/eui/pull/7968. `display="columnCompressed"`
now automatically accounts for EuiSwitches (via `:has` CSS) and the
extra prop option is no longer needed.

### 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] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))

---------

Co-authored-by: Marta Bondyra <4283304+mbondyra@users.noreply.github.com>
2024-11-06 10:18:43 -08:00
Gerard Soldevila
730f4c9d2a
Address some of the no_group_crossing dependencies (#198261)
### Summary

This PR relocates some plugins and packages that are incorrectly
categorised, aiming at reducing inter-solution dependencies. It also
fixes some incorrect import statements that introduce unnecessary
dependencies with other components.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Maryam Saeidi <maryam.saeidi@elastic.co>
2024-11-06 08:44:35 -06:00
Jiawei Wu
5c2df6347d
[Response Ops][Rules] Add New Rule Form to Stack Management (#194655)
## Summary

Enables and adds the new rule form to stack management. We are only
going to turn this on for stack management for now until we are
confident that this is fairly bug free.

### To test:

1. Switch `USE_NEW_RULE_FORM_FEATURE_FLAG` to true
2. Navigate to stack management -> rules list
3. Click "Create rule" 
4. Assert the user is navigated to the new form
5. Create rule
6. Assert the user is navigated to the rule details page
7. Click "Edit"
8. Edit rule
9. Assert the user is navigated to the rule details page
10. Try editing a rule in the rules list and assert everything works as
expected

We should also make sure this rule form is not enabled in other
solutions.

### 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

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co>
2024-10-15 13:17:59 +03:00
Jiawei Wu
54659e8ae0
[Response Ops][Rule Form V2] Rule form v2: Actions Modal and Actions Form (#187434)
## Summary
Issue: https://github.com/elastic/kibana/issues/179105
Related PR: https://github.com/elastic/kibana/pull/180539

Final PR of the rule actions V2 PR (2/2 of the actions PRs). This PR
contains the actions modal and actions form. This PR depends on
https://github.com/elastic/kibana/pull/186490.

I have also created a example plugin to demonstrate this PR. To access:

1. Run the branch with yarn start --run-examples
2. Navigate to
http://localhost:5601/app/triggersActionsUiExample/rule/create/<ruleTypeId>
(I use .es-query)
3. Create a rule
4. Navigate to
http://localhost:5601/app/triggersActionsUiExample/rule/edit/<ruleId>
with the rule you just created to edit the rule

<img width="1236" alt="Screenshot 2024-07-02 at 5 15 51 PM"
src="1dc5d2a9-804a-4861-94ba-814de73dc3ab">

![Screenshot 2024-07-08 at 10 53
44 PM](07efade1-4b9c-485f-9833-84698dc29219)

<img width="1087" alt="Screenshot 2024-07-02 at 5 15 58 PM"
src="903e66b5-f9a1-4d09-b121-b1dcecdff72c">


### 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-09-27 00:34:27 -06:00
Nick Peihl
6689169687
Move @elastic/kibana-gis ownership to @elastic/kibana-presentation (#192521)
## Summary

The legacy `@elastic/kibana-gis` team is now a part of
`@elastic/kibana-presentation`. So we should move ownership of all code
to the correct team.
2024-09-16 09:50:50 -05:00
Elena Shostak
a71c9ba38a
Added scope field to features config. (#191634)
## Summary
Kibana needs to more tightly control the set of visible features within
a space, in order to support the new solution-based navigation.
Added `scope` field to the features configuration. This enhancement is
intended to prevent new features from appearing in Space Visibility
Toggles.


### Checklist

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


__Fixes: https://github.com/elastic/kibana/issues/191299__

## Release Note

Added `scope` field to the features configuration. This enhancement is
intended to prevent new features from appearing in Space Visibility
Toggles.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-09-12 19:22:20 -05:00
Anton Dosov
240c4ff15b
[react@18] More breaking type fixes (should be the last pr) (#192266)
## Summary

Part of https://github.com/elastic/kibana/issues/138222

in @types/react@18 types
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210. This PR
addresses a bunch of remaining fixes **(hopefully the last mass ping PR
like this)** The most common are:


### 1 Objects are no longer considered a valid ReactNode

In types@17 the ReactNode typing was too soft, it allowed objects and
functions being passed as ReactNode, e.g.

```
let obj: React.ReactNode = {};
let func: React.ReactNode = () => {};
```

This was by mistake, and this PR mutes most of such cases by simply
casting to a `string` or `ReactNode`.
In some cases, it is worth to follow up and address the raised issues in
a better way (see in comments)


```diff

function MyComponent() {

const error: string | Error = 'Error'

return (
  <div>
-   {error}
+   {error as string}
  </div>
)

}

```


Most common problems are related to rendering errors, where it could be
`string | Error` object rendered directly as a ReactNode. Most often it
is related to alerting framework:

```
export interface RuleFormParamsErrors {
  [key: string]: string | string[] | RuleFormParamsErrors;
}
```

Not sure if there is a better fix then casting, surely not short-term. 

### 2 More `useCallback` implicit any fixes

Follow up to https://github.com/elastic/kibana/pull/191659

### 3 `EuiSelect` doesn't have a placeholder prop 

In a couple of places, the `placeholder` prop was removed. This is
because react types were updated and `placeholder` was removed from the
base HTML element, so it highlighted places where `placeholder` prop was
redundant
2024-09-12 13:54:18 +02:00
Marta Bondyra
9e8244f470
[Lens] Chart switch redesign (#187475)
## Summary

1. The main change is chart switch redesign:

<img width="401" alt="Screenshot 2024-08-26 at 15 08 50"
src="https://github.com/user-attachments/assets/a2da17d5-b068-4eeb-9723-0b64cc6cbcf0">

2. Toolbar changes for most of the visualization (refer to design files)

<img width="930" alt="Screenshot 2024-08-26 at 15 09 14"
src="https://github.com/user-attachments/assets/7f76aed3-99d8-438b-b304-91042c99381d">

<img width="942" alt="Screenshot 2024-08-26 at 15 08 56"
src="https://github.com/user-attachments/assets/5bed1916-8723-42b5-8f7d-4b363c5736c9">



#### Subtasks
- reorders the elements in the charts switch
- redesigns chart switch visually
- adds deprecated group (metric)
- changes the add subtype layer menu
- adds description to chart switch
- subselect for bar/gauge visualizations
- adds border to workspace panel
- changes `boxesHorizontal` icon to `boxesVertical`

Resolves https://github.com/elastic/kibana/issues/179260 also fixes
https://github.com/elastic/kibana/issues/182677
switching between chart types
2024-09-05 12:32:45 +02:00
Patryk Kopyciński
2d1d592a3b
[react@18] Fix useCallback breaking type changes (#182344)
## Summary

Prep work for React@18 bump
https://github.com/elastic/kibana/issues/138222

In React@18 `useCallback` types has changed that introduced breaking
changes:
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/46691

Fixed using:

https://github.com/eps1lon/types-react-codemod?tab=readme-ov-file#usecallback-implicit-any

**Tried to do my best with fixing the types, but if you disagree or have
a better idea how it should be solved feel free to suggest changes or
commit directly to the branch 🙏**

---------

Co-authored-by: Sergi Massaneda <sergi.massaneda@elastic.co>
Co-authored-by: Sébastien Loix <sabee77@gmail.com>
Co-authored-by: Nick Peihl <nick.peihl@elastic.co>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
Co-authored-by: Felix Stürmer <felix.stuermer@elastic.co>
Co-authored-by: nickofthyme <nicholas.partridge@elastic.co>
Co-authored-by: Davis McPhee <davis.mcphee@elastic.co>
Co-authored-by: Vitalii Dmyterko <92328789+vitaliidm@users.noreply.github.com>
Co-authored-by: Maxim Palenov <maxim.palenov@elastic.co>
Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co>
Co-authored-by: Anton Dosov <anton.dosov@elastic.co>
2024-08-28 16:33:35 +02:00
Tiago Costa
5859c69bb0
chore(NA): upgrade typescript into v5.1.6 (#186437)
This PR bumps the Typescript version used on Kibana into v5.1.6. The
full set of changes can be found
[here](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/)
and
[here](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/).

In order to make assumptions over the codebase and all the type of
errors I choose to mark the failures with `@ts-expect-error` and let
each team decide how to handle it.

There is a list below with the files (and teams those belong to) where
the annotations were added. If each team could provide help of fixing
the ones under their domain it would be fantastic. It can be done in
this PR or in subsequent ones.

Here it goes the list for follow up:

@elastic/kibana-core 
- [ ]
[packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e700e121788da393439b09ccb5dcd68c9fe4bb6b2663f84509e1fc0cdbcfdba9)
- [ ]
[packages/core/notifications/core-notifications-browser-internal/src/toasts/global_toast_list.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-9418144cd53fe450cb5a924b05348ea61af12d7d95a28dda6a22b9058540d11e)

@elastic/kibana-data-discovery 
- [ ]
[packages/kbn-es-query/src/es_query/from_filters.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d58aad3fd7135aae181c5cf501f48a27de1c08656e80933d91c00ac9b96033a6)
- [ ]
[src/plugins/field_formats/common/constants/base_formatters.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8864ffe2a1866a9c2c0a535057e4e1c39bb4507ffdb2866f23fb6f66b0211cf2)
- [ ]
[src/plugins/field_formats/common/converters/color.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-dad100b5dbd1511598d1b1e01cf6043dd3e5adb2c59ea2f2da5ddc8f0da811f4)
- [ ]
[src/plugins/field_formats/common/utils/geo_utils.ts](https://github.com/elastic/kibana/pull/186437/files#diff-6e35aec0659afb9e67a2767219e792f918bdbd68e0d710c9cb62aa1bce3e8f58)

@elastic/obs-knowledge-team
- [ ]
[packages/kbn-eslint-plugin-i18n/rules/formatted_message_should_start_with_the_right_id.ts](https://github.com/elastic/kibana/pull/186437/files#diff-50a9be879e214228ea2f620e25d170878b91083624f195b52bc3546dd7513863)
- [ ]
[packages/kbn-eslint-plugin-i18n/rules/i18n_translate_should_start_with_the_right_id.ts](https://github.com/elastic/kibana/pull/186437/files#diff-246cad304aec6af53e6d8f5b1a94631cced481a18842b792fd678468b91b4a97)
- [ ]
[packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.ts](https://github.com/elastic/kibana/pull/186437/files#diff-359f9b0e4e216505f6c4be2202ce3e40c796760735ee21f075c7f364da32c830)
- [ ]
[packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.ts](https://github.com/elastic/kibana/pull/186437/files#diff-461be6c6ed7c6dca2880b5bb4a0b46630d92ba15ae053ab5beda06461e28334c)
- [ ]
[packages/kbn-eslint-plugin-telemetry/rules/event_generating_elements_should_be_instrumented.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ecc2ed1c091c51e909b8be3d1bc44b51bf074028dc36eefd7c18511f2a677a70)

@elastic/kibana-esql
- [x]
[packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d45c72297609bbbbde2e3ad05e7f2d01bc3641ebcaed291e2608835bbc488cb5)

@elastic/kibana-management
- [ ]
[packages/kbn-management/settings/components/field_row/description/description.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-c8721036237a95d1884e92898998cd074b1ce11bd47be544a5555508df281131)
- [ ]
[x-pack/plugins/upgrade_assistant/public/application/components/es_deprecations/deprecation_types/reindex/flyout/progress.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-643342b210c85ad16ce48332f8fc4a897f04b360478e0dc85c66764c8dfa2fea)

@elastic/kibana-security
- [x]
[packages/kbn-user-profile-components/src/user_profiles_selectable.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-56f068e23fe0c835822be949e6d5a4b1c3e4c6122674d85edcd755247e8ba5b3)

@elastic/appex-sharedux
- [ ]
[src/plugins/bfetch/public/test_helpers/xhr.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3cbb61cec7f75035395d5839574750039ed9f0c426b4cdc30101584f20679844)

@elastic/kibana-visualizations
- [x]
[src/plugins/chart_expressions/expression_partition_vis/public/__stories__/shared/config.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5b63b4a12b145aa1dd32502a443b78d5d34032b7d1e81c2f2ddc95018ec220a2)
- [x]
[src/plugins/data/common/search/tabify/tabify.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0e813655cdaa11de2798a95e96d1681a3ba3733cd44d6e3ded92e42923a4f8a4)
- [x]
[src/plugins/data/public/search/session/sessions_mgmt/lib/get_expiration_status.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8e383e294d0beacaac5a59bbfb71db2eb34ec19bb17110558892dba4e78c9e5c)
- [x]
[src/plugins/expressions/common/test_helpers/expression_functions/sum.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ecd1d48194777bcf42b216ad9175ed7d27ab42b7534e58e398bd4f69910c7fd0)
- [x]
[src/plugins/vis_default_editor/public/components/controls/components/number_list/utils.ts](https://github.com/elastic/kibana/pull/186437/files#diff-83d6ea7d32a99c1655754bd7aa2b2bd18379336dfd08587d05c3879d94466ca5)
- [x]
[src/plugins/vis_types/heatmap/public/editor/components/heatmap.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-2ccd19b338a26292b3183fedce9ab9f0e0278c70478fe120b4bc8eaf708c1f30)

@elastic/kibana-presentation 
- [ ]
[src/plugins/presentation_util/public/components/floating_actions/floating_actions.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-d9ec87fc178c67a0666faed87b03608fff2de870d3a7426b7d6f32ea467c5efe)

@elastic/response-ops 
- [ ]
[x-pack/examples/triggers_actions_ui_example/public/connector_types/system_log_example/system_log_example_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-844871414a2b89346d98713776d43b6b7748fd09d9bfa29df8db039ef7029c17)
- [ ]
[x-pack/plugins/alerting/public/services/maintenance_windows_api/transform_maintenance_window_response.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8ce933ffaafd5cbb9be4fcebceb103354c6ccef3bf903472bab00aa63df05fbf)
- [ ]
[x-pack/plugins/alerting/server/alerts_client/lib/build_updated_recovered_alert.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-9c6f9f83811a8109a98c135c3c38d5e1f5f4b0ed43c50191c5f3356904f98743)
- [ ]
[x-pack/plugins/alerting/server/application/maintenance_window/methods/archive/archive_maintenance_window.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b5b5bc1b7dcd9f9231fa3106ec0249503878c6fa08beddcdad386bff2de817fd)
- [ ]
[x-pack/plugins/alerting/server/application/maintenance_window/methods/finish/finish_maintenance_window.ts](https://github.com/elastic/kibana/pull/186437/files#diff-be29c2527f016d3e0aa6f7114497b27f01328ba97fe4b8c10687e26274837eab)
- [ ]
[x-pack/plugins/alerting/server/application/maintenance_window/methods/update/update_maintenance_window.ts](https://github.com/elastic/kibana/pull/186437/files#diff-a41ce34fdcee991ff0dadb69b1f79ffdca65a1d403ba61cbe64f9a169dbd71af)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/archive/archive_maintenance_window_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-77786589c9983c6f73738c8e5727dda1d6d28d1fd43174333f4bc1d6e01aacbb)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/find/find_maintenance_windows_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-390a8118418248ce86b341bfc983bffe766cde153f3e0af1e50ee3c782d14f32)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/finish/finish_maintenance_window_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-597891acbb306fdf24fee4a354565e528d48922193bac3a9df2431c242f58801)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/get/get_maintenance_window_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-424da348dc22e6e40122808ec0dc3be4308311b8b6cf2980612cfe32035bc4b1)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/get_active/get_active_maintenance_windows_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-2e05b51211b744c4c62f4aa6114f05ae25a58bc7cc9104acb696c31dc079923a)
- [ ]
[x-pack/plugins/alerting/server/routes/maintenance_window/apis/update/update_maintenance_window_route.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5db167da59aa1095e7addc5a212e5b6d8eb56510ee2e8380d756518b9ed01391)
- [ ]
[x-pack/plugins/alerting/server/rules_client/common/snooze_utils.ts](https://github.com/elastic/kibana/pull/186437/files#diff-00934c9c89eafd3ba6f4dadf6eeb722ffcacfa3d2938d0ad87e0f94d7b74b2c7)
- [x]
[x-pack/plugins/cases/public/components/create/utils.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ee83142469c3a5f01ca2d451d265103d37c6aa674871134274ad19ab524d7bdc)
- [x]
[x-pack/plugins/cases/public/components/system_actions/cases/cases_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-48a40eef52d23999ba7e8f7be4a45b1888e9e23a7e7e2274005106fa512150a5)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/components/index_select_popover.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-b5f375535c5a86461c05426871068165875dcf48397cb6e9bd8fbd28887ae01f)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/components/source_fields_select.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-590e8e70a0107e1636381c82d9c220f94cfc6f9eb989ff0cf4bf1ab1dbf910ef)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/es_query/expression/es_query_expression.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-f8d25e40e49c3e4c349180c07884ab6c32f0632a8e7942e38d0c807ea121ac31)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/es_query/expression/esql_query_expression.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-ac4ad1bbcbfd2fea2717f4b5a66026c718e3b1798b9c8ec8de6788a177ee065f)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/es_query/expression/expression.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-7e37c942e8193d2a6d98ec3f700b4ccd9776e8ca486236db66c2c12003dcba3e)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/rule_form.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-9aea6a712f0c62b3d537198adb76e919e1d5dcc0ca9a677f5209fb242b711a1c)
- [ ]
[x-pack/plugins/stack_alerts/public/rule_types/threshold/expression.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-98fa95151dfe9b742538a07e55b155ad1ae21a4d0689855fb81777fcb096fa1a)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/webhook_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-ac3cca4b207b481d51a9d0cd7ea40b6cad60fa3bc65b3f468390dc6c17079e6b)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/email/email_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-df59d955c778b3600f2cc6ab081e23e81111c551a47b49fea17248e361179bad)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/es_index/es_index_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-7e43267b14964eac9970e05136122295c94b5b5e3eedc68f2669aa341f5191bb)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/jira/jira_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-6cd6e35801151cdb651ba089a9894d3bd7d11c14f5043e3fec9dcbd5d8cecf84)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/lib/servicenow/helpers.ts](https://github.com/elastic/kibana/pull/186437/files#diff-26ec61b32587b6e6ecae3729aa4aa21b686a98a913f0f9cdc826201e8ccfbb3d)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/opsgenie/close_alert.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-0cc8ad009225394e3646aec29f40ca6b6946f4bfde6c785b574cae2c3b593509)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/opsgenie/create_alert/index.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-3242adfea72e5c25b06189b36e4ee140a79925f410954e79d653680869a3b8a3)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/pagerduty/pagerduty_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-e7198fbd573a6103e3f0eaeda983901085a86a49b4d1d6a3888efd4e54a45861)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/resilient/resilient_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-75d81bebd5447946d113884982c084df04022df804a6fa349e3cf1772f77fa90)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/servicenow_itom/servicenow_itom_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-7a5300760de357f71a6721045455121deb11b67579fbb5ad17b0f1a579b9127d)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/servicenow_itsm/servicenow_itsm_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-320b09f607fa17dd1bcd84672c8f2f4ff34bc05b981c08cb8db78e1971fad43d)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/servicenow_sir/servicenow_sir_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-fc487b524b7ac74a468beb79134d0c2a07eef7e82dc5e138f082e61aedcca9b5)
- [x]
[x-pack/plugins/stack_connectors/public/connector_types/slack_api/slack_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-01413de2d6e5de199a018b16ded374fd9f12790e4bf4e51ac01ed627915fec0d)
- [ ]
[x-pack/plugins/task_manager/server/monitoring/task_run_statistics.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b1a95078ab7e8f39fb4934879f96292ceb6f82a5bc6bacbca529c4a5444e1665)
- [ ]
[x-pack/plugins/task_manager/server/task_type_dictionary.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b99902e9dfa7d87ad6bf02ee4cda92aad211fd3ecff70ab4393f1a1d92fd9fd9)
- [x]
[x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form_consumer_selection.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-3610e524bbb22f9e7ff338f5d26ec772a6535ae624b3d624afdad42643206864)
- [x]
[x-pack/plugins/triggers_actions_ui/public/common/expression_items/for_the_last.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-f943db0c37a2e9db987e0471ab1e4e05547b05bd1921944725044127123121b9)
- [x]
[x-pack/plugins/triggers_actions_ui/public/common/expression_items/group_by_over.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-7458115ab3dc2dd6466775bad827b1dfd8e34d1c4159a188abf6846d37db3dc1)
- [x]
[x-pack/plugins/triggers_actions_ui/public/common/expression_items/of.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-3314770802ed035c53a28a0ecc61701f968ac30bb06dcb84290caadab750f1f3)
- [x]
[x-pack/plugins/triggers_actions_ui/public/common/expression_items/threshold.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-e75015dc2f0470d4df164a2a67dd6741614b39713f96aa9335c3c2ea30300110)
- [x]
[x-pack/plugins/triggers_actions_ui/public/common/expression_items/value.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-8f76afb4de6908d9acf5b5e993ca11f23e02836d630be7a0849aa9bf30c39018)
- [ ]
[x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/event_log.ts](https://github.com/elastic/kibana/pull/186437/files#diff-70de70757d814d10d09f2ee53aff8409c74d87627732656db8a192a9dc9b44a9)

@elastic/ml-ui 
- [x]
[x-pack/packages/ml/aiops_log_rate_analysis/get_log_rate_analysis_type.ts](https://github.com/elastic/kibana/pull/186437/files#diff-91eed9746e6e89d160dd171be309a72f91c96c5e19068e5afc96961b2d65284d)
- [x]
[x-pack/packages/ml/query_utils/src/build_base_filter_criteria.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e755af1f2f0047f4496a94e6b88d005c34de16a9588f3faba5ef5af7e936ebf2)
- [x]
[x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-d21e8cc4c066ea812d2572e693a8490104349261d376275070eaebee0024e18d)
- [x]
[x-pack/plugins/ml/public/application/explorer/explorer_charts/utils/draw_anomaly_explorer_charts_cursor.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5fe3935901f2e0ce9dc834841cd7ed10fe093a83500dd5a8e5e1c58df10ee575)
- [x]
[x-pack/plugins/ml/public/application/jobs/jobs_list/components/datafeed_chart_flyout/datafeed_chart_flyout.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-d1103856290d202f43808e560babeeaaf90f1d50b198315f8117f6b9ed78b7d5)
- [x]
[x-pack/plugins/ml/public/embeddables/job_creation/common/job_details.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-0de793fefb4d9f2483f07b1ca700f81abe3a5e8cedd18edee5d53038734721be)
- [ ]
[x-pack/plugins/ml/scripts/apidoc_scripts/schema_extractor/schema_extractor.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-6b4df415cc22862a0f51e0efc5b3ffcd6159dfdedfa4e58d4b8119c0eefa11e0)
- [ ]
[x-pack/plugins/ml/server/lib/alerts/register_anomaly_detection_alert_type.ts](https://github.com/elastic/kibana/pull/186437/files#diff-71fccaf2dd3c66b6270dc3bf286761d17d83648677044bdbcda547f114293f96)
- [x]
[x-pack/plugins/ml/server/models/job_service/jobs.ts](https://github.com/elastic/kibana/pull/186437/files#diff-117572abd5e46abdd015659b9d42d3f567ce194da876b8543c1d7b1b00a31b91)
- [x]
[x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-25e5edc62ee2a7768685332bd3b716a2a2bfcc6aa4e113169af27e5287364057)

@elastic/search-kibana
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-932dcfd135690493a73b5ea7672920675cf597533ed9f5caa8c4f5813217b95d)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_data_view_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b6c2a1dd70abcb1ce0b8aa2a4ee7d758d6d8d82acb6d1c1270ddae3065b23db3)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_explore_table_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-feb52400dba49e5b7a64a214458fc3a7af242878368170d9df87921024439e28)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_integrate/api_key_modal/generate_analytics_api_key_modal.logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-807ec904b8b0ee7ec6916501ddc9eaa01adc1c4c83288a76cf652f69582ea050)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_toolbar/analytics_collection_toolbar_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7272575e7ba5c7acaa19bdbdd4608e193dc676b94cd9944c06f5bc69c6cf0930)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_collections_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0d1c4d240c45aebaa735bb7f06d5311c05274b601c409b2b14454f95d1325621)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/app_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5f62c8eeaf06710e3a73e32a3ac2e687685740ae3e04b73cdf8299d816a75d73)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/analytics_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-16164984dc6aaccd02e30597a3f3669856a906b10b1c5d539e1d3714647cba47)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-2637e43c60989203ca6007a541e7e4a8ce637158427e4b80cce937e29373fe2b)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-433210633b338895845de7857f0e438d21874088b85075683525943be06b4d33)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/add_domain/add_domain_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-67625817cbc98db8ed97a966a784b7e73812210b8970e3466340ab14ccd8052c)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_custom_settings_flyout/crawl_custom_settings_flyout_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-050fc78aeb732e9c72fe784e4822a1999164f35bb63feb4ad84dab84a1b3d0a2)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_select_domains_modal/crawl_select_domains_modal_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-19470ae1eef70cf5a310e85832fb055848dcbd7b27c6a8cf6e3b27bb6e672632)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/domains_table.test.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-017cd4c0cf7059b8efbec69079694c07d87b7e3b6afc2a840b45acbd805334ee)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/automatic_crawl_scheduler_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3715fa4fa3d67127e3e30f9809649b0ca5b1f52034aef7cf5f72cf1827066108)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/manage_crawls_popover_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-bf15713b8a2f0b15ac46684215596244e5834373621546a17f31572cf591cafa)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-bc66c6da767c9005073a9f7fd718ef1125e463aaf6010ebb5972563635fd2710)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_domains_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5234db544b010f2c0866ba30ad84106cef537ab346713d2dd2857d4d54539eea)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-60292906b206600afee4fdd41bc88ae290ed94213e9b2826433367909622c0e9)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_single_domain_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-734ea0c74b844227497c80480e713c257be3f5947eefce78fecff62c44007c5a)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-43869ef7ea914bd42f1983a591bdf394c2de826ebf408be5ade4e369db4da173)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/suggestions_logic.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-22886b69abcc90af7bc5d5470b10e70fcbf838c77f7631154ed8d3628f125471)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/curation/curation_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0592460c84735fdb5f214a78a15876d4306c4fa50f5fab7cd0a60a4e74d3af05)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/curations_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b4b801ac411666b925304467a6630dddfa4167ea758c7ed0f0a30d71d0f2205f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_suggestion/curation_suggestion_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-52f01a7141997aa1ba474afb5424bfdf2ffbe705eee8f3a7e5baf75613086381)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_history/components/ignored_queries_panel/ignored_queries_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-fe224d354808e91d93cf1ecbfffd3e7f970a73af0527f652dcf8948de26cba3d)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8a003b86811ad2113cbd3e7288a2194b8e3039a4f88a481da946a6a11fed51c7)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b71ba6db13e3d95744d92bc36b3776537968e20b0df322ed45d8bdbc0c51d400)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-eed43fc66e965cff2495e11b5740d750729d5f328382b75541f8722f739cd811)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-6b45da7bde43aa8c93f93d2c3ccb27db723eab03f12e27d08bb388f1fe329735)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5b8b5bb81b8590358fee0797c082b474939ed2caf853a0fb419737b10cfd4302)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-42121d5ecf073610bde08eff5e3290645f48f3299025301219eb49724f88f106)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/audit_logs_modal/audit_logs_modal_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-c35eadf677d47802835ee5496bbdfc62465a9729f6b6f36362dfab90c86c02f1)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/tables/meta_engines_table.test.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-3f85ca056bb6d1b1ad8f69e12f1d7bc1c787e01359ec4f661af121f6a3aeeb37)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/tables/meta_engines_table_expanded_row.test.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-66cd24bdd2a0fa6ee2f5677ff4e341f3117fa1720765ba58d3e19d485eff1ef2)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/tables/meta_engines_table_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-dba03b6166512f7e454f6ab109ec7dfcb67d6b79fb8450374c310b6a054408b4)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/tables/test_helpers/shared_columns.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-3acd3ed82136fb64bb588acb62d372a5322b79cce544cfdcd8b51d37d3b9bc75)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0b628318fc6e35cb0c1b995e3f482c7bde5f1cfd58e8cd2fe945c73d30d0068f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/log_retention/log_retention_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-745974ad84ae42576a8b33d46a5eac0b3cd0b46aee5d62095881986896980cea)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e98525f3bf3f2344c9c5a00657e27eb144d99725ac02aac3b1ac80aa92685881)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/multi_input_rows/multi_input_rows_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-f7e0d0d5e8b1eb37740ee5c62bbc704387c4147aa539bc853810e9085d6cb429)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8f932314a95e85fb9e58bdfb28af437b2d3be46a00caa15052d09619f96bf26e)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/result/result_token.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-9166a998b5c1303ade597f246e8ad70391ca5b5f4b7f8284a7fa2aac3144b718)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-25b0692cb22d32991d999219bcc03873f57e2284a20536a1f33d5b33e3e589ba)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-bdc84c70ef71d4206af2a0d091358e70e832510871c5731b855788b479290af5)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-de400b8adb84d4473ce0154f2ce70ecd375320a638098ad8762f4a1504853ffa)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/reindex_job/reindex_job_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3a9731c43c4d5d826ac0cc6889945b0f0515840bc914fcebd5ba5c9babab6540)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/schema_base_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-1f5ebe9c073bf1d71e45f037531e2e768939269162485cd8e873175fc623826f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/schema_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-97064383218315e027edd75fb3294be638513b2dd33686a720d25dcf81480cab)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/schema_meta_engine_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7a2997faf930df6eb55f8ad06257de4bc23ca82c211b7e2c5468c1d7d87539ea)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/search/search_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-17ac74c0f7616bc16c0d0ab9099e7ddc9ea3f46b0c5c889f6866c485a6c5c3e8)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/search_ui_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0e79531841906180db0b5c56ef96308ad057a3f948abbfd291564cc895fcba68)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/source_engines/source_engines_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3d2abfe70e0c4230e85a7fd76e524b4fe38c68d99f5125a462cdee199b18d962)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/synonyms_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e1c7d85f9983b5706417342b8beedc82e8ee9ef70ba6c9d73a4300f6947660b4)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/add_indices_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-529444e45111837f6bb988d9f7360628c4b8380edda3cc327cce976faabda928)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/connect/generate_api_key_modal/generate_search_application_api_key_modal.logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7cf47fd139eb63cfd8005e77f5443a1d003108150cb629ba18526bbbbf999384)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_application/search_application_name_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ccd01f44d22293edba039f982513ff00a4221646fcd259b341ffa1ba23b9ffb1)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/create_search_application_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-665e77c4aac1ed37ef7b7a56c3a00e397e18c2328e6c3b4b197a1e638713a4ab)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_application_indices_flyout_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5b3e4c1cee4fe88660556dcdf24c1b798a58d955ccd6cfc348c463adebc435e2)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/applications/components/search_applications/search_applications_list_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b713b27e34672130767b511020550400f4e6a014f4074f4d133a24e574d0383c)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/ml_models.mock.ts](https://github.com/elastic/kibana/pull/186437/files#diff-51fc7400f9c06bfe66d9facf9c5b7ede20b950b4ea6b3bfe90483a9a9d04379e)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/connector/cached_fetch_connector_by_id_api_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d5bd161f3e13a935080e62fab12345cf71787141c84b51683b65203368815baf)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/index/cached_fetch_index_api_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8718567dee7cf1c2faac6606078846a61bb816f047f96096588c1037ea00ddd3)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/api/ml_models/cached_fetch_models_api_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e6a0231e6f62f472e2ec5e64222abc2027b350bc2c77541cc431d011865f4aec)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/attach_index_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-79a81a7e0a5f17c62a54b4db76b512559548272ba4ae0e6242a4e56828d980a9)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_name_and_description_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-a18949bc9ba6cacb814ea1bf1789044733606c8ce1f365f64b48b8a3d8349a86)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/connectors_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-1e9e7d5ee108b305b6fa421fd0f8096293a747c2d1a4bd5940e62ce6670f7d62)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/method_connector/add_connector_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-6f0bb1b86af9c43332d5336db0dca356c6d388d19194c4e6ce64c06cf19c7f3b)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/method_connector/new_connector_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-026a404fcff68f31283634f8f8171732bc933fdb3722920caab7c0be09e65510)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/new_index/new_search_index_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8619f347277f8e8aac68a2370d219ed59921a152b4b385f1f0b6054a8419cc21)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/generate_api_key_modal/generate_api_key_modal.logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-27a49e3c9216a34e7d4283af21aeefa7fe5ba98fc7edd27fea3f951ecb73e1bd)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_name_and_description/connector_name_and_description_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-cbdbbf6c4bcef9cbc55e29e9b4ce40cca08335e955fbd4b101a0e800f484a1c3)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/sync_rules/connector_filtering_logic.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-7b1624e663c6afcffdcbf97e05093f14f720e6d16e1aa0cdde701571adcea63b)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/automatic_crawl_scheduler/automatic_crawl_scheduler_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-af7abfa1ebfa988adacb86c9cae8b9d0d4ec964d90018b4eb9bb16de375545d9)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawl_custom_settings_flyout/crawl_custom_settings_flyout_domain_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-060bbb12f4ecde17aee4eb0ab01dcb720241503675d55fe2632c3c1acc4f73ed)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawl_custom_settings_flyout/crawl_custom_settings_flyout_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-fb31bc222ccd5331c7f3dd1dfa7eea9bdf22d37ac97d72f4c7a67436bb810e5b)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawl_custom_settings_flyout/crawl_custom_settings_flyout_multi_crawl_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-80a226902a53fe0e17209a77741f42bd8fed172c1d2735665d0f406e1c93123c)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawl_details_flyout/crawl_detail_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-39c2166d4e03e6d636acfb64863da5d23e27e619cdda4a63e09c493da6eeb25e)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_configuration/crawler_configuration_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7da484a261c1c87c9fd813b5d3f5d11edbb36e8949900482dc8610610e2f1478)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/authentication_panel/authentication_panel_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-0e98ee7ecfa61c14defca8ad0ec2df6a314aedf1fc7d9eb28641977952086ba6)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/crawler_domain_detail_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d23490a2df1a98796f27c5626e28083382e9693a17ca9e8cb58418664fdae1ec)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/extraction_rules_logic.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-aa7881c821ad64d7a975816cac4bce44a9da7133da8d36ce26fd2368e7626f8f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/domain_management/add_domain/add_domain_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5978330358dfdc9eaa88f20d4120ada3191e86f1886238471d9118811295f833)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/domain_management/delete_domain_modal_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-2c57dd1144a4564b34e92cc6716039f97473b99350930e3575ef0518aa3934b9)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/domain_management/domains_table.test.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-e808b09c9d7389ca1aba6e9c5d13529ef20b428d087fdc8892296a42ad0f2e69)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e9988365f51f1a6c87eef4b1b127cdf111a1968ffe57b6ac33504cbc0171bd91)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/overview.logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-a72173f361b17a7293bc83e94385e3bea853e9fbda62f4f5cf553c96b84d90cd)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d94da0f264e490e3486a9aa392de72c3988570b79744087f6c5724fc5d7f302c)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/test_pipeline_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-de43e776aa2fd3de8c1bd42e39fbe524ebe85b7287d9ed1355a733557ddb94b7)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-468580957fe38bbdff908443a007a97b5a817dee1cd917becdad1be90c4a3606)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d77f51637904e4d4672b6b2d7f7ced6df73af142e8ba3fb5a074c700b5cf0fd0)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-88bb9a545df5ab8a9e354d7b998f3d1ce747d8f755319c822a97a7a61cbb38e5)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8f35ce0853cbe2749c95d586d2c69a458e852a5931022626f03bcc021ab31a35)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-4f34d73edf0dd3ee9ae34be81bba138749fd9aebfacee306f9c9912bc18fb908)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/settings/settings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-9abf25b8cd7b3311c09efcf537fe708f558eaad127f9ae56552c30ec38be3dbc)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/api_logic/create_api_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b1431abb686615818a7e768d59bd8d3c00c143ff8e87501b40f06214c40b35cf)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-cd22dcfbb976160b2eb28d781fe64ca311f72e5904e8ac139498018302a5f1da)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/http/http_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-bf7f398a500b979b731c2b1da940e0b5bf1cd7364aa918139d1a92474f77564d)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-71787c22cb75097f06736441c4c2bfadd2b8081ce08c25b7053d9a785449b489)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/licensing/licensing_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-f9f9a7485e95322395d0d062617ea55aa7eabb125ce79b1ddb09df7acc7b74e1)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/tables/inline_editable_table/inline_editable_table_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-69d88e8fc383a1feef672934174d857f54ae8dba8caafab8891aeac3db08732f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/shared/url_combo_box/url_combo_box_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e0672ab52a42dd7ef1c19a7065aa482fb2480d8ffc3dc0ede50685bbb4e23d42)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/app_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7d683e507c5a37393e10abec02e78038767132f1713de32909c329de9a7e7752)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/api_keys/api_keys_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-1d201f70e2652f03ac4e07639dc8fcfcdda2f273fa1f042f81913533725bdd5e)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_custom_source/add_custom_source_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-cce3cf43dc74255a871b9d0997af7d81f4ca4c9530e0fc6832cc7d75b907bbae)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_external_connector/external_connector_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ee7c158ad37746c929b42d54321e2a13260d1ff64ce72a84f29bea4300966095)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-60271cee3cf40f475f212f4c14e1581629fb74186e5cc0b5cc61e799a0fecd24)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/github_via_app_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-ebc66e8f6a619feb731b82fbcec83ce75f01acdcf7e32341cf645e646df1440e)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/display_settings/display_settings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3b256d71f9acb2e34dd1c8364117968218ff3da43d9c51b12851d1ba2f814b68)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/schema/schema_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-56458e080954c6ce153fa9de6107398ca7fb370e8483a236da8a8d20d2a02895)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/synchronization/synchronization_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-1e3afdd7e36facb46861631967318967f4b23e8a1dad28ef21e1d7f8f107c428)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-1ed94b9a614533248f07877178a4ba9603e5ab97815c1d607f1b626af91bb9a2)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-10a9c1b0ad1b25a158844418286fc32ba3a6d87d221cfd1a1fcc96ee76cbd519)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/group_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-fa49b84f3486800a7b48b5bf9587198979aa6c7e9bd60ce4d704f35da822d368)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-a1ca9ba9edef5d8b857987c4d9efdab1d848903626690c0f9c9b626769856385)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/oauth_authorize/oauth_authorize_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-15b23ad5ad81a95fd6fb8ca75b57a0f53a232f59f50e1862fe693d4bca13847f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/gated_form_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-246706b91ff4301b4e24195af76fdc0b84fec96414789408038d7d04fc13ea58)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e4c385f600899d70e84568281952d82ff1eaafd88d11a1c2fece6242387d9324)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/role_mappings/role_mappings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-2dff45e703ab1e1d65358bfc98811a3b440641b5c782919e6e51cfb15074ff6f)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/search_authorize/search_authorize_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-cac68f64f0cea04a3ff54ffd14bc996baa7bc44b7665c8a39d9cf91fb53c2144)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/security/security_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b067f22de71e80a6cc9d6d1bb34db8f0772011130c8ac50bbacacc3572b7a45b)
- [ ]
[x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/settings_logic.ts](https://github.com/elastic/kibana/pull/186437/files#diff-66ec90541af1c1d04c9bf500a858f403039f85c9c99a635288ad08def479a2cb)

@elastic/fleet
- [ ]
[x-pack/plugins/fleet/common/services/package_to_package_policy.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-89fb3d99874cf8558d4e11b8ea7c3fb0f681663ae0e958a319663884635f1556)
- [ ]
[x-pack/plugins/fleet/server/services/epm/archive/parse.ts](https://github.com/elastic/kibana/pull/186437/files#diff-232dc9fd708e4f1495f59c12729834fecd84bd8af70d4c21363da14e79aa30c1)

@elastic/kibana-gis
- [ ]
[x-pack/plugins/maps/public/classes/layers/vector_layer/blended_vector_layer/blended_vector_layer.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8a7def56c98651ea1f9876addb48421bca83b9158dd9acb70a52bf413fc398d0)
- [ ]
[x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-69ccffa0f157cee961253b280ca40860bc2915a1fd772e15d23ceba6137cc414)

@elastic/stack-monitoring
- [ ]
[x-pack/plugins/monitoring/server/lib/calculate_auto.ts](https://github.com/elastic/kibana/pull/186437/files#diff-22169ee25bba1c0b7cf3c8c23e24e99d96097e44e3296bda33513290ec94665d)

@elastic/obs-ux-infra_services-team
- [ ]
[x-pack/plugins/observability_solution/apm/common/utils/flatten_object.ts](https://github.com/elastic/kibana/pull/186437/files#diff-54f4a14d914e1c4a73da2de122a1510a18d5515ad6494612b774ce74c2afc5b0)
- [ ]
[x-pack/plugins/observability_solution/apm/public/components/app/service_map/use_cytoscape_event_handlers.ts](https://github.com/elastic/kibana/pull/186437/files#diff-d890cf784e20969087617da20bd51703ec00ae888ba8c5bf4aeefa7b2deaf702)
- [ ]
[x-pack/plugins/observability_solution/exploratory_view/public/components/shared/exploratory_view/configurations/lens_columns/overall_column.ts](https://github.com/elastic/kibana/pull/186437/files#diff-b51184245cd445d7e0b85568910f22e346df3035298d0394f202089d7fe2c949)
- [ ]
[x-pack/plugins/observability_solution/infra/public/alerting/inventory/components/metric.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-aa69368d04202fb45b0d66c56653bdd106d29d7bdf6475400d9e12c7fe5959ea)
- [ ]
[x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-fa742f7340759fa0d359a3bb4417f5d07794923b4b57a5f47f0905512966f1a1)
- [ ]
[x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/expression_editor/threshold.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-5191c0e1e37ac03af1f6a4d36cda26915c76eacc892723d9bf82af4ac857fc66)
- [ ]
[x-pack/plugins/observability_solution/infra/server/lib/infra_ml/queries/metrics_host_anomalies.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-7d05012bd4ade42b1b471607a01d641a435baa9c48125168570dd28c38e16399)
- [ ]
[x-pack/plugins/observability_solution/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-8a437b5818061218847730f933aa481ece98a284c100d413ff7bfa3966e9ace0)
- [ ]
[x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/private_formatters/common_formatters.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5e3452befed70ce7ba037850a269d7e130228bd570b94da61206c093edf24cbb)
- [ ]
[x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/public_formatters/browser.ts](https://github.com/elastic/kibana/pull/186437/files#diff-6690c075d5b3f8a2d848b62473eb836441e582a17ea6f6f85c8e63bd3f59105d)
- [ ]
[x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/public_formatters/http.ts](https://github.com/elastic/kibana/pull/186437/files#diff-845abe4f787fee19b5f0656d434835080ed0d4a405e8fb3554aea1eced106112)
- [ ]
[x-pack/plugins/observability_solution/uptime/server/legacy_uptime/lib/requests/get_ping_histogram.ts](https://github.com/elastic/kibana/pull/186437/files#diff-fa004e86bd085c7f13fdb42972e221ecf0e1366af018fef20aa720a356ecfba5)

@elastic/obs-ai-assistant
- [ ]
[x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant_params.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-ea91d7daec5aa3f0c58d217308838b61c2ced3b7b61ec08bf4e65643c4d0f2ad)
- [ ]
[x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/builders.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e69a9ff8cbd46cc3dfb0fd9d8fd166e0db4cb29baa8200cd2e6dc19b6cf48115)

@elastic/search-kibana
- [ ]
[x-pack/plugins/search_playground/public/components/view_query/view_query_action.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-b5e8d0638619def1c273d21336793e7c611fe1a43506ea89ea858a325b1d193f)

@elastic/kibana-security
- [x]
[x-pack/plugins/security/server/authentication/providers/anonymous.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5907942d0f69e399c09244c6b22a4454cb2de11686cfd924057ee455fd55abc4)
- [x]
[x-pack/plugins/security/server/lib/flatten_object.ts](https://github.com/elastic/kibana/pull/186437/files#diff-144d405c4cb888c816c967f663e02aed8b522a164c37f900ee3ea4fc496cc50a)

@elastic/security-solution
- [x]
[x-pack/plugins/security_solution/common/api/detection_engine/rule_management/import_rules/rule_to_import.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-9c85853d1dc8a73e5d8a3774b0da907fc41ffe1a6099b2d3a9884398070eaac4)
- [x]
[x-pack/plugins/security_solution/common/endpoint/generate_data.ts](https://github.com/elastic/kibana/pull/186437/files#diff-12dc63d6524a714b19d487bcf75486270eea7d5d52e6d1ecdeaa935545f33ac0)
- [x]
[x-pack/plugins/security_solution/public/common/components/guided_onboarding_tour/tour.test.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-4511e3f72ca02b041c93cb355572b860c3ea12663b6411a7b0bf90b25c2fa3e6)
- [x]
[x-pack/plugins/security_solution/public/common/components/matrix_histogram/index.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-832594ad881dbd3568c22065d852c8f286d84562c4a114a194a170f535e02b50)
- [x]
[x-pack/plugins/security_solution/public/common/components/ml/links/create_explorer_link.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-b6cc2f3a0f043136c6162c73e964fad5d7a7f26cba993f9cee22922790060cff)
- [x]
[x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/reducer.test.ts](https://github.com/elastic/kibana/pull/186437/files#diff-dfcea3ca5c8b630b42ad6ecc88130a025698d3c9e4f2e7c6ef1c7f9c062e3bea)
- [x]
[x-pack/plugins/security_solution/public/explore/users/pages/details/breadcrumbs.ts](https://github.com/elastic/kibana/pull/186437/files#diff-a803b4f0dbfb6f4bb8397333b6e0abe19c9274ec12850325dfe53c31630ba9a7)
- [x]
[x-pack/plugins/security_solution/public/management/services/exceptions_list/check_artifact_has_data.ts](https://github.com/elastic/kibana/pull/186437/files#diff-4611c7360f013788e308783c956e8fb60160d3ec92d55c6a5a2feff6202357d3)
- [x]
[x-pack/plugins/security_solution/scripts/run_cypress/parallel.ts](https://github.com/elastic/kibana/pull/186437/files#diff-9f40ced6d29c4fc2709af881680400293d8ce1bc9ebb07b9138d6d99c83c09c9)

@elastic/security-threat-hunting-investigations
- [x]
[x-pack/plugins/security_solution/common/utils/field_formatters.ts](https://github.com/elastic/kibana/pull/186437/files#diff-245eb47c4e23306ad09acb7dc0d67773edf102c243ce16395562918ed3ffff19)
- [x]
[x-pack/plugins/timelines/common/utils/field_formatters.ts](https://github.com/elastic/kibana/pull/186437/files#diff-cdd49607e6de50d407a10b887f6bf2c930cadb11663d26649b56438f9727548c)
- [x]
[x-pack/plugins/security_solution/public/timelines/containers/index.tsx](https://github.com/elastic/kibana/pull/186437/files#diff-c63c93153b6f7dcc62fd19575609db16b14c783d5562e901c6240de2ae19796a)
- [x]
[x-pack/plugins/security_solution/server/lib/timeline/utils/compare_timelines_status.ts](https://github.com/elastic/kibana/pull/186437/files#diff-e5698692c8fee698a4ca6f44c140c5ef8b65ebed6d944fc4d6c60cb8ec72ab1e)

@elastic/obs-ux-management-team 
- [x]
[x-pack/test/alerting_api_integration/observability/helpers/alerting_wait_for_helpers.ts](https://github.com/elastic/kibana/pull/186437/files#diff-3f2b755a964c21d5e0be45a480f691bbfeb07a0793488fbee2b56eeed544a06d)
- [x]
[x-pack/test/api_integration/apis/slos/helper/wait_for_index_state.ts](https://github.com/elastic/kibana/pull/186437/files#diff-5e8ee3140d4987b39ac117159a26b200124e3ae64a7fff896abd96ec8cc113ae)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: nickofthyme <nicholas.partridge@elastic.co>
Co-authored-by: Mark Hopkin <mark.hopkin@elastic.co>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
Co-authored-by: Maxim Palenov <maxim.palenov@elastic.co>
Co-authored-by: Walter Rafelsberger <walter.rafelsberger@elastic.co>
Co-authored-by: adcoelho <antonio.coelho@elastic.co>
Co-authored-by: Kurt <kc13greiner@users.noreply.github.com>
Co-authored-by: Maryam Saeidi <maryam.saeidi@elastic.co>
Co-authored-by: Jan Monschke <jan.monschke@elastic.co>
2024-07-29 16:31:04 +01:00
Pierre Gayvallet
d0b807403c
Improve features plugin's contract type names (#187944)
## Summary

Fix https://github.com/elastic/kibana/issues/65999

Change the `features` plugin's contract type names to follow our naming
convensions and to avoid needing to rename them during imports

(and yeah, I'm triggering a review from 30 teams again for a type
rename, just for the fun of it)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-07-17 15:33:32 +01:00
Alexey Antonov
5756b299a3
fix: [Obs Alerts > Rules][SCREEN READER] Icons and repeated controls need unique accessible labels: 0001 (#188075)
Closes: https://github.com/elastic/observability-dev/issues/3638

## Description
Observability has a lot of icons that are used for controls and table
row actions. These icons often have the same aria-label repeated across
rows. While this meets the letter of SC 1.3.1: Info and Relationships,
the repeated generic labels do not usually answer question what users
are editing, or what users are deleting. We want to provide clear labels
for each row to make the implicit relationships sighted users depend on,
explicit for screen reader users.

## What was changed?:
1. `title`, `arial-label` attributes were updated for mentioned places

## Screen 

<img width="1546" alt="image"
src="3bd626b4-2154-48b7-a6cd-22580cfd3d4b">

<img width="1546" alt="image"
src="2863c9d9-b09b-4150-9d02-b89a3c2fd9f6">
2024-07-16 15:59:34 +03:00
Jiawei Wu
762f4cd14f
[Response Ops][Rule Form V2] Rule Form V2: Rule Form Page and State Management (#184892)
## Summary
Issue: https://github.com/elastic/kibana/issues/179105
Related PR: https://github.com/elastic/kibana/pull/180539

Part 3/3 PRs of the new rule form. This PR adds the create and edit rule
page as well as the state management using react reducers.

I have also created a example plugin to demonstrate this PR. To access:

1. Run the branch with yarn start --run-examples
2. Navigate to
`http://localhost:5601/app/triggersActionsUiExample/rule/create/<ruleTypeId>`
(I use `.es-query`)
3. Create a rule
4. Navigate to
`http://localhost:5601/app/triggersActionsUiExample/rule/edit/<ruleId>`
with the rule you just created to edit the rule

<img width="1196" alt="Screenshot 2024-05-14 at 8 27 00 PM"
src="576fecdd-bd7b-4cad-a3db-aab3163abc46">


### 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-07-03 20:34:31 -07:00
Jiawei Wu
43ce965668
[Response Ops][Rule Form V2] Rule Form V2: Rule Details (#183352)
## Summary
Issue: https://github.com/elastic/kibana/issues/179105
Related PR: https://github.com/elastic/kibana/pull/180539

Part 1: https://github.com/elastic/kibana/pull/183325

Part 2 of 3 PRs of new rule form. This PR depends on the code from part
1, so only merge this when part 1 has been merged. This PR extracts the
last section of the rule form, the rule details, from the original PR.
The design philosophy in the PR is to create components that are devoid
of any fetching or form logic. These are simply dumb components.

I have also created a example plugin to demonstrate this PR. To access:

1. Run the branch with yarn start --run-examples
2. Navigate to
http://localhost:5601/app/triggersActionsUiExample/rule_details

And you should be able to play around with the components in this PR:

<img width="1281" alt="Screenshot 2024-05-13 at 9 44 14 PM"
src="7ca900e3-ca9a-4810-8b24-7c3ea41055d6">

### 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: Zacqary <zacqary.xeper@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-06-05 16:24:57 -07:00
Jiawei Wu
0851587862
[ResponseOps] Reduce triggers actions UI bundle size (#184560)
## Summary

Reduce `triggersActionsUi` bundle size by removing import from
`alerting-ui-shared` index files.

### Before
<img width="467" alt="Screenshot 2024-05-30 at 9 38 26 PM"
src="6d8b6744-3598-4439-9c30-3d81f7a90ab0">

### After
<img width="437" alt="Screenshot 2024-05-30 at 9 37 12 PM"
src="4fc7e4e6-8efd-4911-a25a-149a664ca105">
2024-05-31 15:22:37 -07:00
Jiawei Wu
dc3f76b557
[Response Ops][Rule Form V2] Rule Form V2: Rule Definition (#183325)
## Summary
Issue: https://github.com/elastic/kibana/issues/179105
Related PR: https://github.com/elastic/kibana/pull/180539

Part 1 of 3 PRs of new rule form. This PR extracts the first section of
the rule form, the rule definition, from the original PR. The purpose is
to fix a few bugs (Such as improving the alert delay and the rule
schedule input validation), and also try to make the PR much smaller for
review. The design philosophy in the PR is to create components that are
devoid of any fetching or form logic. These are simply dumb components.

I have also created a example plugin to demonstrate this PR. To access: 

1. Run the branch with `yarn start --run-examples`
2. Navigate to
`http://localhost:5601/app/triggersActionsUiExample/rule_definition`

And you should be able to play around with the components in this PR:

<img width="1257" alt="Screenshot 2024-05-13 at 10 10 51 AM"
src="a1ab6d96-946d-4bf6-94e2-6aa903d0b8f5">

### 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: Zacqary <zacqary.xeper@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-05-30 19:11:33 -07:00
Tim Sullivan
c0696a8c58
[EuiProvider] Fix Gis-Presentation-Visualization code (#183875)
## Summary

Fixes needed for getting CI to pass when EUI throws an error if
attempting to render a component without the EuiProvider in the render
tree.

## Detailed description
In https://github.com/elastic/kibana/pull/180819, I will deliver a
change that will cause EUI components to throw an error if the
EuiProvider context is missing. This PR comes in as part of the final
work to get all functional tests passing in an environment where EUI
will throw the error. The tied to the ["Fix 'dark mode' inconsistencies
in Kibana" Epic](https://github.com/elastic/kibana-team/issues/805) has
so far been in preparation for this.

**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**

<img width="1107" alt="image"
src="c0d2ce08-ac35-45a7-8192-0b2256fceb0e">

### 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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
2024-05-22 13:28:36 -07:00
Tim Sullivan
d0ca93a6b0
[EuiProvider] Fix Response-Ops code (#183876)
## Summary

Fixes needed for getting CI to pass when EUI throws an error if
attempting to render a component without the EuiProvider in the render
tree.

## Detailed description
In https://github.com/elastic/kibana/pull/180819, I will deliver a
change that will cause EUI components to throw an error if the
EuiProvider context is missing. This PR comes in as part of the final
work to get all functional tests passing in an environment where EUI
will throw the error. The tied to the ["Fix 'dark mode' inconsistencies
in Kibana" Epic](https://github.com/elastic/kibana-team/issues/805) has
so far been in preparation for this.

**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**

<img width="1107" alt="image"
src="c0d2ce08-ac35-45a7-8192-0b2256fceb0e">

### 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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
2024-05-22 09:57:40 -07:00
Tim Sullivan
7d7f9de609
[EuiProvider] Fix AppEx-SharedUX code (#183872)
## Summary

Fixes needed for getting CI to pass when EUI throws an error if
attempting to render a component without the EuiProvider in the render
tree.

## Detailed description
In https://github.com/elastic/kibana/pull/180819, I will deliver a
change that will cause EUI components to throw an error if the
EuiProvider context is missing. This PR comes in as part of the final
work to get all functional tests passing in an environment where EUI
will throw the error. The tied to the ["Fix 'dark mode' inconsistencies
in Kibana" Epic](https://github.com/elastic/kibana-team/issues/805) has
so far been in preparation for this.

**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**

<img width="1107" alt="image"
src="c0d2ce08-ac35-45a7-8192-0b2256fceb0e">

### 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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-05-22 09:57:05 -07:00
Patryk Kopyciński
0780c19322
Add explicit children types (#181257)
## Summary

Prep work for React@18 bump

tl;dr In React@18 `React.FC` doesn't contain `children` anymore, so in
order to make the bump easier I have decided to split the effort in
multiple faces and hopefully this will make it easier for everyone

This PR focuses only on adding explicit `children` declaration either by
using `React.PropsWithChildren` type or by adding `children:
React.ReactNode` to the existing props types

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/46691

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Sergi Massaneda <sergi.massaneda@gmail.com>
Co-authored-by: Marco Vettorello <marco.vettorello@elastic.co>
Co-authored-by: James Gowdy <jgowdy@elastic.co>
2024-04-29 16:56:41 +01:00
Tim Sullivan
e4a32f8f3c
[SharedUX] Remove usage of deprecated React rendering utilities (#180516)
## Summary

Partially addresses https://github.com/elastic/kibana-team/issues/805

Follows https://github.com/elastic/kibana/pull/180003

These changes come up from searching in the code and finding where
certain kinds of deprecated AppEx-SharedUX modules are imported.
**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**

This focuses on code within AppEx-SharedUX. [Reporting changes are
separate](https://github.com/elastic/kibana/pull/).

<img width="1107" alt="image"
src="c0d2ce08-ac35-45a7-8192-0b2256fceb0e">

### 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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
2024-04-17 07:52:41 -07:00
Rachel Shen
9579635c25
[Share Modal Redesign] Reporting Refactor Modals (#180009)
## Summary

This PR refactors https://github.com/elastic/kibana/pull/179206 to have
each export type be registered in Reporting and then passed into the
share plugin.

This PR is focused on the redesign in terms of the export modals. Test
refactoring will be done in a separate PR.
Partially closes https://github.com/elastic/kibana-team/issues/753

- [x] Need to refactor this PR to include @eokoneyo's general modal
component
- [x] Lens needs to have Export with all three report type options - to
avoid circular dependencies move the Lens CSV stuff into the reporting
plugin vs having it in Lens
- [x] Canvas should not be affected by these changes (so the old
share/reporting code has to stay for canvas)
https://github.com/elastic/kibana/issues/151523 to keep in mind for the
redesign

Failed tests will be covered in this PR
https://github.com/elastic/kibana/pull/180406


### TO TEST 

Mark `share.new_version.enabled: true` in your kibana.dev.yml


### 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)
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))

---------

Co-authored-by: Eyo Okon Eyo <eyo.eyo@elastic.co>
Co-authored-by: Tim Sullivan <tsullivan@users.noreply.github.com>
Co-authored-by: Marco Liberati <dej611@users.noreply.github.com>
2024-04-16 15:01:44 -07:00
Kevin Qualters
91c8270aea
[Response Ops] [Alerts table] Cell context alert table performance (#180016)
## Summary

This pr makes use of a new prop (and some generic memoization fixes) in
2 eui prs merged recently (https://github.com/elastic/eui/pull/7556 and
https://github.com/elastic/eui/pull/7374) to improve the performance of
the alerts table. Mainly, the cellContext prop is now available to
consumers of the triggersActionsUi alerts table to pass in custom props
in a way that allows the renderCellValue/rowCellRender functions of the
various EuiDataGrid prop apis to remain referentially stable across
re-renders. There are also some various changes to various hooks and
props found throughout plugins that use the table to improve
performance. There should be no change in functionality, just a moderate
to substantial reduction in time the app spends rendering the alerts
table in various scenarios. Below will be some react dev tools
performance profiles, main compared to this branch, with the exact same
set of generated data.

Main, switching from 10-100 rows:

![main_alerts_table](6b87093f-5b1b-4d22-8e23-ccc3406317f4)

This branch 10-100 rows:

![context_alerts_table](75bf5d53-045d-42ae-979a-e52d6c0f8020)

Pretty modest gain here, 1 render is slower than any others on main, but
overall less time spent rendering by about a second.

Main, opening the cell popover on 2 cells

![main_open_cell_popover](60c5d132-b526-4859-a29c-5d3157142d50)

This branch, opening cellpopover

![context_open_cell_popover](2c60b250-6a9f-44b4-aec8-f9dcb8c87531)

Again nothing crazy here, modest improvement.

Main opening timeline and hitting refresh


![main_open_timeline](7525200d-cf9b-4f43-9f24-43f314740db1)

This branch, opening timeline and hitting refresh


![context_open_timeline](efd3cf95-a81a-4933-b310-fa61de24258f)

This is the case that brought this about in the first place, as security
solution shares a lot of code between tables, the alerts table
recreating all cells on every render was destroying performance of the
timeline rendering in a flyout/modal while users were on alerts page or
the rule detail page, which is probably the most common use case. 93ms
in this branch vs 2500+ ms in main. This type of performance hit happens
when almost any action is taken in timeline.

Main, selecting 3 alerts 1 at a time

![main_actions](87487149-cf6d-4bcc-9192-b64411abe321)

This branch selecting 3 alerts 1 at a time


![context_actions](8407953a-5af0-4cfd-9f2c-08c710c81fb3)

Pretty substantial improvement here as well, ~2000ms vs 67ms.

Apologies if some of the gifs are cut off, please try the branch vs main
on your own! This was done on a local kibana in dev mode, so things like
emotion are eating up more cpu than they would for a user, but there
still should be improvement, and I can't think of any circumstance where
things will be worse. Also this branch was a little longer lived than I
would have liked, so if you are reviewing and changed something around
these files recently please double check I didn't miss anything.



### 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
2024-04-16 19:00:11 +02:00
Christos Nasikas
7f94364db9
[Actions] Update system action example (#180107)
## Summary

This PR enhances the system action example to a) demonstrate better the
connector adapter abilities and b) hide mustache variables from the UI

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-04-05 17:05:10 +03:00
Alejandro Fernández Haro
1c1e20afdb
Use rxjs instead of rxjs/operators (#179553) 2024-04-02 11:41:33 -07:00
Christos Nasikas
26d82227d2
[Actions] System actions MVP (#166267)
## Summary

A system action is an action that triggers Kibana workflows—for example,
creating a case, running an OsQuery, running an ML job, or logging. In
this PR:

- Enable rule routes to accept system actions. The schema of the action
is not changed. The framework deducts which action is a system action
automatically. System actions do not accept properties like the
`notifyWhen` or `group`.
- Enable rule client methods to accept system actions. The methods
accept a new property called `systemActions`. The methods merge the
actions with the system actions before persisting the rule to ES. The
methods split the actions from the system actions and return two arrays,
`actions` and `systemActions`.
- Introduce connector adapters: a way to transform the action params to
the corresponding connector params.
- Allow the execution of system actions. Only alert summaries are
supported. Users cannot control the execution of system actions.
- Register an example system action.
- Change the UI to handle system action. All configuration regarding
execution like "Run when" is hidden for system actions. Users cannot
select the same system action twice.

Closes https://github.com/elastic/kibana/issues/160367

This PR merges the system actions framework, a culmination of several
issues merged to the `system_actions_mvp` feature branch over the past
several months.

## Testing

A system action with ID `system-connector-.system-log-example` will be
available to be used by the APIs and the UI if you start Kibana with
`--run-examples`. Please ensure the following:

- You can create and update rules with actions and system actions.
- A rule with actions and system actions is executed as expected.
- Entries about the system action execution are added to the event log
as expected.
- Existing rules with actions work without issues (BWC).
- You can perform bulk actions in the rules table to rules with actions
and system actions.
- License restrictions are respected.
- Permission restrictions are respected.
- Disabled system actions cannot be used.
- Users cannot specify how the system action will run in the UI and the
API.

### 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)
- [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/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))

---------

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Julia <iuliia.guskova@elastic.co>
Co-authored-by: Zacqary Xeper <zacqary.xeper@elastic.co>
Co-authored-by: Zacqary Adam Xeper <Zacqary@users.noreply.github.com>
Co-authored-by: Ying Mao <ying.mao@elastic.co>
Co-authored-by: Xavier Mouligneau <xavier.mouligneau@elastic.co>
2024-04-02 01:14:42 -07:00
Stratoula Kalafateli
10e34e4723
Make the formula api optional for the lens builder (#179255)
## Summary

For ES|QL charts the formula api should be redundant. This is going to
make the api lighter as there is no need to import the lens plugin if
you want to use the builder to create ES|QL charts.
2024-03-25 07:09:37 -07:00