Commit graph

449 commits

Author SHA1 Message Date
Gerard Soldevila
a9f076cb1f
Sustainable Kibana Architecture: Move modules owned by @elastic/security-threat-hunting (#203046)
## Summary

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

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

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

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

| Id | Target folder |
| -- | ------------- |
| `@kbn/data-stream-adapter` |
`x-pack/solutions/security/packages/kbn-data-stream-adapter` |
| `@kbn/index-adapter` |
`x-pack/solutions/security/packages/kbn-index-adapter` |

---------

Co-authored-by: PhilippeOberti <philippe.oberti@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-12 22:29:21 -06:00
Gerard Soldevila
33c18c72fa
Sustainable Kibana Architecture: Move modules owned by @elastic/security-threat-hunting-investigations (#202855)
## Summary

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

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

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

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

| Id | Target folder |
| -- | ------------- |
| `@kbn/threat-intelligence-plugin` |
`x-pack/solutions/security/plugins/threat_intelligence` |
| `@kbn/timelines-plugin` |
`x-pack/solutions/security/plugins/timelines` |

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

| Id | Target folder |
| -- | ------------- |
| `@kbn/expandable-flyout` |
`x-pack/solutions/security/packages/kbn-expandable-flyout` |
| `@kbn/securitysolution-data-table` |
`x-pack/solutions/security/packages/data_table` |

Co-authored-by: PhilippeOberti <philippe.oberti@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-12 16:22:03 -06:00
Gerard Soldevila
5dee9994c9
Sustainable Kibana Architecture: Move modules owned by @elastic/obs-ux-management-team (#202832)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/exploratory-view-plugin` |
`x-pack/solutions/observability/plugins/exploratory_view` |
| `@kbn/investigate-app-plugin` |
`x-pack/solutions/observability/plugins/investigate_app` |
| `@kbn/investigate-plugin` |
`x-pack/solutions/observability/plugins/investigate` |
| `@kbn/observability-plugin` |
`x-pack/solutions/observability/plugins/observability` |
| `@kbn/serverless-observability` |
`x-pack/solutions/observability/plugins/serverless_observability` |
| `@kbn/slo-plugin` | `x-pack/solutions/observability/plugins/slo` |
| `@kbn/synthetics-plugin` |
`x-pack/solutions/observability/plugins/synthetics` |
| `@kbn/uptime-plugin` | `x-pack/solutions/observability/plugins/uptime`
|


#### 10 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/data-forge` | `x-pack/platform/packages/shared/kbn-data-forge` |
| `@kbn/deeplinks-observability` |
`src/platform/packages/shared/deeplinks/observability` |
| `@kbn/infra-forge` |
`x-pack/platform/packages/private/kbn-infra-forge` |
| `@kbn/investigation-shared` |
`x-pack/solutions/observability/packages/kbn-investigation-shared` |
| `@kbn/observability-alert-details` |
`x-pack/solutions/observability/packages/alert_details` |
| `@kbn/observability-alerting-rule-utils` |
`x-pack/platform/packages/shared/observability/alerting_rule_utils` |
| `@kbn/observability-alerting-test-data` |
`x-pack/solutions/observability/packages/alerting_test_data` |
| `@kbn/observability-get-padded-alert-time-range-util` |
`x-pack/solutions/observability/packages/get_padded_alert_time_range_util`
|
| `@kbn/observability-synthetics-test-data` |
`x-pack/solutions/observability/packages/synthetics_test_data` |
| `@kbn/slo-schema` | `x-pack/platform/packages/shared/kbn-slo-schema` |


<details>
<summary>Updated references</summary>

```
./.buildkite/ftr_oblt_stateful_configs.yml
./.buildkite/pipelines/on_merge_unsupported_ftrs.yml
./.buildkite/pipelines/pull_request/exploratory_view_plugin.yml
./.buildkite/pipelines/pull_request/slo_plugin_e2e.yml
./.buildkite/pipelines/pull_request/synthetics_plugin.yml
./.buildkite/pipelines/pull_request/uptime_plugin.yml
./.buildkite/scripts/steps/functional/exploratory_view_plugin.sh
./.buildkite/scripts/steps/functional/slo_plugin_e2e.sh
./.buildkite/scripts/steps/functional/synthetics.sh
./.buildkite/scripts/steps/functional/synthetics_plugin.sh
./.buildkite/scripts/steps/functional/uptime_plugin.sh
./.eslintrc.js
./.github/paths-labeller.yml
./.i18nrc.json
./docs/developer/plugin-list.asciidoc
./oas_docs/overlays/alerting.overlays.yaml
./oas_docs/scripts/merge_ess_oas.js
./oas_docs/scripts/merge_serverless_oas.js
./package.json
./packages/kbn-eslint-plugin-i18n/helpers/get_i18n_identifier_from_file_path.test.ts
./packages/kbn-eslint-plugin-i18n/rules/formatted_message_should_start_with_the_right_id.test.ts
./packages/kbn-eslint-plugin-i18n/rules/i18n_translate_should_start_with_the_right_id.test.ts
./packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.test.ts
./packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.test.ts
./packages/kbn-eslint-plugin-telemetry/helpers/get_app_name.test.ts
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./src/dev/storybook/aliases.ts
./src/platform/packages/shared/deeplinks/observability/jest.config.js
./src/plugins/guided_onboarding/README.md
./tsconfig.base.json
./x-pack/.i18nrc.json
./x-pack/platform/packages/private/kbn-infra-forge/jest.config.js
./x-pack/platform/packages/shared/kbn-data-forge/jest.config.js
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_hosts/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_logs/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/heartbeat/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generate.sh
./x-pack/platform/packages/shared/kbn-slo-schema/jest.config.js
./x-pack/platform/packages/shared/observability/alerting_rule_utils/jest.config.js
./x-pack/plugins/observability_solution/observability/dev_docs/custom_threshold.md
./x-pack/plugins/observability_solution/slo/dev_docs/slo.md
./x-pack/plugins/observability_solution/uptime/.buildkite/pipelines/flaky.sh
./x-pack/plugins/observability_solution/uptime/README.md
./x-pack/plugins/observability_solution/uptime/e2e/README.md
./x-pack/solutions/observability/packages/alert_details/jest.config.js
./x-pack/solutions/observability/packages/alerting_test_data/jest.config.js
./x-pack/solutions/observability/packages/get_padded_alert_time_range_util/jest.config.js
./x-pack/solutions/observability/packages/kbn-investigation-shared/jest.config.js
./x-pack/solutions/observability/packages/synthetics_test_data/jest.config.js
./x-pack/solutions/observability/plugins/exploratory_view/README.md
./x-pack/solutions/observability/plugins/exploratory_view/e2e/README.md
./x-pack/solutions/observability/plugins/exploratory_view/jest.config.js
./x-pack/solutions/observability/plugins/investigate/jest.config.js
./x-pack/solutions/observability/plugins/investigate_app/jest.config.js
./x-pack/solutions/observability/plugins/observability/jest.config.js
./x-pack/solutions/observability/plugins/slo/docs/openapi/slo/README.md
./x-pack/solutions/observability/plugins/slo/jest.config.js
./x-pack/solutions/observability/plugins/synthetics/.buildkite/pipelines/flaky.sh
./x-pack/solutions/observability/plugins/synthetics/README.md
./x-pack/solutions/observability/plugins/synthetics/e2e/README.md
./x-pack/solutions/observability/plugins/synthetics/jest.config.js
./x-pack/solutions/observability/plugins/uptime/e2e/README.md
./x-pack/solutions/observability/plugins/uptime/jest.config.js
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/shared/deeplinks/observability/jest.config.js:12
src/platform/packages/shared/deeplinks/observability/tsconfig.json:2
x-pack/platform/packages/private/kbn-infra-forge/jest.config.js:10
x-pack/platform/packages/private/kbn-infra-forge/tsconfig.json:2
x-pack/platform/packages/shared/kbn-data-forge/jest.config.js:10
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_hosts/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_logs/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/heartbeat/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generate.sh:3
x-pack/platform/packages/shared/kbn-data-forge/tsconfig.json:2
x-pack/platform/packages/shared/kbn-slo-schema/jest.config.js:10
x-pack/platform/packages/shared/kbn-slo-schema/tsconfig.json:2
x-pack/platform/packages/shared/observability/alerting_rule_utils/jest.config.js:10
x-pack/platform/packages/shared/observability/alerting_rule_utils/tsconfig.json:2
x-pack/solutions/observability/packages/alert_details/jest.config.js:10
x-pack/solutions/observability/packages/alert_details/tsconfig.json:2
x-pack/solutions/observability/packages/alerting_test_data/jest.config.js:10
x-pack/solutions/observability/packages/alerting_test_data/tsconfig.json:2
x-pack/solutions/observability/packages/get_padded_alert_time_range_util/jest.config.js:10
x-pack/solutions/observability/packages/get_padded_alert_time_range_util/tsconfig.json:2
x-pack/solutions/observability/packages/kbn-investigation-shared/jest.config.js:12
x-pack/solutions/observability/packages/kbn-investigation-shared/tsconfig.json:2
x-pack/solutions/observability/packages/synthetics_test_data/jest.config.js:10
x-pack/solutions/observability/packages/synthetics_test_data/tsconfig.json:2
x-pack/solutions/observability/plugins/exploratory_view/e2e/README.md:13
x-pack/solutions/observability/plugins/exploratory_view/e2e/synthetics_run.ts:28
x-pack/solutions/observability/plugins/exploratory_view/e2e/synthetics_run.ts:33
x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:19
x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:27
x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:34
x-pack/solutions/observability/plugins/exploratory_view/e2e/tsconfig.json:2
x-pack/solutions/observability/plugins/exploratory_view/jest.config.js:10
x-pack/solutions/observability/plugins/exploratory_view/public/components/shared/exploratory_view/README.md:116
x-pack/solutions/observability/plugins/exploratory_view/public/components/shared/exploratory_view/README.md:156
x-pack/solutions/observability/plugins/exploratory_view/public/components/shared/exploratory_view/README.md:161
x-pack/solutions/observability/plugins/exploratory_view/tsconfig.json:2
x-pack/solutions/observability/plugins/exploratory_view/tsconfig.json:6
x-pack/solutions/observability/plugins/investigate/jest.config.js:10
x-pack/solutions/observability/plugins/investigate/tsconfig.json:2
x-pack/solutions/observability/plugins/investigate/tsconfig.json:7
x-pack/solutions/observability/plugins/investigate_app/jest.config.js:10
x-pack/solutions/observability/plugins/investigate_app/tsconfig.json:2
x-pack/solutions/observability/plugins/investigate_app/tsconfig.json:7
x-pack/solutions/observability/plugins/observability/dev_docs/custom_threshold.md:10
x-pack/solutions/observability/plugins/observability/dev_docs/custom_threshold.md:36
x-pack/solutions/observability/plugins/observability/dev_docs/feature_flags.md:14
x-pack/solutions/observability/plugins/observability/jest.config.js:10
x-pack/solutions/observability/plugins/observability/tsconfig.json:12
x-pack/solutions/observability/plugins/observability/tsconfig.json:2
x-pack/solutions/observability/plugins/serverless_observability/package.json:8
x-pack/solutions/observability/plugins/serverless_observability/package.json:9
x-pack/solutions/observability/plugins/serverless_observability/tsconfig.json:12
x-pack/solutions/observability/plugins/serverless_observability/tsconfig.json:2
x-pack/solutions/observability/plugins/slo/dev_docs/slo.md:11
x-pack/solutions/observability/plugins/slo/e2e/tsconfig.json:2
x-pack/solutions/observability/plugins/slo/jest.config.js:10
x-pack/solutions/observability/plugins/slo/tsconfig.json:10
x-pack/solutions/observability/plugins/slo/tsconfig.json:2
x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:19
x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:27
x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:34
x-pack/solutions/observability/plugins/synthetics/e2e/tsconfig.json:2
x-pack/solutions/observability/plugins/synthetics/jest.config.js:10
x-pack/solutions/observability/plugins/synthetics/tsconfig.json:12
x-pack/solutions/observability/plugins/synthetics/tsconfig.json:2
x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:19
x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:27
x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:34
x-pack/solutions/observability/plugins/uptime/e2e/tasks/read_kibana_config.ts:15
x-pack/solutions/observability/plugins/uptime/e2e/tsconfig.json:2
x-pack/solutions/observability/plugins/uptime/jest.config.js:10
x-pack/solutions/observability/plugins/uptime/tsconfig.json:13
x-pack/solutions/observability/plugins/uptime/tsconfig.json:2
```
</details>
<details>
<summary>Script errors</summary>

```
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:19
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:27
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/exploratory_view/e2e/tasks/es_archiver.ts:34
Cannot replace multiple occurrences of "../../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/observability/dev_docs/feature_flags.md:14
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:19
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:27
Cannot replace multiple occurrences of "../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/synthetics/e2e/tasks/es_archiver.ts:34
Cannot replace multiple occurrences of "../../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:19
Cannot replace multiple occurrences of "../../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:27
Cannot replace multiple occurrences of "../../../.." in the same line, please fix manually:	/Users/gsoldevila/Work/kibana-tertiary/x-pack/solutions/observability/plugins/uptime/e2e/tasks/es_archiver.ts:34

```
</details>

---------

Co-authored-by: shahzad31 <shahzad31comp@gmail.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-12 14:28:21 -06:00
Gerard Soldevila
50068fd9ba
Sustainable Kibana Architecture: Move modules under x-pack/packages/security-solution (#203522)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.


#### 7 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/ecs-data-quality-dashboard` |
`x-pack/solutions/security/packages/ecs_data_quality_dashboard` |
| `@kbn/security-solution-distribution-bar` |
`x-pack/solutions/security/packages/distribution_bar` |
| `@kbn/security-solution-features` |
`x-pack/solutions/security/packages/features` |
| `@kbn/security-solution-navigation` |
`x-pack/solutions/security/packages/navigation` |
| `@kbn/security-solution-side-nav` |
`x-pack/solutions/security/packages/side_nav` |
| `@kbn/security-solution-upselling` |
`x-pack/solutions/security/packages/upselling` |
| `@kbn/securitysolution-data-table` |
`x-pack/solutions/security/packages/data_table` |


<details>
<summary>Updated references</summary>

```
./.eslintrc.js
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./tsconfig.base.json
./tsconfig.base.type_check.json
./tsconfig.refs.json
./x-pack/solutions/security/packages/data_table/jest.config.js
./x-pack/solutions/security/packages/distribution_bar/jest.config.js
./x-pack/solutions/security/packages/ecs_data_quality_dashboard/jest.config.js
./x-pack/solutions/security/packages/features/jest.config.js
./x-pack/solutions/security/packages/navigation/jest.config.js
./x-pack/solutions/security/packages/side_nav/jest.config.js
./x-pack/solutions/security/packages/upselling/jest.config.js
./x-pack/solutions/security/plugins/security_solution_serverless/tsconfig.type_check.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
x-pack/solutions/security/packages/data_table/jest.config.js:11
x-pack/solutions/security/packages/data_table/tsconfig.json:2
x-pack/solutions/security/packages/distribution_bar/jest.config.js:11
x-pack/solutions/security/packages/distribution_bar/tsconfig.json:2
x-pack/solutions/security/packages/ecs_data_quality_dashboard/jest.config.js:21
x-pack/solutions/security/packages/ecs_data_quality_dashboard/tsconfig.json:2
x-pack/solutions/security/packages/features/jest.config.js:10
x-pack/solutions/security/packages/features/tsconfig.json:2
x-pack/solutions/security/packages/navigation/jest.config.js:10
x-pack/solutions/security/packages/navigation/tsconfig.json:2
x-pack/solutions/security/packages/side_nav/jest.config.js:10
x-pack/solutions/security/packages/side_nav/src/solution_side_nav.stories.tsx:11
x-pack/solutions/security/packages/side_nav/tsconfig.json:2
x-pack/solutions/security/packages/upselling/jest.config.js:10
x-pack/solutions/security/packages/upselling/tsconfig.json:2
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Angela Chuang <yi-chun.chuang@elastic.co>
Co-authored-by: Karen Grigoryan <karen.grigoryan@elastic.co>
2024-12-12 12:18:10 +01:00
Gerard Soldevila
84b19ec3ea
Sustainable Kibana Architecture: Move modules owned by @elastic/obs-ai-assistant (#202763)
## Summary

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

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

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

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

| Id | Target folder |
| -- | ------------- |
| `@kbn/ai-assistant-management-plugin` |
`src/platform/plugins/shared/ai_assistant_management/selection` |
| `@kbn/data-usage-plugin` |
`x-pack/platform/plugins/private/data_usage` |
| `@kbn/observability-ai-assistant-app-plugin` |
`x-pack/solutions/observability/plugins/observability_ai_assistant_app`
|
| `@kbn/observability-ai-assistant-management-plugin` |
`x-pack/solutions/observability/plugins/observability_ai_assistant_management`
|
| `@kbn/observability-ai-assistant-plugin` |
`x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant`
|




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/observability-ai-common` |
`x-pack/solutions/observability/packages/observability_ai/observability_ai_common`
|
| `@kbn/observability-ai-server` |
`x-pack/solutions/observability/packages/observability_ai/observability_ai_server`
|


<details >
<summary>Updated references</summary>

```
./.github/paths-labeller.yml
./.i18nrc.json
./docs/developer/plugin-list.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./src/dev/storybook/aliases.ts
./src/platform/plugins/shared/ai_assistant_management/selection/jest.config.js
./src/platform/plugins/shared/discover/tsconfig.type_check.json
./tsconfig.base.json
./tsconfig.base.type_check.json
./tsconfig.refs.json
./x-pack/.i18nrc.json
./x-pack/platform/plugins/private/data_usage/jest.config.js
./x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/jest.config.js
./x-pack/plugins/enterprise_search/kibana.jsonc
./x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/index.ts
./x-pack/plugins/observability_solution/observability_ai_assistant_app/tsconfig.type_check.json
./x-pack/plugins/search_connectors/kibana.jsonc
./x-pack/solutions/observability/packages/observability_ai/observability_ai_common/jest.config.js
./x-pack/solutions/observability/packages/observability_ai/observability_ai_server/jest.config.js
./x-pack/solutions/observability/plugins/observability_ai_assistant_app/jest.config.js
./x-pack/solutions/observability/plugins/observability_ai_assistant_app/scripts/evaluation/README.md
./x-pack/solutions/observability/plugins/observability_ai_assistant_management/jest.config.js
./x-pack/test/tsconfig.type_check.json
./x-pack/test_serverless/tsconfig.type_check.json
./yarn.lock
```

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

```
src/platform/plugins/shared/ai_assistant_management/selection/jest.config.js:12
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.json:2
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:18
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:2
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:21
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:24
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:27
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:30
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:33
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:36
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:39
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:42
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:45
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:48
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:51
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:54
src/platform/plugins/shared/ai_assistant_management/selection/tsconfig.type_check.json:57
x-pack/platform/plugins/private/data_usage/jest.config.js:10
x-pack/platform/plugins/private/data_usage/tsconfig.json:11
x-pack/platform/plugins/private/data_usage/tsconfig.json:2
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/jest.config.js:10
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.json:2
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.json:7
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:100
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:103
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:2
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:22
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:25
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:28
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:31
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:34
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:37
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:40
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:43
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:46
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:49
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:52
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:55
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:58
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:61
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:64
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:67
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:70
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:73
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:76
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:79
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:82
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:85
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:88
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:9
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:91
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:94
x-pack/platform/plugins/shared/observability_solution/observability_ai_assistant/tsconfig.type_check.json:97
x-pack/solutions/observability/packages/observability_ai/observability_ai_common/jest.config.js:10
x-pack/solutions/observability/packages/observability_ai/observability_ai_common/tsconfig.json:2
x-pack/solutions/observability/packages/observability_ai/observability_ai_server/jest.config.js:10
x-pack/solutions/observability/packages/observability_ai/observability_ai_server/tsconfig.json:2
x-pack/solutions/observability/plugins/observability_ai_assistant_app/jest.config.js:10
x-pack/solutions/observability/plugins/observability_ai_assistant_app/scripts/evaluation/read_kibana_config.ts:16
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.json:2
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.json:7
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:100
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:103
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:106
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:109
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:112
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:118
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:121
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:124
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:127
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:130
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:133
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:136
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:139
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:142
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:145
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:148
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:151
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:154
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:157
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:160
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:163
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:166
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:169
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:172
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:175
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:178
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:181
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:184
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:190
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:193
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:2
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:22
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:28
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:31
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:34
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:37
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:40
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:43
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:46
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:49
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:52
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:55
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:58
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:61
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:64
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:67
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:70
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:73
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:76
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:79
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:82
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:85
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:88
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:9
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:91
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:94
x-pack/solutions/observability/plugins/observability_ai_assistant_app/tsconfig.type_check.json:97
x-pack/solutions/observability/plugins/observability_ai_assistant_management/jest.config.js:10
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.json:2
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:18
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:2
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:21
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:24
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:27
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:30
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:33
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:36
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:39
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:45
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:48
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:51
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:54
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:60
x-pack/solutions/observability/plugins/observability_ai_assistant_management/tsconfig.type_check.json:63
```

</details>
2024-12-12 04:35:10 -06:00
Nick Partridge
93122486d0
[Visual Refresh] Borealis visualization palettes (#201015)
Adds support for toggling between the old Amsterdam themed visualizations palettes and the new Borealis themed palettes.
2024-12-11 14:58:56 -06:00
Gerard Soldevila
0b9179acbd
Sustainable Kibana Architecture: Add scripts/relocate CLI (beta) (#203803)
## Summary

Adds the `node scripts/relocate` functionality, that helps moving
modules to their intended locations, according to the _Sustainable
Kibana Architecture_.

Please refer to the README.md for further details and usage.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-11 17:10:37 +01:00
Dario Gieselaar
fa1998ce92
[RCA] AI-assisted root cause analysis (#197200)
Implements an LLM-based root cause analysis process. At a high level, it
works by investigating entities - which means pulling in alerts, SLOs,
and log patterns. From there, it can inspect related entities to get to
the root cause.

The backend implementation lives in
`x-pack/packages/observability_utils-*` (`service_rca`). It can be
imported into any server-side plugin and executed from there.

The UI changes are mostly contained to
`x-pack/plugins/observability_solution/observabillity_ai_assistant_app`.
This plugin now exports a `RootCauseAnalysisContainer` which takes a
stream of data that is returned by the root cause analysis process.

The current implementation lives in the Investigate app. There, it calls
its own endpoint that kicks off the RCA process, and feeds it into the
`RootCauseAnalysisContainer` exposed by the Observability AI Assistant
app plugin. I've left it in a route there so the investigation itself
can be updated as the process runs - this would allow the user to close
the browser and come back later, and see a full investigation.

> [!NOTE]
> Notes for reviewing teams
> 
> @kbn/es-types:
> - support both types and typesWithBodyKey
> - simplify KeysOfSources type
> 
> @kbn/server-route-repository:
> - abortable streamed responses
> 
> @kbn/sse-utils*:
> - abortable streamed responses
> - serialize errors in specific format for more reliable re-hydration
of errors
> - keep connection open with SSE comments
> 
> @kbn/inference-*:
> - export *Of variants of types, for easier manual inference
> - add automated retries for `output` API
> - add `name` to tool responses for type inference (get type of tool
response via tool name)
> - add `data` to tool responses for transporting internal data (not
sent to the LLM)
> - simplify `chunksIntoMessage`
> - allow consumers of nlToEsql task to add to `system` prompt
> - add toolCallId to validation error message
> 
> @kbn/aiops*:
> - export `categorizationAnalyzer` for use in observability-ai*
> 
> @kbn/observability-ai-assistant*
> - configurable limit (tokens or doc count) for knowledge base recall
> 
> @kbn/slo*:
> - export client that returns summary indices

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Maryam Saeidi <maryam.saeidi@elastic.co>
Co-authored-by: Bena Kansara <bena.kansara@elastic.co>
2024-12-11 12:35:01 +01:00
Gerard Soldevila
9bec521a5e
Sustainable Kibana Architecture: Move modules owned by @elastic/streams-program-team (#203180)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/streams-app-plugin` |
`x-pack/solutions/observability/plugins/streams_app` |
| `@kbn/streams-plugin` |
`x-pack/solutions/observability/plugins/streams` |


<details>
<summary>Updated references</summary>

```
./docs/developer/plugin-list.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./tsconfig.base.json
./x-pack/.i18nrc.json
./x-pack/solutions/observability/plugins/streams/jest.config.js
./x-pack/solutions/observability/plugins/streams_app/jest.config.js
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
x-pack/solutions/observability/plugins/streams/jest.config.js:10
x-pack/solutions/observability/plugins/streams/tsconfig.json:2
x-pack/solutions/observability/plugins/streams/tsconfig.json:7
x-pack/solutions/observability/plugins/streams_app/jest.config.js:10
x-pack/solutions/observability/plugins/streams_app/tsconfig.json:2
x-pack/solutions/observability/plugins/streams_app/tsconfig.json:7
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>
2024-12-11 01:49:46 -06:00
Gerard Soldevila
c609daa97c
Sustainable Kibana Architecture: Move modules owned by @elastic/kibana-localization (#202725)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/translations-plugin` |
`x-pack/platform/plugins/private/translations` |


<details>
<summary>Updated references</summary>

```
./docs/developer/plugin-list.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-synthetic-package-map/synthetic-packages.json
./packages/kbn-ts-projects/config-paths.json
./src/dev/i18n_tools/README.md
./tsconfig.base.json
./tsconfig.refs.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
x-pack/platform/plugins/private/translations/tsconfig.json:2
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>
2024-12-10 06:56:15 -06:00
Gerard Soldevila
a0f5a7f3fc
Sustainable Kibana Architecture: Move modules owned by @elastic/appex-ai-infra (#202410)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/inference-plugin` | `x-pack/platform/plugins/shared/inference` |
| `@kbn/llm-tasks-plugin` |
`x-pack/platform/plugins/shared/ai_infra/llm_tasks` |
| `@kbn/product-doc-base-plugin` |
`x-pack/platform/plugins/shared/ai_infra/product_doc_base` |


#### 2 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/inference-common` |
`x-pack/platform/packages/shared/ai-infra/inference-common` |
| `@kbn/product-doc-common` |
`x-pack/platform/packages/shared/ai-infra/product-doc-common` |


<details>
<summary>Updated references</summary>

```
./docs/developer/plugin-list.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./tsconfig.base.json
./x-pack/.i18nrc.json
./x-pack/platform/packages/shared/ai-infra/inference-common/jest.config.js
./x-pack/platform/packages/shared/ai-infra/product-doc-common/jest.config.js
./x-pack/platform/plugins/shared/ai_infra/llm_tasks/jest.config.js
./x-pack/platform/plugins/shared/ai_infra/product_doc_base/jest.config.js
./x-pack/platform/plugins/shared/inference/jest.config.js
./x-pack/platform/plugins/shared/inference/scripts/evaluation/README.md
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
x-pack/platform/packages/shared/ai-infra/inference-common/jest.config.js:10
x-pack/platform/packages/shared/ai-infra/inference-common/tsconfig.json:2
x-pack/platform/packages/shared/ai-infra/product-doc-common/jest.config.js:10
x-pack/platform/packages/shared/ai-infra/product-doc-common/tsconfig.json:2
x-pack/platform/plugins/shared/ai_infra/llm_tasks/jest.config.js:10
x-pack/platform/plugins/shared/ai_infra/llm_tasks/tsconfig.json:2
x-pack/platform/plugins/shared/ai_infra/llm_tasks/tsconfig.json:7
x-pack/platform/plugins/shared/ai_infra/product_doc_base/jest.config.js:10
x-pack/platform/plugins/shared/ai_infra/product_doc_base/tsconfig.json:2
x-pack/platform/plugins/shared/ai_infra/product_doc_base/tsconfig.json:7
x-pack/platform/plugins/shared/inference/jest.config.js:10
x-pack/platform/plugins/shared/inference/scripts/util/read_kibana_config.ts:16
x-pack/platform/plugins/shared/inference/tsconfig.json:2
x-pack/platform/plugins/shared/inference/tsconfig.json:7
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>

---------

Co-authored-by: pgayvallet <pierre.gayvallet@elastic.co>
2024-12-10 11:36:23 +01:00
Gerard Soldevila
11b27f3016
Sustainable Kibana Architecture: Move modules owned by @elastic/security-asset-management (#202839)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.


#### 1 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/osquery-io-ts-types` |
`src/platform/packages/shared/kbn-osquery-io-ts-types` |


<details>
<summary>Updated references</summary>

```
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./src/platform/packages/shared/kbn-osquery-io-ts-types/jest.config.js
./tsconfig.base.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/shared/kbn-osquery-io-ts-types/jest.config.js:12
src/platform/packages/shared/kbn-osquery-io-ts-types/tsconfig.json:2
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>
2024-12-10 04:06:05 -06:00
Gerard Soldevila
58b8b47928
Sustainable Kibana Architecture: Move modules owned by @elastic/ml-ui (#202764)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/aiops-plugin` | `x-pack/platform/plugins/shared/aiops` |
| `@kbn/data-visualizer-plugin` |
`x-pack/platform/plugins/private/data_visualizer` |
| `@kbn/ml-plugin` | `x-pack/platform/plugins/shared/ml` |
| `@kbn/transform-plugin` | `x-pack/platform/plugins/private/transform`
|


#### 42 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/aiops-change-point-detection` |
`x-pack/platform/packages/private/ml/aiops_change_point_detection` |
| `@kbn/aiops-common` |
`x-pack/platform/packages/shared/ml/aiops_common` |
| `@kbn/aiops-components` |
`x-pack/platform/packages/private/ml/aiops_components` |
| `@kbn/aiops-log-pattern-analysis` |
`x-pack/platform/packages/shared/ml/aiops_log_pattern_analysis` |
| `@kbn/aiops-log-rate-analysis` |
`x-pack/platform/packages/shared/ml/aiops_log_rate_analysis` |
| `@kbn/aiops-test-utils` |
`x-pack/platform/packages/private/ml/aiops_test_utils` |
| `@kbn/deeplinks-ml` | `src/platform/packages/shared/deeplinks/ml` |
| `@kbn/default-nav-ml` | `src/platform/packages/private/default-nav/ml`
|
| `@kbn/inference_integration_flyout` |
`x-pack/platform/packages/private/ml/inference_integration_flyout` |
| `@kbn/json-schemas` |
`x-pack/platform/packages/private/ml/json_schemas` |
| `@kbn/ml-agg-utils` | `x-pack/platform/packages/private/ml/agg_utils`
|
| `@kbn/ml-anomaly-utils` |
`x-pack/platform/packages/shared/ml/anomaly_utils` |
| `@kbn/ml-cancellable-search` |
`x-pack/platform/packages/private/ml/cancellable_search` |
| `@kbn/ml-category-validator` |
`x-pack/platform/packages/private/ml/category_validator` |
| `@kbn/ml-chi2test` | `x-pack/platform/packages/shared/ml/chi2test` |
| `@kbn/ml-creation-wizard-utils` |
`x-pack/platform/packages/private/ml/creation_wizard_utils` |
| `@kbn/ml-data-frame-analytics-utils` |
`x-pack/platform/packages/private/ml/data_frame_analytics_utils` |
| `@kbn/ml-data-grid` | `x-pack/platform/packages/private/ml/data_grid`
|
| `@kbn/ml-data-view-utils` |
`x-pack/platform/packages/private/ml/data_view_utils` |
| `@kbn/ml-date-picker` |
`x-pack/platform/packages/private/ml/date_picker` |
| `@kbn/ml-date-utils` |
`x-pack/platform/packages/private/ml/date_utils` |
| `@kbn/ml-error-utils` |
`x-pack/platform/packages/shared/ml/error_utils` |
| `@kbn/ml-field-stats-flyout` |
`x-pack/platform/packages/private/ml/field_stats_flyout` |
| `@kbn/ml-in-memory-table` |
`x-pack/platform/packages/private/ml/in_memory_table` |
| `@kbn/ml-is-defined` |
`x-pack/platform/packages/private/ml/is_defined` |
| `@kbn/ml-is-populated-object` |
`x-pack/platform/packages/private/ml/is_populated_object` |
| `@kbn/ml-kibana-theme` |
`x-pack/platform/packages/private/ml/kibana_theme` |
| `@kbn/ml-local-storage` |
`x-pack/platform/packages/private/ml/local_storage` |
| `@kbn/ml-nested-property` |
`x-pack/platform/packages/private/ml/nested_property` |
| `@kbn/ml-number-utils` |
`x-pack/platform/packages/private/ml/number_utils` |
| `@kbn/ml-parse-interval` |
`x-pack/platform/packages/private/ml/parse_interval` |
| `@kbn/ml-query-utils` |
`x-pack/platform/packages/private/ml/query_utils` |
| `@kbn/ml-random-sampler-utils` |
`x-pack/platform/packages/shared/ml/random_sampler_utils` |
| `@kbn/ml-response-stream` |
`x-pack/platform/packages/shared/ml/response_stream` |
| `@kbn/ml-route-utils` |
`x-pack/platform/packages/private/ml/route_utils` |
| `@kbn/ml-runtime-field-utils` |
`x-pack/platform/packages/shared/ml/runtime_field_utils` |
| `@kbn/ml-string-hash` |
`x-pack/platform/packages/private/ml/string_hash` |
| `@kbn/ml-time-buckets` |
`x-pack/platform/packages/private/ml/time_buckets` |
| `@kbn/ml-trained-models-utils` |
`x-pack/platform/packages/shared/ml/trained_models_utils` |
| `@kbn/ml-ui-actions` |
`x-pack/platform/packages/private/ml/ui_actions` |
| `@kbn/ml-url-state` | `x-pack/platform/packages/private/ml/url_state`
|
| `@kbn/ml-validators` |
`x-pack/platform/packages/private/ml/validators` |


<details>
<summary>Updated references</summary>

```
./.eslintrc.js
./docs/developer/plugin-list.asciidoc
./docs/redirects.asciidoc
./oas_docs/scripts/merge_ess_oas.js
./oas_docs/scripts/merge_serverless_oas.js
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-synthetic-package-map/synthetic-packages.json
./packages/kbn-ts-projects/config-paths.json
./src/platform/packages/private/default-nav/ml/jest.config.js
./src/platform/packages/shared/deeplinks/ml/jest.config.js
./tsconfig.base.json
./tsconfig.refs.json
./x-pack/.i18nrc.json
./x-pack/packages/security-solution/navigation/src/constants.ts
./x-pack/platform/packages/private/ml/agg_utils/jest.config.js
./x-pack/platform/packages/private/ml/aiops_change_point_detection/jest.config.js
./x-pack/platform/packages/private/ml/aiops_components/jest.config.js
./x-pack/platform/packages/private/ml/aiops_test_utils/jest.config.js
./x-pack/platform/packages/private/ml/cancellable_search/jest.config.js
./x-pack/platform/packages/private/ml/category_validator/jest.config.js
./x-pack/platform/packages/private/ml/creation_wizard_utils/jest.config.js
./x-pack/platform/packages/private/ml/data_frame_analytics_utils/jest.config.js
./x-pack/platform/packages/private/ml/data_grid/jest.config.js
./x-pack/platform/packages/private/ml/data_view_utils/jest.config.js
./x-pack/platform/packages/private/ml/date_picker/jest.config.js
./x-pack/platform/packages/private/ml/date_utils/jest.config.js
./x-pack/platform/packages/private/ml/field_stats_flyout/jest.config.js
./x-pack/platform/packages/private/ml/in_memory_table/jest.config.js
./x-pack/platform/packages/private/ml/inference_integration_flyout/jest.config.js
./x-pack/platform/packages/private/ml/is_defined/jest.config.js
./x-pack/platform/packages/private/ml/is_populated_object/jest.config.js
./x-pack/platform/packages/private/ml/json_schemas/jest.config.js
./x-pack/platform/packages/private/ml/kibana_theme/jest.config.js
./x-pack/platform/packages/private/ml/local_storage/jest.config.js
./x-pack/platform/packages/private/ml/nested_property/jest.config.js
./x-pack/platform/packages/private/ml/number_utils/jest.config.js
./x-pack/platform/packages/private/ml/parse_interval/jest.config.js
./x-pack/platform/packages/private/ml/query_utils/jest.config.js
./x-pack/platform/packages/private/ml/route_utils/jest.config.js
./x-pack/platform/packages/private/ml/string_hash/jest.config.js
./x-pack/platform/packages/private/ml/time_buckets/jest.config.js
./x-pack/platform/packages/private/ml/ui_actions/jest.config.js
./x-pack/platform/packages/private/ml/url_state/jest.config.js
./x-pack/platform/packages/private/ml/validators/jest.config.js
./x-pack/platform/packages/shared/ml/aiops_common/jest.config.js
./x-pack/platform/packages/shared/ml/aiops_log_pattern_analysis/jest.config.js
./x-pack/platform/packages/shared/ml/aiops_log_rate_analysis/jest.config.js
./x-pack/platform/packages/shared/ml/anomaly_utils/jest.config.js
./x-pack/platform/packages/shared/ml/chi2test/jest.config.js
./x-pack/platform/packages/shared/ml/error_utils/jest.config.js
./x-pack/platform/packages/shared/ml/random_sampler_utils/jest.config.js
./x-pack/platform/packages/shared/ml/response_stream/jest.config.js
./x-pack/platform/packages/shared/ml/runtime_field_utils/jest.config.js
./x-pack/platform/packages/shared/ml/trained_models_utils/jest.config.js
./x-pack/platform/plugins/private/data_visualizer/jest.config.js
./x-pack/platform/plugins/private/transform/jest.config.js
./x-pack/platform/plugins/private/transform/readme.md
./x-pack/platform/plugins/shared/aiops/README.md
./x-pack/platform/plugins/shared/aiops/jest.config.js
./x-pack/platform/plugins/shared/aiops/public/application/utils/build_extended_base_filter_criteria.ts
./x-pack/platform/plugins/shared/aiops/public/application/utils/search_utils.ts
./x-pack/platform/plugins/shared/ml/jest.config.js
./x-pack/platform/plugins/shared/ml/readme.md
./x-pack/plugins/aiops/README.md
./x-pack/plugins/security_solution/common/machine_learning/affected_job_ids.ts
./x-pack/plugins/security_solution/common/machine_learning/helpers.ts
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/private/default-nav/ml/jest.config.js:12
src/platform/packages/private/default-nav/ml/tsconfig.json:2
src/platform/packages/shared/deeplinks/ml/jest.config.js:12
src/platform/packages/shared/deeplinks/ml/tsconfig.json:2
x-pack/platform/packages/private/ml/agg_utils/jest.config.js:10
x-pack/platform/packages/private/ml/agg_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/aiops_change_point_detection/jest.config.js:10
x-pack/platform/packages/private/ml/aiops_change_point_detection/tsconfig.json:2
x-pack/platform/packages/private/ml/aiops_components/jest.config.js:10
x-pack/platform/packages/private/ml/aiops_components/tsconfig.json:2
x-pack/platform/packages/private/ml/aiops_test_utils/jest.config.js:10
x-pack/platform/packages/private/ml/aiops_test_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/cancellable_search/jest.config.js:10
x-pack/platform/packages/private/ml/cancellable_search/tsconfig.json:2
x-pack/platform/packages/private/ml/category_validator/jest.config.js:10
x-pack/platform/packages/private/ml/category_validator/tsconfig.json:2
x-pack/platform/packages/private/ml/creation_wizard_utils/jest.config.js:10
x-pack/platform/packages/private/ml/creation_wizard_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/data_frame_analytics_utils/jest.config.js:10
x-pack/platform/packages/private/ml/data_frame_analytics_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/data_grid/jest.config.js:10
x-pack/platform/packages/private/ml/data_grid/tsconfig.json:2
x-pack/platform/packages/private/ml/data_view_utils/jest.config.js:10
x-pack/platform/packages/private/ml/data_view_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/date_picker/jest.config.js:10
x-pack/platform/packages/private/ml/date_picker/tsconfig.json:2
x-pack/platform/packages/private/ml/date_utils/jest.config.js:10
x-pack/platform/packages/private/ml/date_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/field_stats_flyout/jest.config.js:10
x-pack/platform/packages/private/ml/field_stats_flyout/tsconfig.json:2
x-pack/platform/packages/private/ml/in_memory_table/jest.config.js:10
x-pack/platform/packages/private/ml/in_memory_table/tsconfig.json:2
x-pack/platform/packages/private/ml/inference_integration_flyout/jest.config.js:10
x-pack/platform/packages/private/ml/inference_integration_flyout/tsconfig.json:2
x-pack/platform/packages/private/ml/is_defined/jest.config.js:10
x-pack/platform/packages/private/ml/is_defined/tsconfig.json:2
x-pack/platform/packages/private/ml/is_populated_object/jest.config.js:10
x-pack/platform/packages/private/ml/is_populated_object/tsconfig.json:2
x-pack/platform/packages/private/ml/json_schemas/jest.config.js:10
x-pack/platform/packages/private/ml/json_schemas/package.json:7
x-pack/platform/packages/private/ml/json_schemas/tsconfig.json:2
x-pack/platform/packages/private/ml/kibana_theme/jest.config.js:10
x-pack/platform/packages/private/ml/kibana_theme/tsconfig.json:2
x-pack/platform/packages/private/ml/local_storage/jest.config.js:10
x-pack/platform/packages/private/ml/local_storage/tsconfig.json:2
x-pack/platform/packages/private/ml/nested_property/jest.config.js:10
x-pack/platform/packages/private/ml/nested_property/tsconfig.json:2
x-pack/platform/packages/private/ml/number_utils/jest.config.js:10
x-pack/platform/packages/private/ml/number_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/parse_interval/jest.config.js:10
x-pack/platform/packages/private/ml/parse_interval/tsconfig.json:2
x-pack/platform/packages/private/ml/query_utils/jest.config.js:10
x-pack/platform/packages/private/ml/query_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/route_utils/jest.config.js:10
x-pack/platform/packages/private/ml/route_utils/tsconfig.json:2
x-pack/platform/packages/private/ml/string_hash/jest.config.js:10
x-pack/platform/packages/private/ml/string_hash/tsconfig.json:2
x-pack/platform/packages/private/ml/time_buckets/jest.config.js:10
x-pack/platform/packages/private/ml/time_buckets/tsconfig.json:2
x-pack/platform/packages/private/ml/ui_actions/jest.config.js:10
x-pack/platform/packages/private/ml/ui_actions/tsconfig.json:2
x-pack/platform/packages/private/ml/url_state/jest.config.js:10
x-pack/platform/packages/private/ml/url_state/tsconfig.json:2
x-pack/platform/packages/private/ml/validators/jest.config.js:10
x-pack/platform/packages/private/ml/validators/tsconfig.json:2
x-pack/platform/packages/shared/ml/aiops_common/jest.config.js:10
x-pack/platform/packages/shared/ml/aiops_common/tsconfig.json:2
x-pack/platform/packages/shared/ml/aiops_log_pattern_analysis/jest.config.js:10
x-pack/platform/packages/shared/ml/aiops_log_pattern_analysis/tsconfig.json:2
x-pack/platform/packages/shared/ml/aiops_log_rate_analysis/jest.config.js:10
x-pack/platform/packages/shared/ml/aiops_log_rate_analysis/tsconfig.json:2
x-pack/platform/packages/shared/ml/anomaly_utils/jest.config.js:10
x-pack/platform/packages/shared/ml/anomaly_utils/tsconfig.json:2
x-pack/platform/packages/shared/ml/chi2test/jest.config.js:10
x-pack/platform/packages/shared/ml/chi2test/tsconfig.json:2
x-pack/platform/packages/shared/ml/error_utils/jest.config.js:10
x-pack/platform/packages/shared/ml/error_utils/tsconfig.json:2
x-pack/platform/packages/shared/ml/random_sampler_utils/jest.config.js:10
x-pack/platform/packages/shared/ml/random_sampler_utils/tsconfig.json:2
x-pack/platform/packages/shared/ml/response_stream/jest.config.js:10
x-pack/platform/packages/shared/ml/response_stream/tsconfig.json:2
x-pack/platform/packages/shared/ml/runtime_field_utils/jest.config.js:10
x-pack/platform/packages/shared/ml/runtime_field_utils/tsconfig.json:2
x-pack/platform/packages/shared/ml/trained_models_utils/jest.config.js:10
x-pack/platform/packages/shared/ml/trained_models_utils/tsconfig.json:2
x-pack/platform/plugins/private/data_visualizer/jest.config.js:10
x-pack/platform/plugins/private/data_visualizer/tsconfig.json:2
x-pack/platform/plugins/private/data_visualizer/tsconfig.json:7
x-pack/platform/plugins/private/transform/jest.config.js:10
x-pack/platform/plugins/private/transform/tsconfig.json:10
x-pack/platform/plugins/private/transform/tsconfig.json:2
x-pack/platform/plugins/shared/aiops/jest.config.js:10
x-pack/platform/plugins/shared/aiops/tsconfig.json:2
x-pack/platform/plugins/shared/aiops/tsconfig.json:7
x-pack/platform/plugins/shared/ml/jest.config.js:10
x-pack/platform/plugins/shared/ml/readme.md:186
x-pack/platform/plugins/shared/ml/readme.md:192
x-pack/platform/plugins/shared/ml/tsconfig.json:12
x-pack/platform/plugins/shared/ml/tsconfig.json:2
x-pack/platform/plugins/shared/ml/tsconfig.json:24
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Walter Rafelsberger <walter.rafelsberger@elastic.co>
2024-12-09 17:36:25 +01:00
David Olaru
ad4e8efd0f
[kbn-scout] Custom event-oriented test reporter & persistence (#202906) 2024-12-09 14:34:25 +00:00
Clint Andrew Hall
d0fde5f8e1
[React@18] Env variable to use React@18 (#193113)
Part of
https://github.com/elastic/kibana-team/issues/1016#issuecomment-2454845292

Our plan for React@18 packages upgrade is to let kibana contributors now
that we're going to bump React packages couple weeks in advance. In
addtion to the final PR with green tests and Kibana deployed, we want to
give simple instructions on how to run React@18 locally easilly:

This PR allows to quickly toggle between version of React locally
without having to do anything beyond an environment variable.

`REACT_18=true yarn bootstrap` will alias `react` and `react-dom` to v18
in the build.

I check that this works as expected when starting from: 

- local dev server `yarn start` 
- local ftr `node scripts/functional_tests_server.js`
- local unit tests `REACT_18=true yarn test:jest ...`

Please note: 
- **This PR doesn't implement this switch for dist build, as I don't
think we need this for our purposes.**
- The plan is that we remove this switch soon after we merge React@18
upgrade to main.

In addition to the switch this PR mutes a very noisy warning from
React@18 about legacy root `Warning: ReactDOM.render is no longer
supported in React 18. Use createRoot instead. Until you switch to the
new API, your app will behave as if it's running React 17.`. This
warning is expected as after we upgrade to React@18 packages (Phase 1)
we will be in the process of migrating to the new createRoot API (Phase
2). However, it is very noisy and we want to mute it for now.


Co-authored-by: Anton Dosov <anton.dosov@elastic.co>
2024-12-09 13:55:14 +01:00
Gerard Soldevila
313f973aec
Sustainable Kibana Architecture: Move modules owned by @elastic/kibana-esql (#202722)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/esql` | `src/platform/plugins/shared/esql` |
| `@kbn/esql-datagrid` | `src/platform/plugins/shared/esql_datagrid` |


#### 5 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
  | `@kbn/esql-ast` | `src/platform/packages/shared/kbn-esql-ast` |
| `@kbn/esql-editor` | `src/platform/packages/private/kbn-esql-editor` |
| `@kbn/esql-utils` | `src/platform/packages/shared/kbn-esql-utils` |
| `@kbn/esql-validation-autocomplete` |
`src/platform/packages/shared/kbn-esql-validation-autocomplete` |
| `@kbn/language-documentation` |
`src/platform/packages/private/kbn-language-documentation` |


<details>
<summary>Updated references</summary>

```
./.buildkite/scripts/steps/esql_generate_function_metadata.sh
./.buildkite/scripts/steps/esql_grammar_sync.sh
./.eslintignore
./.eslintrc.js
./.i18nrc.json
./docs/developer/plugin-list.asciidoc
./examples/esql_ast_inspector/public/plugin.ts
./examples/esql_validation_example/public/plugin.ts
./package.json
./packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
./packages/kbn-monaco/BUILD.bazel
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./packages/kbn-ui-shared-deps-src/BUILD.bazel
./src/dev/storybook/aliases.ts
./src/platform/packages/private/kbn-esql-editor/jest.config.js
./src/platform/packages/private/kbn-language-documentation/jest.config.js
./src/platform/packages/private/kbn-language-documentation/package.json
./src/platform/packages/shared/kbn-esql-ast/jest.config.js
./src/platform/packages/shared/kbn-esql-utils/jest.config.js
./src/platform/packages/shared/kbn-esql-validation-autocomplete/README.md
./src/platform/packages/shared/kbn-esql-validation-autocomplete/jest.config.js
./src/platform/packages/shared/kbn-esql-validation-autocomplete/jest.integration.config.js
./src/platform/packages/shared/kbn-esql-validation-autocomplete/package.json
./src/platform/packages/shared/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts
./src/platform/plugins/shared/esql/jest.config.js
./src/platform/plugins/shared/esql_datagrid/jest.config.js
./tsconfig.base.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/private/kbn-esql-editor/jest.config.js:12
src/platform/packages/private/kbn-esql-editor/tsconfig.json:2
src/platform/packages/private/kbn-language-documentation/jest.config.js:12
src/platform/packages/private/kbn-language-documentation/package.json:12
src/platform/packages/private/kbn-language-documentation/tsconfig.json:2
src/platform/packages/shared/kbn-esql-ast/jest.config.js:12
src/platform/packages/shared/kbn-esql-ast/tsconfig.json:2
src/platform/packages/shared/kbn-esql-utils/jest.config.js:12
src/platform/packages/shared/kbn-esql-utils/tsconfig.json:2
src/platform/packages/shared/kbn-esql-validation-autocomplete/jest.config.js:12
src/platform/packages/shared/kbn-esql-validation-autocomplete/jest.integration.config.js:12
src/platform/packages/shared/kbn-esql-validation-autocomplete/package.json:10
src/platform/packages/shared/kbn-esql-validation-autocomplete/package.json:11
src/platform/packages/shared/kbn-esql-validation-autocomplete/scripts/generate_function_definitions.ts:389
src/platform/packages/shared/kbn-esql-validation-autocomplete/tsconfig.json:2
src/platform/plugins/shared/esql/jest.config.js:12
src/platform/plugins/shared/esql/tsconfig.json:2
src/platform/plugins/shared/esql/tsconfig.json:7
src/platform/plugins/shared/esql_datagrid/jest.config.js:12
src/platform/plugins/shared/esql_datagrid/tsconfig.json:2
src/platform/plugins/shared/esql_datagrid/tsconfig.json:7
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Rudolf Meijering <skaapgif@gmail.com>
2024-12-09 11:33:55 +01:00
Gerard Soldevila
df3b18214f
Sustainable Kibana Architecture: Move modules owned by @elastic/obs-entities (#202713)
## Summary

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

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

> [!NOTE]
> This PR has been auto-generated.
> Do not attempt to push any changes unless you know what you are doing.
> Please use
[#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E)
Slack channel for feedback.




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

| Id | Target folder |
| -- | ------------- |
| `@kbn/entities-data-access-plugin` |
`x-pack/solutions/observability/plugins/observability_solution/entities_data_access`
|
| `@kbn/entityManager-app-plugin` |
`x-pack/solutions/observability/plugins/observability_solution/entity_manager_app`
|
| `@kbn/entityManager-plugin` |
`x-pack/platform/plugins/shared/entity_manager` |


#### 1 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
| `@kbn/entities-schema` |
`x-pack/platform/packages/shared/kbn-entities-schema` |


<details>
<summary>Updated references</summary>

```
./docs/developer/plugin-list.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./tsconfig.base.json
./x-pack/platform/packages/shared/kbn-entities-schema/jest.config.js
./x-pack/platform/plugins/shared/entity_manager/jest.config.js
./x-pack/plugins/entity_manager/docs/entity_definitions.md
./x-pack/solutions/observability/plugins/observability_solution/entities_data_access/jest.config.js
./x-pack/solutions/observability/plugins/observability_solution/entity_manager_app/jest.config.js
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
x-pack/platform/packages/shared/kbn-entities-schema/jest.config.js:10
x-pack/platform/packages/shared/kbn-entities-schema/scripts/generate.js:8
x-pack/platform/packages/shared/kbn-entities-schema/scripts/generate_oas.js:65
x-pack/platform/packages/shared/kbn-entities-schema/scripts/generate_oas.js:8
x-pack/platform/packages/shared/kbn-entities-schema/scripts/serve_oas_ui.js:8
x-pack/platform/packages/shared/kbn-entities-schema/tsconfig.json:2
x-pack/platform/plugins/shared/entity_manager/jest.config.js:10
x-pack/platform/plugins/shared/entity_manager/tsconfig.json:2
x-pack/platform/plugins/shared/entity_manager/tsconfig.json:7
x-pack/solutions/observability/plugins/observability_solution/entities_data_access/jest.config.js:12
x-pack/solutions/observability/plugins/observability_solution/entities_data_access/tsconfig.json:2
x-pack/solutions/observability/plugins/observability_solution/entity_manager_app/jest.config.js:12
x-pack/solutions/observability/plugins/observability_solution/entity_manager_app/tsconfig.json:2
x-pack/solutions/observability/plugins/observability_solution/entity_manager_app/tsconfig.json:7
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Rudolf Meijering <skaapgif@gmail.com>
2024-12-06 12:59:17 -06:00
Gerard Soldevila
b2d49b8beb
Sustainable Kibana Architecture: Move modules owned by @elastic/docs (#202416)
## Summary

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

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


#### 1 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
  | `@kbn/doc-links` | `src/platform/packages/shared/kbn-doc-links` |


<details>
<summary>Updated references</summary>

```
./docs/upgrade-notes.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./src/core/tsconfig.type_check.json
./src/platform/packages/shared/kbn-doc-links/jest.config.js
./src/plugins/ai_assistant_management/selection/tsconfig.type_check.json
./tsconfig.base.json
./tsconfig.base.type_check.json
./tsconfig.refs.json
./x-pack/plugins/alerting/tsconfig.type_check.json
./x-pack/plugins/search_connectors/tsconfig.type_check.json
./x-pack/plugins/search_inference_endpoints/tsconfig.type_check.json
./x-pack/plugins/search_playground/tsconfig.type_check.json
./x-pack/plugins/security_solution/tsconfig.type_check.json
./x-pack/plugins/serverless_search/tsconfig.type_check.json
./x-pack/plugins/threat_intelligence/tsconfig.type_check.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/shared/kbn-doc-links/jest.config.js:12
src/platform/packages/shared/kbn-doc-links/tsconfig.json:2
src/platform/packages/shared/kbn-doc-links/tsconfig.type_check.json:2
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>
2024-12-05 14:54:58 +01:00
Pierre Gayvallet
14ad13b6a3
Add base FTR test coverage for inference APIs (#198000)
## Summary

Part of https://github.com/elastic/kibana-team/issues/1271

This PR introduces the first set of end to end integration test for the
inference APIs, and the tooling required to do so (see issue for more
context)

- Add a dedicated pipeline for ai-infra GenAI tests. pipeline is
triggered when:
  - genAI stack connectors, or ai-infra owned code is changed
  - when the `ci:all-gen-ai-suites` label is present on a PR
  - on merge
- adapt the `ftr_configs.sh` script to load GenAI connector
configuration from vault when a specific var env is set
- create the `@kbn/gen-ai-functional-testing` package, which for now
only contains utilities to load the GenAI connector configuration in FTR
tests
- Add FTR integration tests for the `chatComplete` API of the
`inference` plugin

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-04 06:39:45 -06: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
Alberto Blázquez
e5b1773971
Create the "Asset Inventory" Kibana Plugin (#202291)
## Summary

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

Create an empty "Asset Inventory" plugin with the minimal boilerplate
required to set it up, install it and run it on Kibana with a blank
slate.

I generated the files using the `node scripts/generate_plugin <NAME>`
script as per [this documentation
page](https://docs.elastic.dev/kibana-dev-docs/getting-started/hello-world-app#2-option-2---use-the-automatic-plugin-generator).

### Screenshots


<details><summary>Main page (Sample page)</summary>
<img width="2498" alt="Screenshot 2024-11-29 at 14 20 57"
src="https://github.com/user-attachments/assets/9d8a3751-519b-4661-bc90-cbb1e836b111">
</details> 

### Implementation details

- [x] Generated a new Kibana plugin with minimal boilerplate and zero
dependencies
- [x] Use [Cloud Security
Posture](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture)
plugin as configuration reference
- [x] Render "Inventory" title on the main page
- [x] Ensure the plugin is properly integrated into Kibana's build and
can be loaded without errors
- [x] Place the plugin under the `x-pack/plugins` directory
- [x] Include Readme file
- [x] Introduce placeholders for initialization of pipelines and
transforms following [Cloud Security
Posture](https://github.com/elastic/kibana/blob/main/x-pack/plugins/cloud_security_posture/server/plugin.ts)
plugin initialize function.

### PR Checklist

- [ ] No docs for now
~~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~~
- [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

No risks at all since this is totally green-field and will be hidden by
a feature toggle.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Paulo Silva <paulo.henrique@elastic.co>
2024-12-03 11:29:53 +01:00
Kerry Gallagher
b0122f547d
[Discover / Logs] Add new "Saved Search component" (#199787)
## Summary

Implements
https://github.com/elastic/logs-dev/issues/111#issuecomment-2446470635.

This adds a new "Saved Search component". The component is a wrapper
around the current Saved Search Embeddable, but uses
`ReactEmbeddableRenderer` directly to render the embeddable outside of
Dashboard contexts. It monitors changes to things like `index`,
`filters` etc and communicates these changes through the embeddable API.

For this PoC two locations were changed to use this component 1) Logs
Overview flyout 2) APM Logs tab (when the Logs Overview isn't enabled
via advanced settings).

The component itself is technically beyond a PoC, and resides in it's
own package. ~I'd like to get eyes from the Discover folks etc on the
approach, and if we're happy I can fix the remaining known issues (apart
from the mixing of columns point as I believe this exists on the roadmap
anyway) and we can merge this for the initial two replacement points.~
[Thanks Davis
👌](https://github.com/elastic/logs-dev/issues/111#issuecomment-2475350199).

`nonPersistedDisplayOptions` is added to facilitate some configurable
options via runtime state, but without the complexity of altering the
actual saved search saved object.

On the whole I've tried to keep this as clean as possible whilst working
within the embeddable framework, outside of a dashboard context.

## Known issues

- ~"Flyout on flyout" in the logs overview flyout (e.g. triggering the
table's flyout in this context).~ Fixed with `enableFlyout` option.
- ~Filter buttons should be disabled via pills (e.g. in Summary
column).~ Fixed with `enableFilters` option.
- Summary (`_source`) column cannot be used alongside other columns,
e.g. log level, so column customisation isn't currently enabled. You'll
just get timestamp and summary. This requires changes in the Unified
Data Table. **Won't be fixed in this PR**

- We are left with this panel button that technically doesn't do
anything outside of a dashboard. I don't *think* there's an easy way to
disable this. **Won't be fixed in this PR**
![Screenshot 2024-11-20 at 11 50
43](https://github.com/user-attachments/assets/e43a47cd-e36e-4511-ba88-c928a4acd634)


## Followups

- ~The Logs Overview details state machine can be cleaned up (it doesn't
need to fetch documents etc anymore).~ The state machine no longer
fetches it's own documents. Some scaffolding is left in place as it'll
be needed for showing category details anyway.

## Example

![Screenshot 2024-11-20 at 12 20
08](https://github.com/user-attachments/assets/3b25d591-e3e2-4e8a-98a8-1bfc849d3bc1)
![Screenshot 2024-11-20 at 12 23
34](https://github.com/user-attachments/assets/a2d28036-98c5-4404-934e-2298cf4a66bf)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-29 23:09:24 +00:00
Elena Shostak
976b94ffa5
Dependency Ownership CLI (#201773)
## Summary

1. Show all packages owned by a specific team
```
node scripts/dependency_ownership -o <owner>
```
2. Identify owners of a specific dependency
```
node scripts/dependency_ownership -d <dependency>
```

3. List dependencies without an owner
```
node scripts/dependency_ownership --missing-owner
```

4. Generate a full dependency ownership report
```
node scripts/dependency_ownership
```

### 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
- [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/196767__

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-29 17:18:36 +01:00
Dzmitry Lemechko
310d922f13
[kbn-scout] initial package implementation (playwright-test POC) (#194006)
## Summary

This PR introduces a new package, **kbn-scout**, designed to streamline
the setup and execution of Playwright tests for Kibana. The `kbn-scout`
package consolidates server management and testing capabilities by
wrapping both the Kibana/Elasticsearch server launcher and the
Playwright test runner. It includes:

- Test and worker-scoped fixtures for reliable setup across test suites
- Page objects combined into the fixture for Kibana UI interactions
- Configurations for seamless test execution in both local and CI
environments (`Cloud` execution is out of scope)
- This package aims to simplify test setup and enhance modularity,
making it easier to create, run, and maintain deployment-agnostic tests,
that are located in the plugin they actually test.

Tests example is available in `x-pack/plugins/discover_enhanced` plugin
under `ui_tests` folder

How to run:
1) As a single script (servers + tests): 
```
node scripts/scout_test.js --config=x-pack/plugins/discover_enhanced/ui_tests/playwright.config.ts --serverless=es
```

2) Start servers first
```
node scripts/scout_start_servers.js --serverless=es
```
then run tests:
```
npx playwright test --config=x-pack/plugins/discover_enhanced/ui_tests/playwright.config.ts
```
if you have Playwright plugin in IDEA, just use it to run tests files

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-26 17:33:49 +01:00
Dario Gieselaar
63da7701e7
[Streams] App plugin (#200060)
Creates the Streams app plugin, which renders UI for managing streams
(see https://github.com/elastic/kibana/pull/198713).

Additional changes in this PR:

- The menus were updated to conditionally add a link to the Streams app.
The Streams plugin itself returns a status$ observable which signals if
Streams have been enabled. This value is used to conditionally render
the link in the various flavors of menus.
- There's a small change in the ES types to allow for ordered params in
ES|QL (vs named params)
- `@kbn/server-route-repository` was updated to be able to override
`access` (instead of only inferring it from the endpoint name).
Additionally, we now allow all route options by default.
- `@kbn/typed-react-router-config` now also exports a `useBreadcrumbs`.
This was copied over from the APM implementation.
- the signature of the `esql` method in
`ObservabilityElasticsearchClient` was updated to separate processing
options from options that are sent over to the _query endpoint.

---------

Co-authored-by: Chris Cowan <chris@elastic.co>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-25 14:51:24 +01:00
Elena Shostak
34bf83b54f
Dependency usage CLI (#198920)
## Summary


[dependency-cruiser](https://github.com/sverweij/dependency-cruiser/tree/main)
is used for building dependency graph.

### Show all dependencies for a specific package/plugin or directory

#### Run for all plugins
```bash
bash scripts/dependency_usage.sh -p x-pack/plugins -o ./tmp/deps-result-all.json
```

#### Run for single plugin
```bash
bash scripts/dependency_usage.sh -p x-pack/plugins/security_solution -o ./tmp/deps-result-single.json
```

#### Run for multiple plugins
```bash
bash scripts/dependency_usage.sh -p x-pack/plugins/security_solution x-pack/plugins/security -o ./tmp/deps-result-multiple.json
```

#### Run for `x-pack/packages`
```bash
bash scripts/dependency_usage.sh -p x-pack/packages -o ./tmp/deps-packages-1.json
```

#### Run for `packages`
```bash
bash scripts/dependency_usage.sh -p packages -o ./tmp/deps-packages-2.json
```

#### Benchmark

| Analysis              | Real Time   | User Time   | Sys Time   |
|-----------------------|-------------|-------------|------------|
| All plugins           | 7m 21.126s  | 7m 53.099s  | 20.581s    |
| Single plugin         | 31.360s     | 45.352s     | 2.208s     |
| Multiple plugins      | 36.403s     | 50.563s     | 2.814s     |
| x-pack/packages       | 6.638s      | 12.646s     | 0.654s     |
| packages              | 25.744s     | 39.073s     | 2.191s     |


#### Show all packages/plugins within a directory that use a specific
dependency

```sh
bash scripts/dependency_usage.sh -d rxjs -p x-pack/plugins/security_solution
```
---
#### Show all packages/plugins within a directory grouped by code owner
```sh
bash scripts/dependency_usage.sh -d rxjs -p x-pack/plugins -g owner
```
---

#### Group by code owner with adjustable collapse depth for fine-grained
grouping
**Fine-grained grouping**:
```sh
bash scripts/dependency_usage.sh -p x-pack/plugins/security_solution -g owner --collapse-depth 4
```
**Collapsed grouping**: groups the results under a higher-level owner
(e.g., `security_solution` as a single group).
```bash
bash scripts/dependency_usage.sh -p x-pack/plugins/security_solution -g owner --collapse-depth 1
```
---

#### Show all dependencies matching a pattern (e.g., `react-*`) within a
package
```bash
bash scripts/dependency_usage.sh -p x-pack/plugins/security_solution -d 'react-*' -o ./tmp/result.json
```

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

__Related: https://github.com/elastic/kibana/issues/196767__

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-25 14:07:40 +01:00
Kevin Lacabane
0b3f4fbd3c
[eem] _search endpoint / initial entity manager UI (#199609)
## Summary

- create `_search` endpoint to discover entities with esql queries. It
currently reads sources of the provided `type` from
`kibana_entity_definitions` index. Run this query to insert a
definition:
```
POST kibana_entity_definitions/_doc
{
    "entity_type": "service",
    "index_patterns": ["remote_cluster:logs-*"],
    "metadata_fields": [],
    "identity_fields": ["service.name"],
    "filters": [],
    "timestamp_field": "@timestamp"
}
```

By default `_search` will look at data in the last 5m. The lookup period
can be overriden by providing `start`/`end` parameters in ISO format. It
also accepts a `limit` to specify the number of entities returned which
defaults to 10

```
POST kbn:/internal/entities/v2/_search
{
    "type": "service",
    "start": "2024-11-19T20:40:00.000Z",
    "end": "2024-11-19T20:50:00.000Z",
    "limit": 20
}
```

- create `_search/preview` endpoint to preview output of entity sources
without persisting them
 
- create UI to preview results of an entity definition at
`/app/entity_manager`. The application is living in its own plugin at
`observability_solution/entity_manager_app`
![Screenshot 2024-11-11 at 11 37
18](https://github.com/user-attachments/assets/f284342d-21a3-4ba1-be94-38cff311266c)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Milton Hultgren <miltonhultgren@gmail.com>
2024-11-22 16:12:04 +01:00
Rodney Norris
a84122c4ca
[Search] Introduce search navigation plugin (#200314) 2024-11-22 08:35:49 -06:00
Gerard Soldevila
b24fdf5d3f
Sustainable Kibana Architecture: Categorise straightforward packages (#199630)
## Summary

This PR is part of the Kibana Sustainable Architecture effort.

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

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

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

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

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

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

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

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

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

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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-22 10:33:25 +01:00
Pierre Gayvallet
455c781c6d
[LLM tasks] Add product documentation retrieval task (#194379)
## Summary

Close https://github.com/elastic/kibana/issues/193473
Close https://github.com/elastic/kibana/issues/193474

This PR utilize the documentation packages that are build via the tool
introduced by https://github.com/elastic/kibana/pull/193847, allowing to
install them in Kibana and expose documentation retrieval as an LLM task
that AI assistants (or other consumers) can call.

Users can now decide to install the Elastic documentation from the
assistant's config screen, which will expose a new tool for the
assistant, `retrieve_documentation` (only implemented for the o11y
assistant in the current PR, shall be done for security as a follow up).

For more information, please refer to the self-review.

## General architecture

<img width="1118" alt="Screenshot 2024-10-17 at 09 22 32"
src="https://github.com/user-attachments/assets/3df8c30a-9ccc-49ab-92ce-c204b96d6fc4">

## What this PR does

Adds two plugin:
- `productDocBase`: contains all the logic related to product
documentation installation, status, and search. This is meant to be a
"low level" components only responsible for this specific part.
- `llmTasks`: an higher level plugin that will contain various LLM tasks
to be used by assistants and genAI consumers. The intent is not to have
a single place to put all llm tasks, but more to have a default place
where we can introduce new tasks from. (fwiw, the `nlToEsql` task will
probably be moved to that plugin).

- Add a `retrieve_documentation` tool registration for the o11y
assistant
- Add a component on the o11y assistant configuration page to install
the product doc

(wiring the feature to the o11y assistant was done for testing purposes
mostly, any addition / changes / enhancement should be done by the
owning team - either in this PR or as a follow-up)

## What is NOT included in this PR:

- Wire product base feature to the security assistant (should be done by
the owning team as a follow-up)
  - installation
  - utilization as tool

- FTR tests: this is somewhat blocked by the same things we need to
figure out for https://github.com/elastic/kibana-team/issues/1271

## Screenshots 

### Installation from o11y assistant configuration page

<img width="1476" alt="Screenshot 2024-10-17 at 09 41 24"
src="https://github.com/user-attachments/assets/31daa585-9fb2-400a-a2d1-5917a262367a">

### Example of output

#### Without product documentation installed 

<img width="739" alt="Screenshot 2024-10-10 at 09 59 41"
src="https://github.com/user-attachments/assets/993fb216-6c9a-433f-bf44-f6e383d20d9d">

#### With product documentation installed

<img width="718" alt="Screenshot 2024-10-10 at 09 55 38"
src="https://github.com/user-attachments/assets/805ea4ca-8bc9-4355-a434-0ba81f8228a9">

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alex Szabo <alex.szabo@elastic.co>
Co-authored-by: Matthias Wilhelm <matthias.wilhelm@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-19 08:28:26 -06:00
Anton Dosov
45972374f0
[ES|QL] Starred queries in the editor (#198362)
## Summary

close https://github.com/elastic/kibana/issues/194165
close https://github.com/elastic/kibana-team/issues/1245

### User-facing

<img width="1680" alt="image"
src="https://github.com/user-attachments/assets/6df4ee9f-1b4d-404c-a764-592998a1d430">

This PRs adds a new tab in the editor history component. You can star
your query from the history and then you will see it in the Starred
list. The started queries are scoped to a user and a space.


### Server

To allow starring ESQL query, this PR extends [favorites
service](https://github.com/elastic/kibana/pull/189285) with ability to
store metadata in addition to an id. To make metadata strict and in
future to support proper metadata migrations if needed, metadata needs
to be defined as schema:

```
plugins.contentManagement.favorites.registerFavoriteType('esql_query', {
       typeMetadataSchema: schema.object({ query: schema.string(), timeRange:...., etc... }),
})
```

Notable changes: 

- Add support for registering a favorite type and a schema for favorite
type metadata. Previosly the `dashboard` type was the only supported
type and was hardcoded
- Add `favoriteMetadata` property to a saved object mapping and make it
`enabled:false` we don't want to index it, but just want to store
metadata in addition to an id.
[code](https://github.com/elastic/kibana/pull/198362/files#diff-d1a39e36f1de11a1110520d7607e6aee7d506c76626993842cb58db012b760a2R74-R87)
- Add a 100 favorite items limit (per type per space per user). Just do
it for sanity to prevent too large objects due to metadata stored in
addtion to ids.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
Co-authored-by: Stratoula Kalafateli <stratoula1@gmail.com>
2024-11-18 21:53:46 +01:00
Nathan Reese
9f545039ab
fix dashboard grid item performs 2 DOM queries every render (#199390)
Closes https://github.com/elastic/kibana/issues/199361

While investigating, I found that fetching DOM element with id
`app-fixed-viewport` is a common pattern. I created the hook
`useAppFixedViewport` to consolidate this logic into a single location.
The hook only performs the DOM look-up on first render and then avoids
the DOM look-up on each additional render.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-18 11:32:53 -07:00
Gerard Soldevila
ab0375f56f
Kibana Sustainable Architecture: Expose StatusResponse in core-status-common (#200524)
## Summary

- Exposes the interfaces that define the format of the response of the
`/api/status` endpoint.
- Moves them from `@kbn/core-status-common-internal` to
`@kbn/core-status-common`.
- Removes the former package, as it no longer contains anything.
- Fixes some of the illegal dependencies uncovered by
https://github.com/elastic/kibana/pull/199630.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-18 14:34:54 +01:00
Dario Gieselaar
11a752da87
[Observability] Split up observability-utils package (#199801)
Split up observability-utils package in browser, common, server. Also
made a small change to `withSpan` to automatically log operation times
when the debug level for the logger is enabled.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-13 19:51:42 +01:00
Chris Cowan
b86dc8102a
[Streams] Introducing the new Streams plugin (#198713)
## Summary

This PR introduces the new experimental "Streams" plugin into the Kibana
project. The Streams project aims to simplify workflows around dealing
with messy logs in Elasticsearch. Our current offering is either
extremely opinionated with integrations or leaves the user alone with
the high flexibility of Elasticsearch concepts like index templates,
component templates and so on, which make it challenging to configure
everything correctly for good performance and controlling search speed
and cost.

### Scope of PR
- Provides an API for the user to "enable" the streams framework which
creates the "root" entity `logs` with all the backing Elasticsearch
assets
- Provides an API for the user to "fork" a stream
- Provides an API for the user to "read" a stream and all of it's
Elasticsearch assets.
- Provides an API for the user to upsert a stream (and implicitly child
streams that are mentioned)
- Part of this API is placing grok and disscect processing steps as well
as fields to the mapping
- Implements the Stream Naming Schema (SNS) which uses dots to express
the index patterns and stream IDs. Example: `logs.nginx.errors`
- The APIs will fully manage the `index_template`, `component_template`,
and `ingest_pipelines`.

### Out of scope
- Integration tests (coming in a follow-up)

### Reviewer Notes
- I haven't implemented tests beyond a unit test for converting the
filter conditions to Painless. I wanted to get a PR up so we can start
iterating on the interface and functionality before we invest in
testing.
- You might need to add `server.versioned.versionResolution: oldest` to
your `config/kibana.dev.yaml` to play with the requests below in the
Kibana "Dev console".

### Example API Calls

Enable the root stream (and set the mapping for the internal `.streams`
index)
```
POST kbn:/api/streams/_enable
```

Read the root entity "logs"
```
GET kbn:/api/streams/logs
```

Fork the "root" entity "logs" and create "logs.nginx" based on a
condition
```
POST kbn:/api/streams/logs/_fork
{
  "stream": {
    "id": "logs.nginx",
    "children": [],
    "processing": [],
    "fields": [],
  },
  "condition": {
    "field": "log.logger",
    "operator": "eq",
    "value": "nginx_proxy"
  }
}
```

Fork the entity "logs.nginx" and create "logs.nginx.errors" based on a
condition
```
POST kbn:/api/streams/logs.nginx/_fork
{
  "stream": {
    "id": "logs.nginx.error",
    "children": [],
   "processing": [],
   "fields": [],
  },
  "condition": {
    "or": [
      { "field": "log.level", "operator": "eq", "value": "error" },
      { "field": "log.level", "operator": "eq", "value": "ERROR" }
    ]
  }
}
```

Set some processing on a stream and map the generated field
```
PUT kbn:/api/streams/logs.nginx
{
    "children": [],
    "processing": [
       { "config": { "type": "grok", "patterns": ["^%{IP:ip} – –"], "field": "message" } }
    ],
    "fields": [
       { "name": "ip", "type": "ip" }
    ],
  }
}
```

Field definitions are checked for both descendants and ancestors for
incompatibilities to ensure they stay additive.

If children are defined in the `PUT /api/streams/<name>` API,
sub-streams are created implicitly. If a stream is `PUT`, it's added to
the parent as well with a condition that is never true (can be edited
subsequently).

`POST /api/streams/_resync` can be used to re-sync all streams from
their meta data in case the Elasticsearch objects got messed up by some
external change - not sure whether we want to keep that.


Follow-ups

* API integration tests 
* Check read permissions on data streams to determine whether a user is
allowed to read certain streams

---------

Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-13 11:52:59 +01:00
Sergi Massaneda
9a9f02c931
[IndexAdapter] Extract index-adapter package from data-stream-adapter (#199575)
## Summary

Extracts `IndexAdapter` from `DataStreamAdapter` and
`IndexPatternAdapter` from `DataStreamSpaceAdapter`.

There are no breaking changes for the _data-stream-adapter_ package; the
behavior of both the `DataStreamAdapter` and `DataStreamSpaceAdapter`
remains unchanged.

The new _index-adapter_ package exports `IndexAdapter` and
`IndexPatternAdapter` to manage individual indices without using data
streams.

This is needed for SIEM rule migrations.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-12 18:16:32 +01:00
Matthew Kime
d805546507
[ilm] Remove observability solution dependency on index lifecycle management plugin bundle (#199383)
Create package for observability solution's dependencies from index
lifecycle management. Previously it relied on the plugin bundle but
thats best avoided with our sustainable architecture efforts.

Part of https://github.com/elastic/kibana-team/issues/1179

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-10 20:18:49 -06:00
Jatin Kathuria
641d0e2d47
[Security Solution] Revert security_solution_common package which is unnecessary (#198294)
## Summary

This PR reverts https://github.com/elastic/kibana/pull/189633.

### Background

PR : https://github.com/elastic/kibana/pull/189633 had created a package
`security_solution_common` so that security components can be easily
used in Discover plugins.

But because of recent direction change, I have decided to revert that
change which mainly moved `flyout` code to the
`security_solution_common` package.

Most of the changes that you will see will be path changes replacing
`security_solution_common`.


## TL;DR

`security_solution_common` is being removed as the reason it was created
does not exists any more.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-04 15:39:32 +01:00
Pierre Gayvallet
631ccb031c
[Inference] create the @kbn/inference-common package (#193464)
## Summary

At the moment, all inference API related types and utilities
(`chatComplete`, `output` and more) are living inside the `inference`
plugin's common folder.

This is somewhat problematic because it forces any consumers of those
types to explicitly depends on the `inference` plugin (via plugin dep or
ts ref), which could lead to any kind of cyclic dependency issues, in
addition to being overall a bad design pattern.

This also makes it more complicated that it should to try to split the
inference logic / task framework / task implementation into distinct
packages or plugins, due to some (concrete) utilities living in the
inference plugin's code.

It's also a bad experience for consumers, as it's quite difficult to
easily resolve imports they need (we're mixing internal and public
exports atm, plus not all types are exported from a single entry point,
making it very tedious to find the right path for each individual import
we need to consume the inference APIs)

This PR addresses most of those points, by introducing a new
`@kbn/inference-common` package and moving all the low level types and
utilities to it, while exposing all of them from the package's
entrypoint.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-11-01 04:08:44 -05:00
Mike Côté
c31f11e7d8
Set mget task claim strategy as the default (#197070)
Resolves https://github.com/elastic/kibana/issues/194625

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

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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-25 08:57:46 -04:00
Nick Partridge
a854ff8a4e
[Lens][Datatable] Fix share export and inspect data (#193780)
The exported table data table provided in the inspector and the share export now match what was visible in the UI.
2024-10-24 11:51:38 -05:00
Kerry Gallagher
6b63f7f631
[Logs Overview] Add a flyout to show category document examples (#194867)
## Summary

Implements https://github.com/elastic/kibana/issues/193450.

## Discover changes ⚠️ 

As part of this we need to render a basic table with the log level and
summary columns, which is technically context aware but only in the
sense we know we want it to be a logs context up front.

The "correct" solution here (or at least from recent conversations) is
to use the saved search embeddable. There is upcoming work planned to
move log stream component usages over to the saved search embeddable.
However, currently this isn't in a place to just be dropped in without
some pretty extensive work. I didn't feel comfortable doing a big push
on that work as a side effort to this work, especially with a loose (if
possible) 8.16 aim for this.

What I've done (and which isn't ideal I appreciate) is used the start
contract of the Discover plugin to export the columns / cells
pre-wrapped with the Discover services. It's not ideal in the sense of
dependencies, but technically Discover doesn't use logs shared. I
considered Discover shared but that's for registering functionality for
Discover, rather than the other way around.

Eventually we'll be able to remove this and convert over to the new
solution. I'm all ears to a better solution, but there's a big mismatch
between the needs here and dropping in something that exists currently.
Thankfully the changeset for Discover is small if we're happy to keep
this temporarily.

Edit: I've made some notes here:
https://github.com/elastic/logs-dev/issues/111#issuecomment-2411096251

Edit: New package added here:
c290819c1c

## Overview

From a high level:

- Adds a new state machine for handling "details" to show in the flyout
(document examples now, plus details and a timeline later).

- Hooks this up to a flyout expanded from the categories table.

- Provides linking to Discover to view documents from the category in
the flyout.

I've also left some comments inline.

## UI / UX 

![Screenshot 2024-10-10 at 15 05
21](https://github.com/user-attachments/assets/49b525b1-f730-4e90-9a84-05175edb8c40)


![flyout_open](https://github.com/user-attachments/assets/0995b952-566b-4e09-80cf-20ad94343980)


![discover_link](https://github.com/user-attachments/assets/249ef269-0105-48af-9c81-ebae1cfb1680)

---------

Co-authored-by: Felix Stürmer <felix.stuermer@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Felix Stürmer <weltenwort@users.noreply.github.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@gmail.com>
2024-10-24 15:49:27 +01:00
Christos Nasikas
a7a81c2897
[ResponseOps][Rules] Create the rule params package (#196971)
## Summary

This PR creates a package containing the schema of the params of all
rule types. It starts as `schema.recordOf(schema.string(),
schema.maybe(schema.any()))` which is the current one. In subsequent
PRs, the schema will be updated to `schema.oneOf([apmRuleType,
esQueryRuleType, ....])`. I also substituted the definition of `params`
in the alerting plugin with the `params` exported from the package.

Towards: https://github.com/elastic/kibana/issues/187356
Fixes: https://github.com/elastic/kibana/issues/195183

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#_add_your_labels)
- [ ] This will appear in the **Release Notes** and follow the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-23 09:44:38 +03:00
Gerard Soldevila
2a085e103a
Add ESLINT constraints to detect inter-group dependencies (#194810)
## Summary

Addresses https://github.com/elastic/kibana-team/issues/1175

As part of the **Sustainable Kibana Architecture** initiative, this PR
sets the foundation to start classifying plugins in isolated groups,
matching our current solutions / project types:

* It adds support for the following fields in the packages' manifests
(kibana.jsonc):
* `group?: 'search' | 'security' | 'observability' | 'platform' |
'common'`
  * `visibility?: 'private' | 'shared'`

* It proposes a folder structure to automatically infer groups:
```javascript
  'src/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'src/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'x-pack/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/solutions/observability/plugins': {
    group: 'observability',
    visibility: 'private',
  },
  'x-pack/solutions/security/plugins': {
    group: 'security',
    visibility: 'private',
  },
  'x-pack/solutions/search/plugins': {
    group: 'search',
    visibility: 'private',
  },
```

* If a plugin is moved to one of the specific locations above, the group
and visibility in the manifest (if specified) must match those inferred
from the path.
* Plugins that are not relocated are considered: `group: 'common',
visibility: 'shared'` by default. As soon as we specify a custom
`group`, the ESLINT rules will check violations against dependencies /
dependants.

The ESLINT rules are pretty simple:
* Plugins can only depend on:
  * Plugins in the same group
  * OR plugins with `'shared'` visibility
* Plugins in `'observability', 'security', 'search'` groups are
mandatorily `'private'`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-22 06:34:19 -05:00
Lukas Olson
b0bae065d4
Move ItemBuffer to package (#196455)
## Summary

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

Bfetch exports `ItemBuffer` and `TimedItemBuffer`, the latter of which
is also used inside of the content management plugin.

After bfetch is removed, content management will be the sole consumer,
which is why I've added the team ownership to be appex-sharedux.

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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-18 14:55:42 -07:00
Cauê Marcondes
3bfa7c0018
[Inventory] Adding initial e2e structure (#196560)
closes https://github.com/elastic/kibana/issues/193992

How to open cypress dashboard locally:
```
node x-pack/plugins/observability_solution/inventory/scripts/test/e2e.js --open            
```

How to run cypress tests:
```
node x-pack/plugins/observability_solution/inventory/scripts/test/e2e.js
```

How to run cypress tests multiple times:
```
node x-pack/plugins/observability_solution/inventory/scripts/test/e2e.js --server
node x-pack/plugins/observability_solution/inventory/scripts/test/e2e.js --runner --times=X
```

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-17 08:50:11 -05:00
Quentin Pradet
920d782392
[Console] Remove unused spec-to-console package (#193426)
Closes https://github.com/elastic/kibana/issues/163333

## Summary

It was superseded by generate-console-definitions.

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elena Stoeva <59341489+ElenaStoeva@users.noreply.github.com>
2024-10-15 10:04:54 -05:00
Aleh Zasypkin
cb2112cae5
feat: allow plugins to deprecate and replace features and feature privileges (#186800)
## Summary

This change is the implementation of the `Kibana Privilege Migrations`
proposal/RFC and provides a framework that allows developers to replace
an existing feature with a new one that has the desired configuration
while teaching the platform how the privileges of the deprecated feature
can be represented by non-deprecated ones. This approach avoids
introducing breaking changes for users who still rely on the deprecated
privileges in their existing roles and any automation.

Among the use cases the framework is supposed to handle, the most common
are the following:

* Changing a feature ID from `Alpha` to `Beta`
* Splitting a feature `Alpha` into two features, `Beta` and `Gamma`
* Moving a capability between privileges within a feature (top-level or
sub-feature)
* Consolidating capabilities across independent features

## Scope

This PR includes only the core functionality proposed in the RFC and
most of the necessary guardrails (tests, early validations, etc.) to
help engineers start planning and implementing their migrations as soon
as possible. The following functionality will be added in follow-ups or
once we collect enough feedback:

* Telemetry
* Developer documentation
* UI enhancements (highlighting roles with deprecated privileges and
manual migration actions)

## Framework

The steps below use a scenario where a feature `Alpha` should be split
into two other features `Beta` and `Gamma` as an example.

### Step 1: Create new features with the desired privileges

First of all, define new feature or features with the desired
configuration as you'd do before. There are no constraints here.

<details>

<summary>Click to see the code</summary>

```ts
deps.features.registerKibanaFeature({
  id: 'feature_beta',
  name: 'Feature Beta',
  privileges: {
    all: {
      savedObject: { all: ['saved_object_1'], read: [] },
      ui: ['ui_all'],
      api: ['api_all'],
      … omitted for brevity …
    },
    read: {
      savedObject: { all: [], read: ['saved_object_1'] },
      ui: ['ui_read'],
      api: ['api_read'],
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});

deps.features.registerKibanaFeature({
  id: 'feature_gamma',
  name: 'Feature Gamma',
  privileges: {
    all: {
      savedObject: { all: ['saved_object_2'], read: [] },
      ui: ['ui_all'],
      // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags
      … omitted for brevity …
    },
    read: {
      savedObject: { all: [], read: ['saved_object_2'] },
      ui: ['ui_read'],
      // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});
```

</details>

### Step 2: Mark existing feature as deprecated

Once a feature is marked as deprecated, it should essentially be treated
as frozen for backward compatibility reasons. Deprecated features will
no longer be available through the Kibana role management UI and will be
replaced with non-deprecated privileges.

Deprecated privileges will still be accepted if the role is created or
updated via the Kibana role management APIs to avoid disrupting existing
user automation.

To avoid breaking existing roles that reference privileges provided by
the deprecated features, Kibana will continue registering these
privileges as Elasticsearch application privileges.

<details>

<summary>Click to see the code</summary>

```ts
deps.features.registerKibanaFeature({
  // This is a new `KibanaFeature` property available during feature registration.
  deprecated: {
    // User-facing justification for privilege deprecation that we can display
    // to the user when we ask them to perform role migration.
    notice: i18n.translate('xpack.security...', {
      defaultMessage: "Feature Alpha is deprecated, refer to {link}...",
      values: { link: docLinks.links.security.deprecatedFeatureAlpha },
    })
  },
  // Feature id should stay unchanged, and it's not possible to reuse it.
  id: 'feature_alpha',
  name: 'Feature Alpha (DEPRECATED)',
  privileges: {
    all: {
      savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },
      ui: ['ui_all'],
      api: ['api_all'],
      … omitted for brevity …
    },
    read: {
      savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },
      ui: ['ui_read'],
      api: ['api_read'],
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});
```
</details>

### Step 3: Map deprecated feature’s privileges to the privileges of the
non-deprecated features

The important requirement for a successful migration from a deprecated
feature to a new feature or features is that it should be possible to
express **any combination** of the deprecated feature and sub-feature
privileges with the feature or sub-feature privileges of non-deprecated
features. This way, while editing a role with deprecated feature
privileges in the UI, the admin will be interacting with new privileges
as if they were creating a new role from scratch, maintaining
consistency.

The relationship between the privileges of the deprecated feature and
the privileges of the features that are supposed to replace them is
expressed with a new `replacedBy` property available on the privileges
of the deprecated feature.

<details>

<summary>Click to see the code</summary>

```ts
deps.features.registerKibanaFeature({
  // This is a new `KibanaFeature` property available during feature registration.
  deprecated: {
    // User-facing justification for privilege deprecation that we can display
    // to the user when we ask them to perform role migration.
    notice: i18n.translate('xpack.security...', {
      defaultMessage: "Feature Alpha is deprecated, refer to {link}...",
      values: { link: docLinks.links.security.deprecatedFeatureAlpha },
    })
  },
  // Feature id should stay unchanged, and it's not possible to reuse it.
  id: 'feature_alpha',
  name: 'Feature Alpha (DEPRECATED)',
  privileges: {
    all: {
      savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },
      ui: ['ui_all'],
      api: ['api_all'],
      replacedBy: [
        { feature: 'feature_beta', privileges: ['all'] },
        { feature: 'feature_gamma', privileges: ['all'] },
      ],
      … omitted for brevity …
    },
    read: {
      savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },
      ui: ['ui_read'],
      api: ['api_read'],
      replacedBy: [
        { feature: 'feature_beta', privileges: ['read'] },
        { feature: 'feature_gamma', privileges: ['read'] },
	],
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});
```

</details>

### Step 4: Adjust the code to rely only on new, non-deprecated features

Special care should be taken if the replacement privileges cannot reuse
the API access tags from the deprecated privileges and introduce new
tags that will be applied to the same API endpoints. In this case,
developers should replace the API access tags of the deprecated
privileges with the corresponding tags provided by the replacement
privileges. This is necessary because API endpoints can only be accessed
if the user privileges cover all the tags listed in the API endpoint
definition, and without these changes, existing roles referencing
deprecated privileges won’t be able to access those endpoints.

The UI capabilities are handled slightly differently because they are
always prefixed with the feature ID. When migrating to new features with
new IDs, the code that interacts with UI capabilities will be updated to
use these new feature IDs.

<details>

<summary>Click to see the code</summary>

```ts
// BEFORE deprecation/migration
// 1. Feature Alpha defition (not deprecated yet)
deps.features.registerKibanaFeature({
  id: 'feature_alpha',
  privileges: {
    all: {
      api: ['api_all'],
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});

// 2. Route protected by `all` privilege of the Feature Alpha
router.post(
  { path: '/api/domain/my_api', options: { tags: ['access:api_all'] } },
  async (_context, request, response) => {}
);

// AFTER deprecation/migration
// 1. Feature Alpha defition (deprecated, with updated API tags)
deps.features.registerKibanaFeature({
  deprecated: …,
  id: 'feature_alpha',
  privileges: {
    all: {
      api: ['api_all_v2'],
      replacedBy: [
        { feature: 'feature_beta', privileges: ['all'] },
      ],
      … omitted for brevity …
    },
  },
  … omitted for brevity …
});

// 2. Feature Beta defition (new)
deps.features.registerKibanaFeature({
  id: 'feature_beta',
  privileges: {
    all: {
      api: ['api_all_v2'],
      … omitted for brevity …
    }
  },
  … omitted for brevity …
});

// 3. Route protected by `all` privilege of the Feature Alpha OR Feature Beta
router.post(
  { path: '/api/domain/my_api', options: { tags: ['access:api_all_v2'] } },
  async (_context, request, response) => {}
);

----

//  Old client-side code (supports only deprecated privileges)
if (capabilities.feature_alpha.ui_all) {
  … omitted for brevity …
}

//  New client-side code (will work for **both** new and deprecated privileges)
if (capabilities.feature_beta.ui_all) {
  … omitted for brevity …
}
```
</details>

## How to test

The code introduces a set of API integration tests that are designed to
validate whether the privilege mapping between deprecated and
replacement privileges maintains backward compatibility.

You can run the test server with the following config to register a
number of [example deprecated
features](https://github.com/elastic/kibana/pull/186800/files#diff-d887981d43bbe30cda039340b906b0fa7649ba80230be4de8eda326036f10f6fR20-R49)(`x-pack/test/security_api_integration/plugins/features_provider/server/index.ts`)
and the features that replace them, to see the framework in action:

```bash
node scripts/functional_tests_server.js --config x-pack/test/security_api_integration/features.config.ts
```

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-14 14:40:59 -05:00
Kfir Peled
96eff23f50
[Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008)
## Summary

Organized the team's packages under the same root folder

```
 "@kbn/cloud-security-posture": "link:x-pack/packages/cloud_security_posture/public",
 "@kbn/cloud-security-posture-common": "link:x-pack/packages/kbn-cloud-security-posture/common",
 "@kbn/cloud-security-posture-graph": "link:x-pack/packages/kbn-cloud-security-posture/graph",
```

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-14 09:43:08 -05:00
Kfir Peled
be0eadfb9f
[Cloud Security] Graph visualization and API (#195307)
## Summary

This PR adds:
- Graph visualization component using `xyflow`, and layouts the graph
using `dagre`.
- API that supports the graph visualization
- API tests
- Serverless API tests

**List of open issues (will be tracked in a different ticket):**
- Identify if `related.hosts`, `related.ip` and `related.user` are
mapped before the query. (can be fixed by
https://github.com/elastic/elasticsearch/issues/112912)
- Update nodes rendering to match recent figma changes
- Return 404 when feature is not enabled
- Add keyboard accessibility
- Resolve 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))

### How to test

You can view the graph using storybook's
[playground](https://supreme-adventure-8qjmlp1.pages.github.io/graph-storybook/?path=/story/components-graph-components-dagree-layout-graph--graph-stacked-edge-cases).

To test this PR you can run

```
yarn storybook cloud_security_posture_packages
```

To test the API you can use the mocked data

```bash
node scripts/es_archiver load x-pack/test/cloud_security_posture_api/es_archives/logs_gcp_audit \ 
--es-url http://elastic:changeme@localhost:9200 \
--kibana-url http://elastic:changeme@localhost:5601
```

And through dev tools:

```
POST kbn:/internal/cloud_security_posture/graph?apiVersion=1
{
  "query": {
    "actorIds": ["admin@example.com"],
    "eventIds": [""],
    "start": "now-1y/y",
    "end": "now/d"
  }
}
```

### 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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [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))
- [x] 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-10-11 22:37:02 -05:00