diff --git a/.backportrc.json b/.backportrc.json
index b0595644da22f..931ea6dbfe3a7 100644
--- a/.backportrc.json
+++ b/.backportrc.json
@@ -4,6 +4,7 @@
"targetBranchChoices": [
"main",
"8.x",
+ "8.17",
"8.16",
"8.15",
"8.14",
@@ -55,7 +56,7 @@
],
"branchLabelMapping": {
"^v9.0.0$": "main",
- "^v8.17.0$": "8.x",
+ "^v8.18.0$": "8.x",
"^v(\\d+).(\\d+).\\d+$": "$1.$2"
},
"autoMerge": true,
diff --git a/.buildkite/ftr_security_serverless_configs.yml b/.buildkite/ftr_security_serverless_configs.yml
index 89550c59e6bb8..955354e2acb50 100644
--- a/.buildkite/ftr_security_serverless_configs.yml
+++ b/.buildkite/ftr_security_serverless_configs.yml
@@ -100,7 +100,9 @@ enabled:
- x-pack/test/security_solution_api_integration/test_suites/explore/network/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/explore/users/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/explore/overview/trial_license_complete_tier/configs/serverless.config.ts
+ - x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/basic_license_essentials_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/trial_license_complete_tier/configs/serverless.config.ts
+ - x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/basic_license_essentials_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/sources/indices/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/edr_workflows/artifacts/trial_license_complete_tier/configs/serverless.config.ts
diff --git a/.buildkite/ftr_security_stateful_configs.yml b/.buildkite/ftr_security_stateful_configs.yml
index d3aadb1b7491d..f7caacba05e1b 100644
--- a/.buildkite/ftr_security_stateful_configs.yml
+++ b/.buildkite/ftr_security_stateful_configs.yml
@@ -80,13 +80,9 @@ enabled:
- x-pack/test/security_solution_api_integration/test_suites/explore/users/trial_license_complete_tier/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/explore/overview/trial_license_complete_tier/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/basic_license_essentials_tier/configs/ess.config.ts
- - x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/basic_license_essentials_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/trial_license_complete_tier/configs/ess.config.ts
- - x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/trial_license_complete_tier/configs/ess.config.ts
- - x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/basic_license_essentials_tier/configs/ess.config.ts
- - x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/basic_license_essentials_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/sources/indices/trial_license_complete_tier/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/edr_workflows/artifacts/trial_license_complete_tier/configs/ess.config.ts
- x-pack/test/security_solution_api_integration/test_suites/edr_workflows/authentication/trial_license_complete_tier/configs/ess.config.ts
diff --git a/.buildkite/pipeline-resource-definitions/kibana-console-definitions-sync.yml b/.buildkite/pipeline-resource-definitions/kibana-console-definitions-sync.yml
new file mode 100644
index 0000000000000..a228823202c01
--- /dev/null
+++ b/.buildkite/pipeline-resource-definitions/kibana-console-definitions-sync.yml
@@ -0,0 +1,54 @@
+# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
+apiVersion: backstage.io/v1alpha1
+kind: Resource
+metadata:
+ name: bk-kibana-console-definitions-sync
+ description: Opens a PR if anything changes in the console definitions in elasticsearch-definitions
+ links:
+ - url: 'https://buildkite.com/elastic/kibana-console-definitions-sync'
+ title: Pipeline link
+spec:
+ type: buildkite-pipeline
+ owner: 'group:kibana-management'
+ system: buildkite
+ implementation:
+ apiVersion: buildkite.elastic.dev/v1
+ kind: Pipeline
+ metadata:
+ name: kibana / Console definitions sync
+ description: Opens a PR if anything changes in the console definitions in elasticsearch-definitions
+ spec:
+ env:
+ SLACK_NOTIFICATIONS_CHANNEL: '#kibana-management'
+ ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
+ allow_rebuilds: false
+ branch_configuration: main
+ default_branch: main
+ repository: elastic/kibana
+ pipeline_file: .buildkite/pipelines/console_definitions_sync.yml
+ provider_settings:
+ build_branches: false
+ build_pull_requests: false
+ publish_commit_status: false
+ trigger_mode: none
+ build_tags: false
+ prefix_pull_request_fork_branch_names: false
+ skip_pull_request_builds_for_existing_commits: true
+ teams:
+ kibana-management:
+ access_level: MANAGE_BUILD_AND_READ
+ kibana-operations:
+ access_level: MANAGE_BUILD_AND_READ
+ appex-qa:
+ access_level: MANAGE_BUILD_AND_READ
+ kibana-tech-leads:
+ access_level: MANAGE_BUILD_AND_READ
+ everyone:
+ access_level: BUILD_AND_READ
+ schedules:
+ Weekly build:
+ cronline: 0 0 * * 1 America/New_York
+ message: Weekly build
+ branch: main
+ tags:
+ - kibana
diff --git a/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml b/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml
index 652ce7b35c30d..beccde5ab87f2 100644
--- a/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml
+++ b/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml
@@ -22,7 +22,7 @@ spec:
SLACK_NOTIFICATIONS_CHANNEL: '#kibana-operations-alerts'
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
allow_rebuilds: true
- branch_configuration: main 8.x 8.16 8.15 7.17
+ branch_configuration: main 8.x 8.17 8.16 8.15 7.17
default_branch: main
repository: elastic/kibana
pipeline_file: .buildkite/pipelines/es_snapshots/build.yml
@@ -52,6 +52,10 @@ spec:
cronline: 0 22 * * * America/New_York
message: Daily build
branch: '8.x'
+ Daily build (8.17):
+ cronline: 0 22 * * * America/New_York
+ message: Daily build
+ branch: '8.17'
Daily build (8.16):
cronline: 0 22 * * * America/New_York
message: Daily build
@@ -91,7 +95,7 @@ spec:
SLACK_NOTIFICATIONS_CHANNEL: '#kibana-operations-alerts'
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
allow_rebuilds: true
- branch_configuration: main 8.x 8.16 8.15 7.17
+ branch_configuration: main 8.x 8.17 8.16 8.15 7.17
default_branch: main
repository: elastic/kibana
pipeline_file: .buildkite/pipelines/es_snapshots/promote.yml
@@ -140,7 +144,7 @@ spec:
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
REPORT_FAILED_TESTS_TO_GITHUB: 'true'
allow_rebuilds: true
- branch_configuration: main 8.x 8.16 8.15 7.17
+ branch_configuration: main 8.x 8.17 8.16 8.15 7.17
default_branch: main
repository: elastic/kibana
pipeline_file: .buildkite/pipelines/es_snapshots/verify.yml
diff --git a/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml b/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml
index b2ec63310cc6c..8219f37d349fb 100644
--- a/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml
+++ b/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml
@@ -22,7 +22,7 @@ spec:
SLACK_NOTIFICATIONS_CHANNEL: '#kibana-unsupported-ftrs-alerts'
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
allow_rebuilds: true
- branch_configuration: main 8.x 8.16 8.15 7.17
+ branch_configuration: main 8.x 8.17 8.16 8.15 7.17
default_branch: main
repository: elastic/kibana
pipeline_file: .buildkite/pipelines/on_merge_unsupported_ftrs.yml
diff --git a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml
index 5b71b58b8a00f..aa56f4561fb6b 100644
--- a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml
+++ b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml
@@ -25,7 +25,7 @@ spec:
REPORT_FAILED_TESTS_TO_GITHUB: 'true'
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true'
allow_rebuilds: true
- branch_configuration: main 8.x 8.16 8.15 7.17
+ branch_configuration: main 8.x 8.17 8.16 8.15 7.17
default_branch: main
repository: elastic/kibana
pipeline_file: .buildkite/pipelines/on_merge.yml
diff --git a/.buildkite/pipelines/console_definitions_sync.yml b/.buildkite/pipelines/console_definitions_sync.yml
new file mode 100644
index 0000000000000..22d91eacbdbdb
--- /dev/null
+++ b/.buildkite/pipelines/console_definitions_sync.yml
@@ -0,0 +1,10 @@
+steps:
+ - command: .buildkite/scripts/steps/console_definitions_sync.sh
+ label: Console Definitions Sync
+ timeout_in_minutes: 10
+ agents:
+ image: family/kibana-ubuntu-2004
+ imageProject: elastic-images-prod
+ provider: gcp
+ machineType: n2-standard-2
+ preemptible: true
diff --git a/.buildkite/scripts/steps/console_definitions_sync.sh b/.buildkite/scripts/steps/console_definitions_sync.sh
new file mode 100755
index 0000000000000..55719292959e8
--- /dev/null
+++ b/.buildkite/scripts/steps/console_definitions_sync.sh
@@ -0,0 +1,68 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+report_main_step () {
+ echo "--- $1"
+}
+
+main () {
+ cd "$PARENT_DIR"
+
+ report_main_step "Cloning repositories"
+
+ rm -rf elasticsearch-specification
+ if ! git clone https://github.com/elastic/elasticsearch-specification --depth 1; then
+ echo "Error: Failed to clone the elasticsearch-specification repository."
+ exit 1
+ fi
+
+ cd "$KIBANA_DIR"
+
+ report_main_step "Generating console definitions"
+ node scripts/generate_console_definitions.js --source "$PARENT_DIR/elasticsearch-specification" --emptyDest
+
+ # Check if there are any differences
+ set +e
+ git diff --exit-code --quiet "$destination_file"
+ if [ $? -eq 0 ]; then
+ echo "No differences found. Exiting.."
+ exit
+ fi
+ set -e
+
+ report_main_step "Differences found. Checking for an existing pull request."
+
+ KIBANA_MACHINE_USERNAME="kibanamachine"
+ git config --global user.name "$KIBANA_MACHINE_USERNAME"
+ git config --global user.email '42973632+kibanamachine@users.noreply.github.com'
+
+ PR_TITLE='[Console] Update console definitions'
+ PR_BODY='This PR updates the console definitions to match the latest ones from the @elastic/elasticsearch-specification repo.'
+
+ # Check if a PR already exists
+ pr_search_result=$(gh pr list --search "$PR_TITLE" --state open --author "$KIBANA_MACHINE_USERNAME" --limit 1 --json title -q ".[].title")
+
+ if [ "$pr_search_result" == "$PR_TITLE" ]; then
+ echo "PR already exists. Exiting.."
+ exit
+ fi
+
+ echo "No existing PR found. Proceeding.."
+
+ # Commit diff
+ BRANCH_NAME="console_definitions_sync_$(date +%s)"
+
+ git checkout -b "$BRANCH_NAME"
+
+ git add src/plugins/console/server/lib/spec_definitions/json/generated/*
+ git commit -m "Update console definitions"
+
+ report_main_step "Changes committed. Creating pull request."
+
+ git push origin "$BRANCH_NAME"
+
+ # Create PR
+ gh pr create --title "$PR_TITLE" --body "$PR_BODY" --base main --head "${BRANCH_NAME}" --label 'release_note:skip' --label 'Feature:Console' --label 'Team:Kibana Management'
+}
+
+main
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d47a5b9397613..2637231ed9033 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1278,6 +1278,8 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql
/x-pack/test/common/utils/synthtrace @elastic/obs-ux-infra_services-team @elastic/obs-ux-logs-team # Assigned per https://github.com/elastic/kibana/blob/main/packages/kbn-apm-synthtrace/kibana.jsonc#L5
# Infra Monitoring tests
+/x-pack/test/common/services/infra_synthtrace_kibana_client.ts @elastic/obs-ux-infra_services-team
+/x-pack/test/common/services/infra_log_views.ts @elastic/obs-ux-infra_services-team # Assigned per https://github.com/elastic/kibana/pull/188204
/x-pack/test/api_integration/apis/infra @elastic/obs-ux-infra_services-team
/x-pack/test/functional/apps/infra @elastic/obs-ux-infra_services-team
/x-pack/test/functional/apps/infra/logs @elastic/obs-ux-logs-team
@@ -1316,6 +1318,7 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql
/x-pack/test/accessibility/apps/group3/stack_monitoring.ts @elastic/stack-monitoring
# Fleet
+/x-pack/test/functional/es_archives/fleet @elastic/fleet
/x-pack/test/api_integration/services/fleet_and_agents.ts @elastic/fleet
/x-pack/test/fleet_api_integration @elastic/fleet
/x-pack/test/fleet_packages @elastic/fleet
@@ -1376,6 +1379,7 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql
/x-pack/test/api_integration/apis/logs_shared @elastic/obs-ux-logs-team
# Observability-ui
+/x-pack/test_serverless/functional/test_suites/observability @elastic/observability-ui
/x-pack/test_serverless/api_integration/test_suites/observability/index.ts @elastic/observability-ui
/x-pack/test/functional_solution_sidenav/tests/observability_sidenav.ts @elastic/observability-ui
/x-pack/test/functional/page_objects/observability_page.ts @elastic/observability-ui
@@ -1391,6 +1395,12 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql
### END Observability Plugins
# Presentation
+/x-pack/test/functional/fixtures/kbn_archiver/maps.json @elastic/kibana-presentation
+/x-pack/test/functional/fixtures/kbn_archiver/canvas @elastic/kibana-presentation
+/x-pack/test/functional/es_archives/dashboard/async_search @elastic/kibana-presentation
+/test/functional/fixtures/kbn_archiver/dashboard @elastic/kibana-presentation
+/test/functional/fixtures/kbn_archiver/canvas @elastic/kibana-presentation
+/test/api_integration/apis/dashboards @elastic/kibana-presentation
/test/interpreter_functional/snapshots @elastic/kibana-presentation # Assigned per https://github.com/elastic/kibana/pull/54342
/test/functional/services/inspector.ts @elastic/kibana-presentation
/x-pack/test/functional/services/canvas_element.ts @elastic/kibana-presentation
@@ -1503,6 +1513,28 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql
/.eslintignore @elastic/kibana-operations
# QA - Appex QA
+/x-pack/test/functional/fixtures/package_registry_config.yml @elastic/appex-qa # No usages found
+/x-pack/test/functional/fixtures/kbn_archiver/packaging.json @elastic/appex-qa # No usages found
+/x-pack/test/functional/es_archives/filebeat @elastic/appex-qa
+/x-pack/test/functional/es_archives/logstash_functional @elastic/appex-qa
+/x-pack/test/functional/es_archives/event_log_legacy_ids @elastic/appex-qa
+/x-pack/test/functional/es_archives/dlstest @elastic/appex-qa # No usages found
+/x-pack/test/functional/es_archives/beats/list/data.json @elastic/appex-qa # No usages found
+/test/functional/fixtures/kbn_archiver/stress_test.json @elastic/appex-qa
+/test/functional/fixtures/kbn_archiver/many_fields_data_view.json @elastic/appex-qa
+/test/functional/fixtures/kbn_archiver/long_window_logstash_index_pattern.json @elastic/appex-qa
+/test/functional/fixtures/kbn_archiver/kibana_sample_data_logs_tsdb.json @elastic/appex-qa
+/test/functional/fixtures/kbn_archiver/kibana_sample_data_logs_logsdb.json @elastic/appex-qa
+/test/functional/fixtures/kbn_archiver/kibana_sample_data_flights_index_pattern.json @elastic/appex-qa
+/test/functional/fixtures/es_archiver/stress_test @elastic/appex-qa
+/test/functional/fixtures/es_archiver/many_fields @elastic/appex-qa
+/test/functional/fixtures/es_archiver/logstash_functional @elastic/appex-qa
+/test/functional/fixtures/es_archiver/long_window_logstash @elastic/appex-qa
+/test/functional/fixtures/es_archiver/kibana_sample_data_logs_* @elastic/appex-qa
+/test/functional/fixtures/es_archiver/kibana_sample_data_flights* @elastic/appex-qa
+/test/functional/fixtures/es_archiver/getting_started/shakespeare @elastic/appex-qa
+/test/api_integration/fixtures/es_archiver/elasticsearch @elastic/appex-qa
+/x-pack/test/plugin_functional/services.ts @elastic/appex-qa
/test/server_integration/services/index.js @elastic/appex-qa
/x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js @elastic/appex-qa
/x-pack/test/stack_functional_integration/configs/consume_state.js @elastic/appex-qa
@@ -1802,6 +1834,9 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib
#CC# /x-pack/plugins/security/ @elastic/kibana-security
# Response Ops team
+/x-pack/test/functional/es_archives/rule_registry @elastic/response-ops
+/x-pack/test/functional/es_archives/event_log_multiple_indicies @elastic/response-ops
+/x-pack/test/functional/es_archives/task_manager* @elastic/response-ops # Assigned per https://github.com/elastic/kibana/blob/assign-response-ops/x-pack/test/plugin_api_perf/plugins/task_manager_performance/kibana.jsonc#L4
/x-pack/test/plugin_api_perf @elastic/response-ops # Assigned per https://github.com/elastic/kibana/blob/assign-response-ops/x-pack/test/plugin_api_perf/plugins/task_manager_performance/kibana.jsonc#L4
/x-pack/test/functional/page_objects/maintenance_windows_page.ts @elastic/response-ops
/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/index.ts @elastic/response-ops
@@ -2313,7 +2348,10 @@ x-pack/plugins/osquery @elastic/security-defend-workflows
/x-pack/plugins/security_solution/public/cloud_defend @elastic/kibana-cloud-security-posture
# Cloud Security Posture
-x-pack/packages/kbn-cloud-security-posture @elastic/kibana-cloud-security-posture
+/x-pack/test/functional/es_archives/kubernetes_security @elastic/kibana-cloud-security-posture
+/x-pack/test/functional/es_archives/session_view @elastic/kibana-cloud-security-posture
+/x-pack/test/session_view @elastic/kibana-cloud-security-posture # Assigned per https://github.com/elastic/kibana/blob/main/api_docs/session_view.mdx#L18
+/x-pack/packages/kbn-cloud-security-posture @elastic/kibana-cloud-security-posture
/x-pack/test/kubernetes_security @elastic/kibana-cloud-security-posture
/x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.* @elastic/kibana-cloud-security-posture
/x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 8ed73aa521aff..000a80d2b84f8 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,7 +15,7 @@ Reviewers should verify this PR satisfies this list as well.
- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed
-- [ ] The PR description includes the appropriate Release Notes section, and the correct `release_node:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
+- [ ] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
### Identify risks
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index 32647a7594ff6..2220617a3ec38 100644
--- a/api_docs/actions.mdx
+++ b/api_docs/actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions
title: "actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the actions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions']
---
import actionsObj from './actions.devdocs.json';
diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx
index 55ae54fac12e7..e299e5bf513e5 100644
--- a/api_docs/advanced_settings.mdx
+++ b/api_docs/advanced_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings
title: "advancedSettings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the advancedSettings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings']
---
import advancedSettingsObj from './advanced_settings.devdocs.json';
diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx
index 724f4ce188422..5d9d1d1ef0734 100644
--- a/api_docs/ai_assistant_management_selection.mdx
+++ b/api_docs/ai_assistant_management_selection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection
title: "aiAssistantManagementSelection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiAssistantManagementSelection plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection']
---
import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json';
diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx
index 54b6e466f2d65..b2d2007176ee0 100644
--- a/api_docs/aiops.mdx
+++ b/api_docs/aiops.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops
title: "aiops"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiops plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops']
---
import aiopsObj from './aiops.devdocs.json';
diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx
index 06e50627b8c05..1e6315872aa5d 100644
--- a/api_docs/alerting.mdx
+++ b/api_docs/alerting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting
title: "alerting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the alerting plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting']
---
import alertingObj from './alerting.devdocs.json';
diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx
index 82f8a33b120ef..99bac4223f94a 100644
--- a/api_docs/apm.mdx
+++ b/api_docs/apm.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm
title: "apm"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apm plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm']
---
import apmObj from './apm.devdocs.json';
diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx
index 9c55ce8545846..2fa76a793cba7 100644
--- a/api_docs/apm_data_access.mdx
+++ b/api_docs/apm_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess
title: "apmDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apmDataAccess plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess']
---
import apmDataAccessObj from './apm_data_access.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index 004cd65fd7eda..b78a5d5c451e2 100644
--- a/api_docs/banners.mdx
+++ b/api_docs/banners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners
title: "banners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the banners plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners']
---
import bannersObj from './banners.devdocs.json';
diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx
index f39a876132c2a..13f2e3f9ea1f8 100644
--- a/api_docs/bfetch.mdx
+++ b/api_docs/bfetch.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch
title: "bfetch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the bfetch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch']
---
import bfetchObj from './bfetch.devdocs.json';
diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx
index f2ccd2185a8e9..99e362aa8c45a 100644
--- a/api_docs/canvas.mdx
+++ b/api_docs/canvas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas
title: "canvas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the canvas plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas']
---
import canvasObj from './canvas.devdocs.json';
diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx
index 3b805ccad4726..195e5e9e06dfe 100644
--- a/api_docs/cases.mdx
+++ b/api_docs/cases.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases
title: "cases"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cases plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases']
---
import casesObj from './cases.devdocs.json';
diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx
index 8148e88dd7a85..13412e5c0f8ce 100644
--- a/api_docs/charts.mdx
+++ b/api_docs/charts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts
title: "charts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the charts plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts']
---
import chartsObj from './charts.devdocs.json';
diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx
index d7b93545bdfc5..1569ebf0422f4 100644
--- a/api_docs/cloud.mdx
+++ b/api_docs/cloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud
title: "cloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloud plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud']
---
import cloudObj from './cloud.devdocs.json';
diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx
index 18d375f25a9ea..f3120771b11d6 100644
--- a/api_docs/cloud_data_migration.mdx
+++ b/api_docs/cloud_data_migration.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration
title: "cloudDataMigration"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDataMigration plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration']
---
import cloudDataMigrationObj from './cloud_data_migration.devdocs.json';
diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx
index 705c3dd7cd4d9..6c14aaa2f71e4 100644
--- a/api_docs/cloud_defend.mdx
+++ b/api_docs/cloud_defend.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend
title: "cloudDefend"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDefend plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend']
---
import cloudDefendObj from './cloud_defend.devdocs.json';
diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx
index 915caecb92990..1b0ab744e1f80 100644
--- a/api_docs/cloud_security_posture.mdx
+++ b/api_docs/cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture
title: "cloudSecurityPosture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudSecurityPosture plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture']
---
import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json';
diff --git a/api_docs/console.mdx b/api_docs/console.mdx
index 47abb21ae411b..1237f703ccc1e 100644
--- a/api_docs/console.mdx
+++ b/api_docs/console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console
title: "console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the console plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console']
---
import consoleObj from './console.devdocs.json';
diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx
index 694d6d2c88391..d4525449445fb 100644
--- a/api_docs/content_management.mdx
+++ b/api_docs/content_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement
title: "contentManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the contentManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement']
---
import contentManagementObj from './content_management.devdocs.json';
diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx
index 62f7648118057..a34692f145a57 100644
--- a/api_docs/controls.mdx
+++ b/api_docs/controls.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls
title: "controls"
image: https://source.unsplash.com/400x175/?github
description: API docs for the controls plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls']
---
import controlsObj from './controls.devdocs.json';
diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx
index 53d90c254170d..a9959856a65be 100644
--- a/api_docs/custom_integrations.mdx
+++ b/api_docs/custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations
title: "customIntegrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the customIntegrations plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations']
---
import customIntegrationsObj from './custom_integrations.devdocs.json';
diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx
index 47004e43c1f63..c836aa3572a40 100644
--- a/api_docs/dashboard.mdx
+++ b/api_docs/dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard
title: "dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboard plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard']
---
import dashboardObj from './dashboard.devdocs.json';
diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx
index 1f41e84ce8047..9245ad0d947d6 100644
--- a/api_docs/dashboard_enhanced.mdx
+++ b/api_docs/dashboard_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced
title: "dashboardEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboardEnhanced plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced']
---
import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json';
diff --git a/api_docs/data.mdx b/api_docs/data.mdx
index 032baaa85063b..d19c18837cd09 100644
--- a/api_docs/data.mdx
+++ b/api_docs/data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data
title: "data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_quality.mdx b/api_docs/data_quality.mdx
index 5ee3c6116ca2d..1514252041696 100644
--- a/api_docs/data_quality.mdx
+++ b/api_docs/data_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataQuality
title: "dataQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataQuality plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataQuality']
---
import dataQualityObj from './data_quality.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index 35adf90f99756..45a7cec042012 100644
--- a/api_docs/data_query.mdx
+++ b/api_docs/data_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query
title: "data.query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.query plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query']
---
import dataQueryObj from './data_query.devdocs.json';
diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx
index e03ef5b0fadac..cd800a03712c0 100644
--- a/api_docs/data_search.mdx
+++ b/api_docs/data_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search
title: "data.search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.search plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search']
---
import dataSearchObj from './data_search.devdocs.json';
diff --git a/api_docs/data_usage.devdocs.json b/api_docs/data_usage.devdocs.json
index 934e8ba7e64af..09fcffd5c58eb 100644
--- a/api_docs/data_usage.devdocs.json
+++ b/api_docs/data_usage.devdocs.json
@@ -117,6 +117,21 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "dataUsage",
+ "id": "def-common.DEFAULT_SELECTED_OPTIONS",
+ "type": "number",
+ "tags": [],
+ "label": "DEFAULT_SELECTED_OPTIONS",
+ "description": [],
+ "signature": [
+ "50"
+ ],
+ "path": "x-pack/plugins/data_usage/common/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "dataUsage",
"id": "def-common.PLUGIN_ID",
diff --git a/api_docs/data_usage.mdx b/api_docs/data_usage.mdx
index 51670016cf1e0..2a13775442420 100644
--- a/api_docs/data_usage.mdx
+++ b/api_docs/data_usage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataUsage
title: "dataUsage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataUsage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataUsage']
---
import dataUsageObj from './data_usage.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 9 | 0 | 9 | 0 |
+| 10 | 0 | 10 | 0 |
## Client
diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx
index 5380853b6d7ea..d5dfcd256900e 100644
--- a/api_docs/data_view_editor.mdx
+++ b/api_docs/data_view_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor
title: "dataViewEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewEditor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor']
---
import dataViewEditorObj from './data_view_editor.devdocs.json';
diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx
index 5777bc6726321..f40054b03b42d 100644
--- a/api_docs/data_view_field_editor.mdx
+++ b/api_docs/data_view_field_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor
title: "dataViewFieldEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewFieldEditor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor']
---
import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json';
diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx
index 400e35abbd89f..1406364224921 100644
--- a/api_docs/data_view_management.mdx
+++ b/api_docs/data_view_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement
title: "dataViewManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement']
---
import dataViewManagementObj from './data_view_management.devdocs.json';
diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json
index 956b32de3213a..1a8d015414474 100644
--- a/api_docs/data_views.devdocs.json
+++ b/api_docs/data_views.devdocs.json
@@ -26666,6 +26666,20 @@
"deprecated": false,
"trackAdoption": false,
"initialIsOpen": false
+ },
+ {
+ "parentPluginId": "dataViews",
+ "id": "def-common.HasEsDataFailureReason",
+ "type": "Enum",
+ "tags": [],
+ "label": "HasEsDataFailureReason",
+ "description": [
+ "\nValid `failureReason` attribute values for `has_es_data` API error responses"
+ ],
+ "path": "src/plugins/data_views/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
}
],
"misc": [
diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx
index b1facd7339dac..c0cb56f241752 100644
--- a/api_docs/data_views.mdx
+++ b/api_docs/data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews
title: "dataViews"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViews plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews']
---
import dataViewsObj from './data_views.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 1224 | 0 | 443 | 4 |
+| 1225 | 0 | 443 | 4 |
## Client
diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx
index ea8d3782354ac..4fc37f1fbea74 100644
--- a/api_docs/data_visualizer.mdx
+++ b/api_docs/data_visualizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer
title: "dataVisualizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataVisualizer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx
index b3c87427e71de..6fd15abcb08bc 100644
--- a/api_docs/dataset_quality.mdx
+++ b/api_docs/dataset_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality
title: "datasetQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the datasetQuality plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality']
---
import datasetQualityObj from './dataset_quality.devdocs.json';
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index 28b8e5a3b7496..b849470e8f934 100644
--- a/api_docs/deprecations_by_api.mdx
+++ b/api_docs/deprecations_by_api.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api
title: Deprecated API usage by API
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index 3bcbefc686083..1a945320752fb 100644
--- a/api_docs/deprecations_by_plugin.mdx
+++ b/api_docs/deprecations_by_plugin.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin
title: Deprecated API usage by plugin
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -574,7 +574,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/common/functions/filters.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context) | - |
| | [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=ResolvedSimpleSavedObject), [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=ResolvedSimpleSavedObject), [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=ResolvedSimpleSavedObject), [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=ResolvedSimpleSavedObject) | - |
| | [workpad_route_context.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/workpad_route_context.ts#:~:text=migrationVersion) | - |
-| | [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes) | - |
+| | [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [has_workpads.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts#:~:text=SavedObjectAttributes), [has_workpads.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes)+ 2 more | - |
| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObject), [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=SavedObject), [canvas_workpad_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/services/canvas_workpad_service.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject), [use_upload_workpad.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/hooks/use_upload_workpad.ts#:~:text=SavedObject) | - |
| | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes) | - |
| | [saved_lens.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts#:~:text=SavedObjectReference), [saved_lens.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_lens.ts#:~:text=SavedObjectReference), [saved_map.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts#:~:text=SavedObjectReference), [saved_map.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_map.ts#:~:text=SavedObjectReference), [saved_search.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts#:~:text=SavedObjectReference), [saved_search.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_search.ts#:~:text=SavedObjectReference), [saved_visualization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts#:~:text=SavedObjectReference), [saved_visualization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/saved_visualization.ts#:~:text=SavedObjectReference), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=SavedObjectReference), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=SavedObjectReference) | - |
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index 2f91715f99c65..491d92ded6b66 100644
--- a/api_docs/deprecations_by_team.mdx
+++ b/api_docs/deprecations_by_team.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam
slug: /kibana-dev-docs/api-meta/deprecations-due-by-team
title: Deprecated APIs due to be removed, by team
description: Lists the teams that are referencing deprecated APIs with a remove by date.
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index f52099ac7c338..f2d8fe46d51aa 100644
--- a/api_docs/dev_tools.mdx
+++ b/api_docs/dev_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools
title: "devTools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the devTools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools']
---
import devToolsObj from './dev_tools.devdocs.json';
diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx
index c40aeb488b5d8..235836c647e7d 100644
--- a/api_docs/discover.mdx
+++ b/api_docs/discover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover
title: "discover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discover plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover']
---
import discoverObj from './discover.devdocs.json';
diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx
index b7fbdcf6917ae..3bb8d0f4eb5f4 100644
--- a/api_docs/discover_enhanced.mdx
+++ b/api_docs/discover_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced
title: "discoverEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverEnhanced plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/discover_shared.mdx b/api_docs/discover_shared.mdx
index 3eb139a2302ec..162b8cc5bbd7f 100644
--- a/api_docs/discover_shared.mdx
+++ b/api_docs/discover_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverShared
title: "discoverShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverShared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverShared']
---
import discoverSharedObj from './discover_shared.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index ec57939cc4d83..0ebae55d5e329 100644
--- a/api_docs/ecs_data_quality_dashboard.mdx
+++ b/api_docs/ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard
title: "ecsDataQualityDashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ecsDataQualityDashboard plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard']
---
import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx
index 8ba04a058336c..7b3168e0d3b8f 100644
--- a/api_docs/elastic_assistant.mdx
+++ b/api_docs/elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant
title: "elasticAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the elasticAssistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant']
---
import elasticAssistantObj from './elastic_assistant.devdocs.json';
diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx
index 3fd50116d1727..bae2f28e6eb87 100644
--- a/api_docs/embeddable.mdx
+++ b/api_docs/embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable
title: "embeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddable plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable']
---
import embeddableObj from './embeddable.devdocs.json';
diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx
index 0a177f286ca29..4e570fabcd39d 100644
--- a/api_docs/embeddable_enhanced.mdx
+++ b/api_docs/embeddable_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced
title: "embeddableEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddableEnhanced plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced']
---
import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json';
diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx
index 43742400420b4..2f3b7b193a85f 100644
--- a/api_docs/encrypted_saved_objects.mdx
+++ b/api_docs/encrypted_saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects
title: "encryptedSavedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the encryptedSavedObjects plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects']
---
import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json';
diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx
index eb632fa8aa9f8..ed5a7c678b458 100644
--- a/api_docs/enterprise_search.mdx
+++ b/api_docs/enterprise_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch
title: "enterpriseSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the enterpriseSearch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch']
---
import enterpriseSearchObj from './enterprise_search.devdocs.json';
diff --git a/api_docs/entities_data_access.mdx b/api_docs/entities_data_access.mdx
index 5705a4753af70..9921e22e8f9f0 100644
--- a/api_docs/entities_data_access.mdx
+++ b/api_docs/entities_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entitiesDataAccess
title: "entitiesDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the entitiesDataAccess plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entitiesDataAccess']
---
import entitiesDataAccessObj from './entities_data_access.devdocs.json';
diff --git a/api_docs/entity_manager.mdx b/api_docs/entity_manager.mdx
index ec318d2f88731..752bdf4a2aeac 100644
--- a/api_docs/entity_manager.mdx
+++ b/api_docs/entity_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entityManager
title: "entityManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the entityManager plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entityManager']
---
import entityManagerObj from './entity_manager.devdocs.json';
diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx
index 7e0bbc6cc5d63..fb1a1a53d1f24 100644
--- a/api_docs/es_ui_shared.mdx
+++ b/api_docs/es_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared
title: "esUiShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esUiShared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared']
---
import esUiSharedObj from './es_ui_shared.devdocs.json';
diff --git a/api_docs/esql.mdx b/api_docs/esql.mdx
index a93d10e86866f..f2a267ba2ab10 100644
--- a/api_docs/esql.mdx
+++ b/api_docs/esql.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esql
title: "esql"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esql plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esql']
---
import esqlObj from './esql.devdocs.json';
diff --git a/api_docs/esql_data_grid.mdx b/api_docs/esql_data_grid.mdx
index fda8e6227e50f..7ce5d8e613e6f 100644
--- a/api_docs/esql_data_grid.mdx
+++ b/api_docs/esql_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esqlDataGrid
title: "esqlDataGrid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esqlDataGrid plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esqlDataGrid']
---
import esqlDataGridObj from './esql_data_grid.devdocs.json';
diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx
index cbdb922eec548..7b08a1921c476 100644
--- a/api_docs/event_annotation.mdx
+++ b/api_docs/event_annotation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation
title: "eventAnnotation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation']
---
import eventAnnotationObj from './event_annotation.devdocs.json';
diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx
index f746c2c26af3d..05ab5523be5b7 100644
--- a/api_docs/event_annotation_listing.mdx
+++ b/api_docs/event_annotation_listing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing
title: "eventAnnotationListing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotationListing plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing']
---
import eventAnnotationListingObj from './event_annotation_listing.devdocs.json';
diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx
index ca02f9a5cb40b..942dda6e349b9 100644
--- a/api_docs/event_log.mdx
+++ b/api_docs/event_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog
title: "eventLog"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventLog plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog']
---
import eventLogObj from './event_log.devdocs.json';
diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx
index eac05d6de6340..512096cde33f3 100644
--- a/api_docs/exploratory_view.mdx
+++ b/api_docs/exploratory_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView
title: "exploratoryView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the exploratoryView plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView']
---
import exploratoryViewObj from './exploratory_view.devdocs.json';
diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx
index 6a5fbd3403e39..47947b3175cac 100644
--- a/api_docs/expression_error.mdx
+++ b/api_docs/expression_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError
title: "expressionError"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionError plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError']
---
import expressionErrorObj from './expression_error.devdocs.json';
diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx
index 7ed076a8170d2..0c6cf2d2ac901 100644
--- a/api_docs/expression_gauge.mdx
+++ b/api_docs/expression_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge
title: "expressionGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionGauge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge']
---
import expressionGaugeObj from './expression_gauge.devdocs.json';
diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx
index 3d56b0ce024bd..8ae22034d42f1 100644
--- a/api_docs/expression_heatmap.mdx
+++ b/api_docs/expression_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap
title: "expressionHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionHeatmap plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap']
---
import expressionHeatmapObj from './expression_heatmap.devdocs.json';
diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx
index 086410a49c2c0..f2ada2b68de5d 100644
--- a/api_docs/expression_image.mdx
+++ b/api_docs/expression_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage
title: "expressionImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionImage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage']
---
import expressionImageObj from './expression_image.devdocs.json';
diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx
index abdc1f0b6570a..ebec6f1a110e2 100644
--- a/api_docs/expression_legacy_metric_vis.mdx
+++ b/api_docs/expression_legacy_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis
title: "expressionLegacyMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionLegacyMetricVis plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis']
---
import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json';
diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx
index 5a41a189a1401..d3efbdc5592fc 100644
--- a/api_docs/expression_metric.mdx
+++ b/api_docs/expression_metric.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric
title: "expressionMetric"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetric plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric']
---
import expressionMetricObj from './expression_metric.devdocs.json';
diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx
index 952bcccd5d9c8..7d905dfd58f46 100644
--- a/api_docs/expression_metric_vis.mdx
+++ b/api_docs/expression_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis
title: "expressionMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetricVis plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis']
---
import expressionMetricVisObj from './expression_metric_vis.devdocs.json';
diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx
index 77eb892788db8..455994f5020ac 100644
--- a/api_docs/expression_partition_vis.mdx
+++ b/api_docs/expression_partition_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis
title: "expressionPartitionVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionPartitionVis plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis']
---
import expressionPartitionVisObj from './expression_partition_vis.devdocs.json';
diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx
index 1ce3d9d453422..2d08a7e56693e 100644
--- a/api_docs/expression_repeat_image.mdx
+++ b/api_docs/expression_repeat_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage
title: "expressionRepeatImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRepeatImage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage']
---
import expressionRepeatImageObj from './expression_repeat_image.devdocs.json';
diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx
index ef05d569a34c1..af37cd3d61a18 100644
--- a/api_docs/expression_reveal_image.mdx
+++ b/api_docs/expression_reveal_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage
title: "expressionRevealImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRevealImage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage']
---
import expressionRevealImageObj from './expression_reveal_image.devdocs.json';
diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx
index 392e5f380eeee..147f2a4d95a23 100644
--- a/api_docs/expression_shape.mdx
+++ b/api_docs/expression_shape.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape
title: "expressionShape"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionShape plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape']
---
import expressionShapeObj from './expression_shape.devdocs.json';
diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx
index 1b7eb81ed5ed9..69388215ac8c6 100644
--- a/api_docs/expression_tagcloud.mdx
+++ b/api_docs/expression_tagcloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud
title: "expressionTagcloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionTagcloud plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud']
---
import expressionTagcloudObj from './expression_tagcloud.devdocs.json';
diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx
index 99a97700ca557..bcd0c044979b5 100644
--- a/api_docs/expression_x_y.mdx
+++ b/api_docs/expression_x_y.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY
title: "expressionXY"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionXY plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY']
---
import expressionXYObj from './expression_x_y.devdocs.json';
diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx
index b242d12db535f..e50bbe3dbb9b9 100644
--- a/api_docs/expressions.mdx
+++ b/api_docs/expressions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions
title: "expressions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions']
---
import expressionsObj from './expressions.devdocs.json';
diff --git a/api_docs/features.mdx b/api_docs/features.mdx
index daf871dead94f..7fcf12e869f32 100644
--- a/api_docs/features.mdx
+++ b/api_docs/features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features
title: "features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the features plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features']
---
import featuresObj from './features.devdocs.json';
diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx
index 5b2cbdb30d663..1363566eec4b6 100644
--- a/api_docs/field_formats.mdx
+++ b/api_docs/field_formats.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats
title: "fieldFormats"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldFormats plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats']
---
import fieldFormatsObj from './field_formats.devdocs.json';
diff --git a/api_docs/fields_metadata.mdx b/api_docs/fields_metadata.mdx
index 6d06268b084dc..897af0987a77d 100644
--- a/api_docs/fields_metadata.mdx
+++ b/api_docs/fields_metadata.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldsMetadata
title: "fieldsMetadata"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldsMetadata plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldsMetadata']
---
import fieldsMetadataObj from './fields_metadata.devdocs.json';
diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx
index feea806dea205..84d2ad5ade54f 100644
--- a/api_docs/file_upload.mdx
+++ b/api_docs/file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload
title: "fileUpload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fileUpload plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload']
---
import fileUploadObj from './file_upload.devdocs.json';
diff --git a/api_docs/files.mdx b/api_docs/files.mdx
index 557b44e15e1e2..056251e8671d0 100644
--- a/api_docs/files.mdx
+++ b/api_docs/files.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files
title: "files"
image: https://source.unsplash.com/400x175/?github
description: API docs for the files plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files']
---
import filesObj from './files.devdocs.json';
diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx
index 6a5505b111078..00e1845910b57 100644
--- a/api_docs/files_management.mdx
+++ b/api_docs/files_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement
title: "filesManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the filesManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement']
---
import filesManagementObj from './files_management.devdocs.json';
diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json
index 9555696dadcb5..4d371badd779c 100644
--- a/api_docs/fleet.devdocs.json
+++ b/api_docs/fleet.devdocs.json
@@ -22472,7 +22472,7 @@
"signature": [
"{ monitoring: ",
"FullAgentPolicyMonitoring",
- "; download: { sourceURI: string; }; features: Record; protection?: { enabled: boolean; uninstall_token_hash: string; signing_key: string; } | undefined; } | undefined"
+ "; download: { sourceURI: string; }; features: Record; protection?: { enabled: boolean; uninstall_token_hash: string; signing_key: string; } | undefined; logging?: { level?: string | undefined; to_files?: boolean | undefined; files?: { rotateeverybytes?: number | undefined; keepfiles?: number | undefined; interval?: string | undefined; } | undefined; } | undefined; limits?: { go_max_procs?: number | undefined; } | undefined; } | undefined"
],
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
"deprecated": false,
diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx
index 8c05bab735e18..a2ff0c9e17514 100644
--- a/api_docs/fleet.mdx
+++ b/api_docs/fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet
title: "fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fleet plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet']
---
import fleetObj from './fleet.devdocs.json';
diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx
index 1f94964f70a59..0a3f583b9ab56 100644
--- a/api_docs/global_search.mdx
+++ b/api_docs/global_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch
title: "globalSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the globalSearch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch']
---
import globalSearchObj from './global_search.devdocs.json';
diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx
index 84ef5b75f9785..c7cbe48b1cb6d 100644
--- a/api_docs/guided_onboarding.mdx
+++ b/api_docs/guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding
title: "guidedOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the guidedOnboarding plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding']
---
import guidedOnboardingObj from './guided_onboarding.devdocs.json';
diff --git a/api_docs/home.mdx b/api_docs/home.mdx
index 6f6a5590e194f..5176f9087bf90 100644
--- a/api_docs/home.mdx
+++ b/api_docs/home.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home
title: "home"
image: https://source.unsplash.com/400x175/?github
description: API docs for the home plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home']
---
import homeObj from './home.devdocs.json';
diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx
index 32cb892e161c1..94f1e5af744cf 100644
--- a/api_docs/image_embeddable.mdx
+++ b/api_docs/image_embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable
title: "imageEmbeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the imageEmbeddable plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable']
---
import imageEmbeddableObj from './image_embeddable.devdocs.json';
diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx
index e6247ff39b1f6..b31b634dda0c4 100644
--- a/api_docs/index_lifecycle_management.mdx
+++ b/api_docs/index_lifecycle_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement
title: "indexLifecycleManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexLifecycleManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement']
---
import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json';
diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx
index 3b4cbec9c3e66..7740b25acbea5 100644
--- a/api_docs/index_management.mdx
+++ b/api_docs/index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement
title: "indexManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement']
---
import indexManagementObj from './index_management.devdocs.json';
diff --git a/api_docs/inference.devdocs.json b/api_docs/inference.devdocs.json
index d9b4b8cc287de..340b5e87d7f0d 100644
--- a/api_docs/inference.devdocs.json
+++ b/api_docs/inference.devdocs.json
@@ -259,14 +259,202 @@
}
],
"interfaces": [
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient",
+ "type": "Interface",
+ "tags": [],
+ "label": "BoundInferenceClient",
+ "description": [
+ "\nA version of the {@link InferenceClient} that is pre-bound to a set of parameters."
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.chatComplete",
+ "type": "Function",
+ "tags": [],
+ "label": "chatComplete",
+ "description": [
+ "\n`chatComplete` requests the LLM to generate a response to\na prompt or conversation, which might be plain text\nor a tool call, or a combination of both."
+ ],
+ "signature": [
+ " = ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ToolOptions",
+ "text": "ToolOptions"
+ },
+ ", TStream extends boolean = false>(options: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.UnboundChatCompleteOptions",
+ "text": "UnboundChatCompleteOptions"
+ },
+ ") => ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteCompositeResponse",
+ "text": "ChatCompleteCompositeResponse"
+ },
+ ""
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.chatComplete.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "{ [P in \"system\" | \"stream\" | \"messages\" | Exclude]: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteOptions",
+ "text": "ChatCompleteOptions"
+ },
+ "[P]; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/chat_complete/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.output",
+ "type": "Function",
+ "tags": [],
+ "label": "output",
+ "description": [
+ "\n`output` asks the LLM to generate a structured (JSON)\nresponse based on a schema and a prompt or conversation."
+ ],
+ "signature": [
+ "(options: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.UnboundOutputOptions",
+ "text": "UnboundOutputOptions"
+ },
+ ") => ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.OutputCompositeResponse",
+ "text": "OutputCompositeResponse"
+ },
+ ""
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.output.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "{ id: TId; input: string; schema?: TOutputSchema | undefined; system?: string | undefined; stream?: TStream | undefined; previousMessages?: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.Message",
+ "text": "Message"
+ },
+ "[] | undefined; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/output/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.getConnectorById",
+ "type": "Function",
+ "tags": [],
+ "label": "getConnectorById",
+ "description": [
+ "\n`getConnectorById` returns an inference connector by id.\nNon-inference connectors will throw an error."
+ ],
+ "signature": [
+ "(id: string) => Promise<",
+ "InferenceConnector",
+ ">"
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "inference",
+ "id": "def-server.BoundInferenceClient.getConnectorById.$1",
+ "type": "string",
+ "tags": [],
+ "label": "id",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": []
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "inference",
"id": "def-server.InferenceClient",
"type": "Interface",
"tags": [],
"label": "InferenceClient",
- "description": [],
- "path": "x-pack/plugins/inference/server/types.ts",
+ "description": [
+ "\nAn inference client, scoped to a request, that can be used to interact with LLMs."
+ ],
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
"deprecated": false,
"trackAdoption": false,
"children": [
@@ -314,7 +502,7 @@
},
""
],
- "path": "x-pack/plugins/inference/server/types.ts",
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
"deprecated": false,
"trackAdoption": false,
"returnComment": [],
@@ -383,7 +571,7 @@
},
""
],
- "path": "x-pack/plugins/inference/server/types.ts",
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
"deprecated": false,
"trackAdoption": false,
"returnComment": [],
@@ -425,7 +613,7 @@
"InferenceConnector",
">"
],
- "path": "x-pack/plugins/inference/server/types.ts",
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
"deprecated": false,
"trackAdoption": false,
"children": [
@@ -439,7 +627,7 @@
"signature": [
"string"
],
- "path": "x-pack/plugins/inference/server/types.ts",
+ "path": "x-pack/plugins/inference/server/inference_client/types.ts",
"deprecated": false,
"trackAdoption": false,
"isRequired": true
@@ -460,7 +648,9 @@
"type": "Interface",
"tags": [],
"label": "InferenceServerSetup",
- "description": [],
+ "description": [
+ "\nSetup contract of the inference plugin."
+ ],
"path": "x-pack/plugins/inference/server/types.ts",
"deprecated": false,
"trackAdoption": false,
@@ -474,7 +664,9 @@
"type": "Interface",
"tags": [],
"label": "InferenceServerStart",
- "description": [],
+ "description": [
+ "\nStart contract of the inference plugin, exposing APIs to interact with LLMs."
+ ],
"path": "x-pack/plugins/inference/server/types.ts",
"deprecated": false,
"trackAdoption": false,
@@ -486,10 +678,22 @@
"tags": [],
"label": "getClient",
"description": [
- "\nCreates an inference client, scoped to a request.\n"
+ "\nCreates an {@link InferenceClient}, scoped to a request.\n"
],
"signature": [
- "(options: InferenceClientCreateOptions) => ",
+ "(options: T) => T extends ",
+ "InferenceBoundClientCreateOptions",
+ " ? ",
+ {
+ "pluginId": "inference",
+ "scope": "server",
+ "docId": "kibInferencePluginApi",
+ "section": "def-server.BoundInferenceClient",
+ "text": "BoundInferenceClient"
+ },
+ " : ",
{
"pluginId": "inference",
"scope": "server",
@@ -505,14 +709,12 @@
{
"parentPluginId": "inference",
"id": "def-server.InferenceServerStart.getClient.$1",
- "type": "Object",
+ "type": "Uncategorized",
"tags": [],
"label": "options",
- "description": [
- "{@link InferenceClientCreateOptions }"
- ],
+ "description": [],
"signature": [
- "InferenceClientCreateOptions"
+ "T"
],
"path": "x-pack/plugins/inference/server/types.ts",
"deprecated": false,
@@ -588,7 +790,7 @@
"text": "OutputAPI"
}
],
- "path": "x-pack/plugins/inference/common/create_output_api.ts",
+ "path": "x-pack/plugins/inference/common/output/create_output_api.ts",
"deprecated": false,
"trackAdoption": false,
"children": [
@@ -608,7 +810,7 @@
"text": "ChatCompleteAPI"
}
],
- "path": "x-pack/plugins/inference/common/create_output_api.ts",
+ "path": "x-pack/plugins/inference/common/output/create_output_api.ts",
"deprecated": false,
"trackAdoption": false,
"isRequired": true
@@ -671,7 +873,7 @@
"AugmentedRequired",
" | FromToolSchemaArray | undefined; }, never> | undefined; }>"
],
- "path": "x-pack/plugins/inference/common/create_output_api.ts",
+ "path": "x-pack/plugins/inference/common/output/create_output_api.ts",
"deprecated": false,
"trackAdoption": false,
"children": [
@@ -691,7 +893,7 @@
"text": "ChatCompleteAPI"
}
],
- "path": "x-pack/plugins/inference/common/create_output_api.ts",
+ "path": "x-pack/plugins/inference/common/output/create_output_api.ts",
"deprecated": false,
"trackAdoption": false,
"isRequired": true
diff --git a/api_docs/inference.mdx b/api_docs/inference.mdx
index 3ab6b990d55e1..693737a92933a 100644
--- a/api_docs/inference.mdx
+++ b/api_docs/inference.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inference
title: "inference"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inference plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inference']
---
import inferenceObj from './inference.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 33 | 0 | 28 | 4 |
+| 40 | 0 | 29 | 6 |
## Client
diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx
index 317377eecfe1c..434a5cda36754 100644
--- a/api_docs/infra.mdx
+++ b/api_docs/infra.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra
title: "infra"
image: https://source.unsplash.com/400x175/?github
description: API docs for the infra plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra']
---
import infraObj from './infra.devdocs.json';
diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx
index f1d3271b35410..4677ef9c33bc4 100644
--- a/api_docs/ingest_pipelines.mdx
+++ b/api_docs/ingest_pipelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines
title: "ingestPipelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ingestPipelines plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines']
---
import ingestPipelinesObj from './ingest_pipelines.devdocs.json';
diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx
index 777c14bfd39ed..14ad9f019094e 100644
--- a/api_docs/inspector.mdx
+++ b/api_docs/inspector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector
title: "inspector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inspector plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector']
---
import inspectorObj from './inspector.devdocs.json';
diff --git a/api_docs/integration_assistant.mdx b/api_docs/integration_assistant.mdx
index 61f06a0864b49..a0a3b3b3bf57c 100644
--- a/api_docs/integration_assistant.mdx
+++ b/api_docs/integration_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/integrationAssistant
title: "integrationAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the integrationAssistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'integrationAssistant']
---
import integrationAssistantObj from './integration_assistant.devdocs.json';
diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx
index 7d454ed958f3d..a1cfe5c9e0faa 100644
--- a/api_docs/interactive_setup.mdx
+++ b/api_docs/interactive_setup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup
title: "interactiveSetup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the interactiveSetup plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup']
---
import interactiveSetupObj from './interactive_setup.devdocs.json';
diff --git a/api_docs/inventory.mdx b/api_docs/inventory.mdx
index ef6e77f769942..f44348c55d9ec 100644
--- a/api_docs/inventory.mdx
+++ b/api_docs/inventory.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inventory
title: "inventory"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inventory plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inventory']
---
import inventoryObj from './inventory.devdocs.json';
diff --git a/api_docs/investigate.mdx b/api_docs/investigate.mdx
index 59f2e39e61d66..43320995e8b82 100644
--- a/api_docs/investigate.mdx
+++ b/api_docs/investigate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigate
title: "investigate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the investigate plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigate']
---
import investigateObj from './investigate.devdocs.json';
diff --git a/api_docs/investigate_app.mdx b/api_docs/investigate_app.mdx
index 3851de8ff05bb..fadf5af285d77 100644
--- a/api_docs/investigate_app.mdx
+++ b/api_docs/investigate_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigateApp
title: "investigateApp"
image: https://source.unsplash.com/400x175/?github
description: API docs for the investigateApp plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigateApp']
---
import investigateAppObj from './investigate_app.devdocs.json';
diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx
index 8c72ef0f715c9..e88606afab2fb 100644
--- a/api_docs/kbn_actions_types.mdx
+++ b/api_docs/kbn_actions_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types
title: "@kbn/actions-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/actions-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types']
---
import kbnActionsTypesObj from './kbn_actions_types.devdocs.json';
diff --git a/api_docs/kbn_ai_assistant.mdx b/api_docs/kbn_ai_assistant.mdx
index eb6c931e3e473..4b57cb6114d34 100644
--- a/api_docs/kbn_ai_assistant.mdx
+++ b/api_docs/kbn_ai_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ai-assistant
title: "@kbn/ai-assistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ai-assistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ai-assistant']
---
import kbnAiAssistantObj from './kbn_ai_assistant.devdocs.json';
diff --git a/api_docs/kbn_ai_assistant_common.mdx b/api_docs/kbn_ai_assistant_common.mdx
index 036bb27eaa77d..8b82b97c84f29 100644
--- a/api_docs/kbn_ai_assistant_common.mdx
+++ b/api_docs/kbn_ai_assistant_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ai-assistant-common
title: "@kbn/ai-assistant-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ai-assistant-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ai-assistant-common']
---
import kbnAiAssistantCommonObj from './kbn_ai_assistant_common.devdocs.json';
diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx
index 4f3ba688c475d..c1209374d09a7 100644
--- a/api_docs/kbn_aiops_components.mdx
+++ b/api_docs/kbn_aiops_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components
title: "@kbn/aiops-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx
index 020eb3b0518c5..bae3ae5f9e975 100644
--- a/api_docs/kbn_aiops_log_pattern_analysis.mdx
+++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis
title: "@kbn/aiops-log-pattern-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-pattern-analysis plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis']
---
import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx
index dcf67a4049af3..3830141b97b41 100644
--- a/api_docs/kbn_aiops_log_rate_analysis.mdx
+++ b/api_docs/kbn_aiops_log_rate_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis
title: "@kbn/aiops-log-rate-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-rate-analysis plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis']
---
import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json';
diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx
index 227e03b0163c8..a5ab701dffcef 100644
--- a/api_docs/kbn_alerting_api_integration_helpers.mdx
+++ b/api_docs/kbn_alerting_api_integration_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers
title: "@kbn/alerting-api-integration-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-api-integration-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers']
---
import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json';
diff --git a/api_docs/kbn_alerting_comparators.mdx b/api_docs/kbn_alerting_comparators.mdx
index 43d95aa8ef866..0fe53b4186330 100644
--- a/api_docs/kbn_alerting_comparators.mdx
+++ b/api_docs/kbn_alerting_comparators.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-comparators
title: "@kbn/alerting-comparators"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-comparators plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-comparators']
---
import kbnAlertingComparatorsObj from './kbn_alerting_comparators.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 5f751fe12d1c3..a13b45aea607f 100644
--- a/api_docs/kbn_alerting_state_types.mdx
+++ b/api_docs/kbn_alerting_state_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types
title: "@kbn/alerting-state-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-state-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx
index b9938ed4f6e72..da59f95b0ac34 100644
--- a/api_docs/kbn_alerting_types.mdx
+++ b/api_docs/kbn_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types
title: "@kbn/alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types']
---
import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index 1f5a2b326291c..d0c972b819dc5 100644
--- a/api_docs/kbn_alerts_as_data_utils.mdx
+++ b/api_docs/kbn_alerts_as_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils
title: "@kbn/alerts-as-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-as-data-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils']
---
import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json';
diff --git a/api_docs/kbn_alerts_grouping.mdx b/api_docs/kbn_alerts_grouping.mdx
index 5d84aaa280d2d..39ca11c0b92e2 100644
--- a/api_docs/kbn_alerts_grouping.mdx
+++ b/api_docs/kbn_alerts_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-grouping
title: "@kbn/alerts-grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-grouping plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-grouping']
---
import kbnAlertsGroupingObj from './kbn_alerts_grouping.devdocs.json';
diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx
index 87e8e49d7851b..c25444ab821a8 100644
--- a/api_docs/kbn_alerts_ui_shared.mdx
+++ b/api_docs/kbn_alerts_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared
title: "@kbn/alerts-ui-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-ui-shared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared']
---
import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json';
diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx
index bdcac5329ebc1..3c4886bacd512 100644
--- a/api_docs/kbn_analytics.mdx
+++ b/api_docs/kbn_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics
title: "@kbn/analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics']
---
import kbnAnalyticsObj from './kbn_analytics.devdocs.json';
diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx
index 293d0fce0f36b..d30b66f8bf74f 100644
--- a/api_docs/kbn_analytics_collection_utils.mdx
+++ b/api_docs/kbn_analytics_collection_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils
title: "@kbn/analytics-collection-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-collection-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils']
---
import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index a0f2b0b100172..068d5cde12152 100644
--- a/api_docs/kbn_apm_config_loader.mdx
+++ b/api_docs/kbn_apm_config_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader
title: "@kbn/apm-config-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-config-loader plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader']
---
import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json';
diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx
index 09e6de0df4720..09205a4c94e47 100644
--- a/api_docs/kbn_apm_data_view.mdx
+++ b/api_docs/kbn_apm_data_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view
title: "@kbn/apm-data-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-data-view plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view']
---
import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index 884069ac587ad..fff4ace4cd87c 100644
--- a/api_docs/kbn_apm_synthtrace.mdx
+++ b/api_docs/kbn_apm_synthtrace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace
title: "@kbn/apm-synthtrace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace']
---
import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx
index 6ccf9a8e39778..44a306942353f 100644
--- a/api_docs/kbn_apm_synthtrace_client.mdx
+++ b/api_docs/kbn_apm_synthtrace_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client
title: "@kbn/apm-synthtrace-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace-client plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client']
---
import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json';
diff --git a/api_docs/kbn_apm_types.mdx b/api_docs/kbn_apm_types.mdx
index 36d82070004f1..a0971e5833930 100644
--- a/api_docs/kbn_apm_types.mdx
+++ b/api_docs/kbn_apm_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-types
title: "@kbn/apm-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-types']
---
import kbnApmTypesObj from './kbn_apm_types.devdocs.json';
diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx
index 2aac598405917..a7274999244e0 100644
--- a/api_docs/kbn_apm_utils.mdx
+++ b/api_docs/kbn_apm_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils
title: "@kbn/apm-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils']
---
import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json';
diff --git a/api_docs/kbn_avc_banner.mdx b/api_docs/kbn_avc_banner.mdx
index a0b48fa1e3282..53f1e4eb02427 100644
--- a/api_docs/kbn_avc_banner.mdx
+++ b/api_docs/kbn_avc_banner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-avc-banner
title: "@kbn/avc-banner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/avc-banner plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/avc-banner']
---
import kbnAvcBannerObj from './kbn_avc_banner.devdocs.json';
diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx
index e6f471f9656cf..9c42ea97b6127 100644
--- a/api_docs/kbn_axe_config.mdx
+++ b/api_docs/kbn_axe_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config
title: "@kbn/axe-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/axe-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx
index 4b253689aead8..9e92cbb9c1248 100644
--- a/api_docs/kbn_bfetch_error.mdx
+++ b/api_docs/kbn_bfetch_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error
title: "@kbn/bfetch-error"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/bfetch-error plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error']
---
import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json';
diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx
index d6bf4cd1acc9e..a9a384a8d0f16 100644
--- a/api_docs/kbn_calculate_auto.mdx
+++ b/api_docs/kbn_calculate_auto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto
title: "@kbn/calculate-auto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-auto plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto']
---
import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json';
diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx
index aed5ceb8c5288..ba4cdb2a073dd 100644
--- a/api_docs/kbn_calculate_width_from_char_count.mdx
+++ b/api_docs/kbn_calculate_width_from_char_count.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count
title: "@kbn/calculate-width-from-char-count"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-width-from-char-count plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count']
---
import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index c697be0daee3e..9d74090ff1722 100644
--- a/api_docs/kbn_cases_components.mdx
+++ b/api_docs/kbn_cases_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components
title: "@kbn/cases-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cases-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components']
---
import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json';
diff --git a/api_docs/kbn_cbor.mdx b/api_docs/kbn_cbor.mdx
index 659e069e44ffe..6f5cefeb79a2e 100644
--- a/api_docs/kbn_cbor.mdx
+++ b/api_docs/kbn_cbor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cbor
title: "@kbn/cbor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cbor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cbor']
---
import kbnCborObj from './kbn_cbor.devdocs.json';
diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx
index c5395e4e448ba..93e3ce21f1846 100644
--- a/api_docs/kbn_cell_actions.mdx
+++ b/api_docs/kbn_cell_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions
title: "@kbn/cell-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cell-actions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions']
---
import kbnCellActionsObj from './kbn_cell_actions.devdocs.json';
diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx
index ab41c47e44a1a..fad7b833508e8 100644
--- a/api_docs/kbn_chart_expressions_common.mdx
+++ b/api_docs/kbn_chart_expressions_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common
title: "@kbn/chart-expressions-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-expressions-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common']
---
import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json';
diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx
index cd2f0a75a1702..6561cc9d361b8 100644
--- a/api_docs/kbn_chart_icons.mdx
+++ b/api_docs/kbn_chart_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons
title: "@kbn/chart-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-icons plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons']
---
import kbnChartIconsObj from './kbn_chart_icons.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx
index 23cd6c87dbacb..c3fe33cf22c96 100644
--- a/api_docs/kbn_ci_stats_core.mdx
+++ b/api_docs/kbn_ci_stats_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core
title: "@kbn/ci-stats-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-core plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core']
---
import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx
index 268153f5a6448..83f7d6bf77fa5 100644
--- a/api_docs/kbn_ci_stats_performance_metrics.mdx
+++ b/api_docs/kbn_ci_stats_performance_metrics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics
title: "@kbn/ci-stats-performance-metrics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-performance-metrics plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics']
---
import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx
index c563d5e0d82c3..ed8f0931ce4a2 100644
--- a/api_docs/kbn_ci_stats_reporter.mdx
+++ b/api_docs/kbn_ci_stats_reporter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter
title: "@kbn/ci-stats-reporter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-reporter plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter']
---
import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json';
diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx
index ddfe1518ed531..19cca02617cc2 100644
--- a/api_docs/kbn_cli_dev_mode.mdx
+++ b/api_docs/kbn_cli_dev_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode
title: "@kbn/cli-dev-mode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cli-dev-mode plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode']
---
import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json';
diff --git a/api_docs/kbn_cloud_security_posture.mdx b/api_docs/kbn_cloud_security_posture.mdx
index 9a1278deb8f06..6814bc0874a47 100644
--- a/api_docs/kbn_cloud_security_posture.mdx
+++ b/api_docs/kbn_cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture
title: "@kbn/cloud-security-posture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cloud-security-posture plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture']
---
import kbnCloudSecurityPostureObj from './kbn_cloud_security_posture.devdocs.json';
diff --git a/api_docs/kbn_cloud_security_posture_common.mdx b/api_docs/kbn_cloud_security_posture_common.mdx
index 738d8f2113a0f..8445a51a410eb 100644
--- a/api_docs/kbn_cloud_security_posture_common.mdx
+++ b/api_docs/kbn_cloud_security_posture_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture-common
title: "@kbn/cloud-security-posture-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cloud-security-posture-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture-common']
---
import kbnCloudSecurityPostureCommonObj from './kbn_cloud_security_posture_common.devdocs.json';
diff --git a/api_docs/kbn_cloud_security_posture_graph.mdx b/api_docs/kbn_cloud_security_posture_graph.mdx
index f8e2e6ea9b863..1eaf4119c1b55 100644
--- a/api_docs/kbn_cloud_security_posture_graph.mdx
+++ b/api_docs/kbn_cloud_security_posture_graph.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture-graph
title: "@kbn/cloud-security-posture-graph"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cloud-security-posture-graph plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture-graph']
---
import kbnCloudSecurityPostureGraphObj from './kbn_cloud_security_posture_graph.devdocs.json';
diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx
index 9b24b5dbe9674..58cecb251925d 100644
--- a/api_docs/kbn_code_editor.mdx
+++ b/api_docs/kbn_code_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor
title: "@kbn/code-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx
index 13de220789e57..6ca0bf8dbbbc1 100644
--- a/api_docs/kbn_code_editor_mock.mdx
+++ b/api_docs/kbn_code_editor_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock
title: "@kbn/code-editor-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor-mock plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock']
---
import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json';
diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx
index 1621f8ee4258e..42d340f6cd3f9 100644
--- a/api_docs/kbn_code_owners.mdx
+++ b/api_docs/kbn_code_owners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners
title: "@kbn/code-owners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-owners plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners']
---
import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index 27b6847eadb68..711eacfab67ab 100644
--- a/api_docs/kbn_coloring.mdx
+++ b/api_docs/kbn_coloring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring
title: "@kbn/coloring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/coloring plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring']
---
import kbnColoringObj from './kbn_coloring.devdocs.json';
diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx
index 099b38ab4ae4d..8f3df3f7462f0 100644
--- a/api_docs/kbn_config.mdx
+++ b/api_docs/kbn_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config
title: "@kbn/config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config']
---
import kbnConfigObj from './kbn_config.devdocs.json';
diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx
index d703599c25746..59d1c6da34859 100644
--- a/api_docs/kbn_config_mocks.mdx
+++ b/api_docs/kbn_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks
title: "@kbn/config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks']
---
import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx
index f47c90480add7..f2fa523fa3a0c 100644
--- a/api_docs/kbn_config_schema.mdx
+++ b/api_docs/kbn_config_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema
title: "@kbn/config-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-schema plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema']
---
import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx
index d548eeaa11934..814ff801c7c24 100644
--- a/api_docs/kbn_content_management_content_editor.mdx
+++ b/api_docs/kbn_content_management_content_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor
title: "@kbn/content-management-content-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-editor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor']
---
import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_insights_public.mdx b/api_docs/kbn_content_management_content_insights_public.mdx
index 2b7a0159f9c94..f3c9f4ecac5aa 100644
--- a/api_docs/kbn_content_management_content_insights_public.mdx
+++ b/api_docs/kbn_content_management_content_insights_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-public
title: "@kbn/content-management-content-insights-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-insights-public plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-public']
---
import kbnContentManagementContentInsightsPublicObj from './kbn_content_management_content_insights_public.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_insights_server.mdx b/api_docs/kbn_content_management_content_insights_server.mdx
index a222ca0e4c3c5..1c66fb38c2e80 100644
--- a/api_docs/kbn_content_management_content_insights_server.mdx
+++ b/api_docs/kbn_content_management_content_insights_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-server
title: "@kbn/content-management-content-insights-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-insights-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-server']
---
import kbnContentManagementContentInsightsServerObj from './kbn_content_management_content_insights_server.devdocs.json';
diff --git a/api_docs/kbn_content_management_favorites_common.mdx b/api_docs/kbn_content_management_favorites_common.mdx
index 589cea667605c..a5276f6c00f85 100644
--- a/api_docs/kbn_content_management_favorites_common.mdx
+++ b/api_docs/kbn_content_management_favorites_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-common
title: "@kbn/content-management-favorites-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-favorites-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-common']
---
import kbnContentManagementFavoritesCommonObj from './kbn_content_management_favorites_common.devdocs.json';
diff --git a/api_docs/kbn_content_management_favorites_public.mdx b/api_docs/kbn_content_management_favorites_public.mdx
index fba473922e11b..767cc034eab3c 100644
--- a/api_docs/kbn_content_management_favorites_public.mdx
+++ b/api_docs/kbn_content_management_favorites_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-public
title: "@kbn/content-management-favorites-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-favorites-public plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-public']
---
import kbnContentManagementFavoritesPublicObj from './kbn_content_management_favorites_public.devdocs.json';
diff --git a/api_docs/kbn_content_management_favorites_server.mdx b/api_docs/kbn_content_management_favorites_server.mdx
index e35d529bb6077..d5b91e064f197 100644
--- a/api_docs/kbn_content_management_favorites_server.mdx
+++ b/api_docs/kbn_content_management_favorites_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-server
title: "@kbn/content-management-favorites-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-favorites-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-server']
---
import kbnContentManagementFavoritesServerObj from './kbn_content_management_favorites_server.devdocs.json';
diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
index 6fc52f7cda000..a2d2ac40bb15a 100644
--- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx
+++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view
title: "@kbn/content-management-tabbed-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-tabbed-table-list-view plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view']
---
import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx
index 8d62b41b446da..b7839f368adc3 100644
--- a/api_docs/kbn_content_management_table_list_view.mdx
+++ b/api_docs/kbn_content_management_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view
title: "@kbn/content-management-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view']
---
import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx
index 701a35418d8ba..e2ad4db192870 100644
--- a/api_docs/kbn_content_management_table_list_view_common.mdx
+++ b/api_docs/kbn_content_management_table_list_view_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common
title: "@kbn/content-management-table-list-view-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common']
---
import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx
index 6b75511e47a81..c800c52efe003 100644
--- a/api_docs/kbn_content_management_table_list_view_table.mdx
+++ b/api_docs/kbn_content_management_table_list_view_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table
title: "@kbn/content-management-table-list-view-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-table plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table']
---
import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json';
diff --git a/api_docs/kbn_content_management_user_profiles.mdx b/api_docs/kbn_content_management_user_profiles.mdx
index 5c0d1cc3c20e2..cecb596118f11 100644
--- a/api_docs/kbn_content_management_user_profiles.mdx
+++ b/api_docs/kbn_content_management_user_profiles.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-user-profiles
title: "@kbn/content-management-user-profiles"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-user-profiles plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-user-profiles']
---
import kbnContentManagementUserProfilesObj from './kbn_content_management_user_profiles.devdocs.json';
diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx
index d5c8f2b832e8f..3a27c89cb84df 100644
--- a/api_docs/kbn_content_management_utils.mdx
+++ b/api_docs/kbn_content_management_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils
title: "@kbn/content-management-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils']
---
import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx
index 5d888f9e8e190..33dbf26243e81 100644
--- a/api_docs/kbn_core_analytics_browser.mdx
+++ b/api_docs/kbn_core_analytics_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser
title: "@kbn/core-analytics-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser']
---
import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx
index a96d0a9c7c3fd..4e0df08f4a552 100644
--- a/api_docs/kbn_core_analytics_browser_internal.mdx
+++ b/api_docs/kbn_core_analytics_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal
title: "@kbn/core-analytics-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal']
---
import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx
index 851107dcd2afe..00ab6e68fb3a4 100644
--- a/api_docs/kbn_core_analytics_browser_mocks.mdx
+++ b/api_docs/kbn_core_analytics_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks
title: "@kbn/core-analytics-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks']
---
import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx
index 01ceab5a6db8a..e5c1e7dce6d69 100644
--- a/api_docs/kbn_core_analytics_server.mdx
+++ b/api_docs/kbn_core_analytics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server
title: "@kbn/core-analytics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server']
---
import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx
index feb8588309cab..a636655d5fd58 100644
--- a/api_docs/kbn_core_analytics_server_internal.mdx
+++ b/api_docs/kbn_core_analytics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal
title: "@kbn/core-analytics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal']
---
import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx
index 71240ddd9e509..7b9f807df8b07 100644
--- a/api_docs/kbn_core_analytics_server_mocks.mdx
+++ b/api_docs/kbn_core_analytics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks
title: "@kbn/core-analytics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks']
---
import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx
index 131ac6eb4e786..18d3a66e68d7b 100644
--- a/api_docs/kbn_core_application_browser.mdx
+++ b/api_docs/kbn_core_application_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser
title: "@kbn/core-application-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser']
---
import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx
index d78a586e3cc78..b06e0766f09e4 100644
--- a/api_docs/kbn_core_application_browser_internal.mdx
+++ b/api_docs/kbn_core_application_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal
title: "@kbn/core-application-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal']
---
import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx
index cfb15871980a3..734d25fcc09c5 100644
--- a/api_docs/kbn_core_application_browser_mocks.mdx
+++ b/api_docs/kbn_core_application_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks
title: "@kbn/core-application-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks']
---
import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx
index 59d388274d9a9..c4d027dcb7476 100644
--- a/api_docs/kbn_core_application_common.mdx
+++ b/api_docs/kbn_core_application_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common
title: "@kbn/core-application-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common']
---
import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx
index 6ddfbae409071..792c6159ebfec 100644
--- a/api_docs/kbn_core_apps_browser_internal.mdx
+++ b/api_docs/kbn_core_apps_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal
title: "@kbn/core-apps-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal']
---
import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx
index cfdfc46bcfb2d..a019633e989bb 100644
--- a/api_docs/kbn_core_apps_browser_mocks.mdx
+++ b/api_docs/kbn_core_apps_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks
title: "@kbn/core-apps-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks']
---
import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx
index 2c713a1962698..38ce361d9a1a3 100644
--- a/api_docs/kbn_core_apps_server_internal.mdx
+++ b/api_docs/kbn_core_apps_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal
title: "@kbn/core-apps-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal']
---
import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx
index 3faac6cedfd12..a216578761253 100644
--- a/api_docs/kbn_core_base_browser_mocks.mdx
+++ b/api_docs/kbn_core_base_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks
title: "@kbn/core-base-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks']
---
import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx
index 8587dc91c9f49..ed9717297365d 100644
--- a/api_docs/kbn_core_base_common.mdx
+++ b/api_docs/kbn_core_base_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common
title: "@kbn/core-base-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common']
---
import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx
index ab757cbe9310b..ae41686a880ca 100644
--- a/api_docs/kbn_core_base_server_internal.mdx
+++ b/api_docs/kbn_core_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal
title: "@kbn/core-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal']
---
import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx
index 2da05d9aba1e6..48f5caf967c3f 100644
--- a/api_docs/kbn_core_base_server_mocks.mdx
+++ b/api_docs/kbn_core_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks
title: "@kbn/core-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks']
---
import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx
index 764ecf540aa68..be1ad6aac074e 100644
--- a/api_docs/kbn_core_capabilities_browser_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks
title: "@kbn/core-capabilities-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks']
---
import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx
index 480ad43ef53ac..893b338bb862a 100644
--- a/api_docs/kbn_core_capabilities_common.mdx
+++ b/api_docs/kbn_core_capabilities_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common
title: "@kbn/core-capabilities-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common']
---
import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx
index c67d10860a5b0..3915a7ab2ec12 100644
--- a/api_docs/kbn_core_capabilities_server.mdx
+++ b/api_docs/kbn_core_capabilities_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server
title: "@kbn/core-capabilities-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server']
---
import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx
index 335a90785ceef..09cea0c1bfce0 100644
--- a/api_docs/kbn_core_capabilities_server_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks
title: "@kbn/core-capabilities-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks']
---
import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx
index 33f8241674b93..77d0746ba7e31 100644
--- a/api_docs/kbn_core_chrome_browser.mdx
+++ b/api_docs/kbn_core_chrome_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser
title: "@kbn/core-chrome-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser']
---
import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx
index d5b7e4454923a..d0f967e19697f 100644
--- a/api_docs/kbn_core_chrome_browser_mocks.mdx
+++ b/api_docs/kbn_core_chrome_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks
title: "@kbn/core-chrome-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks']
---
import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx
index 1bba607cb3f6a..75a8c1df24362 100644
--- a/api_docs/kbn_core_config_server_internal.mdx
+++ b/api_docs/kbn_core_config_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal
title: "@kbn/core-config-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-config-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal']
---
import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx
index 7c6ab7db0cbf9..5a6223efc41ab 100644
--- a/api_docs/kbn_core_custom_branding_browser.mdx
+++ b/api_docs/kbn_core_custom_branding_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser
title: "@kbn/core-custom-branding-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser']
---
import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx
index e6fe5825fbff1..5b63bb76a31a9 100644
--- a/api_docs/kbn_core_custom_branding_browser_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal
title: "@kbn/core-custom-branding-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal']
---
import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
index 247295e4e63cf..c1fcf5e3150bf 100644
--- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks
title: "@kbn/core-custom-branding-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks']
---
import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx
index 6f7f8299af051..e2afd29b2ffc7 100644
--- a/api_docs/kbn_core_custom_branding_common.mdx
+++ b/api_docs/kbn_core_custom_branding_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common
title: "@kbn/core-custom-branding-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common']
---
import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx
index e9722ceb4d94c..749b00fee24bd 100644
--- a/api_docs/kbn_core_custom_branding_server.mdx
+++ b/api_docs/kbn_core_custom_branding_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server
title: "@kbn/core-custom-branding-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server']
---
import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx
index 61e3e3c076d16..e20ba27035de4 100644
--- a/api_docs/kbn_core_custom_branding_server_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal
title: "@kbn/core-custom-branding-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal']
---
import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx
index 06b94cefce40f..9178bf4fcb1fa 100644
--- a/api_docs/kbn_core_custom_branding_server_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks
title: "@kbn/core-custom-branding-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks']
---
import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx
index 6075963642658..c52c194bc59ad 100644
--- a/api_docs/kbn_core_deprecations_browser.mdx
+++ b/api_docs/kbn_core_deprecations_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser
title: "@kbn/core-deprecations-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser']
---
import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx
index 2cbe84a62163b..79a83a3ee0e8c 100644
--- a/api_docs/kbn_core_deprecations_browser_internal.mdx
+++ b/api_docs/kbn_core_deprecations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal
title: "@kbn/core-deprecations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal']
---
import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx
index d02d7e87f5af1..1f7ba3de3d091 100644
--- a/api_docs/kbn_core_deprecations_browser_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks
title: "@kbn/core-deprecations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks']
---
import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx
index ccd03569c9621..3d3df0ed16a2c 100644
--- a/api_docs/kbn_core_deprecations_common.mdx
+++ b/api_docs/kbn_core_deprecations_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common
title: "@kbn/core-deprecations-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common']
---
import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx
index d66af619bc32b..86baf1509f00a 100644
--- a/api_docs/kbn_core_deprecations_server.mdx
+++ b/api_docs/kbn_core_deprecations_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server
title: "@kbn/core-deprecations-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server']
---
import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx
index c892400bed144..1211aa19cf3ca 100644
--- a/api_docs/kbn_core_deprecations_server_internal.mdx
+++ b/api_docs/kbn_core_deprecations_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal
title: "@kbn/core-deprecations-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal']
---
import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx
index ab7fa3db02c15..5443a1d98ba12 100644
--- a/api_docs/kbn_core_deprecations_server_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks
title: "@kbn/core-deprecations-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks']
---
import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx
index f8662c213dada..f1898b8cb94dc 100644
--- a/api_docs/kbn_core_doc_links_browser.mdx
+++ b/api_docs/kbn_core_doc_links_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser
title: "@kbn/core-doc-links-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser']
---
import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx
index ef773d4c4220e..4befedb7a3bdf 100644
--- a/api_docs/kbn_core_doc_links_browser_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks
title: "@kbn/core-doc-links-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks']
---
import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx
index 43271d559d31c..edd46788484fc 100644
--- a/api_docs/kbn_core_doc_links_server.mdx
+++ b/api_docs/kbn_core_doc_links_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server
title: "@kbn/core-doc-links-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server']
---
import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx
index eab6c0e404916..d23ee93ecce71 100644
--- a/api_docs/kbn_core_doc_links_server_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks
title: "@kbn/core-doc-links-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks']
---
import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
index 97fd26cd248ae..245d90b0a05e0 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal
title: "@kbn/core-elasticsearch-client-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal']
---
import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
index 21890bdc63317..8b6a9f5eb56eb 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks
title: "@kbn/core-elasticsearch-client-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks']
---
import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx
index 5a1083a8b7015..419baaacd3250 100644
--- a/api_docs/kbn_core_elasticsearch_server.mdx
+++ b/api_docs/kbn_core_elasticsearch_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server
title: "@kbn/core-elasticsearch-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server']
---
import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx
index e3e49a82e86b0..ab0e8c7e1b2d6 100644
--- a/api_docs/kbn_core_elasticsearch_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal
title: "@kbn/core-elasticsearch-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal']
---
import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
index 7c68ac60b26d3..e23b3af43dc27 100644
--- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks
title: "@kbn/core-elasticsearch-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks']
---
import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx
index 717dd5badeb54..9c89941edc1ec 100644
--- a/api_docs/kbn_core_environment_server_internal.mdx
+++ b/api_docs/kbn_core_environment_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal
title: "@kbn/core-environment-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal']
---
import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx
index d69b311845fdf..8bde8cb7a86a3 100644
--- a/api_docs/kbn_core_environment_server_mocks.mdx
+++ b/api_docs/kbn_core_environment_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks
title: "@kbn/core-environment-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks']
---
import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx
index 27c7b6d2b1f9b..5fc0c0638dcaf 100644
--- a/api_docs/kbn_core_execution_context_browser.mdx
+++ b/api_docs/kbn_core_execution_context_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser
title: "@kbn/core-execution-context-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser']
---
import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx
index 955a5ef82a17e..e8572966eb662 100644
--- a/api_docs/kbn_core_execution_context_browser_internal.mdx
+++ b/api_docs/kbn_core_execution_context_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal
title: "@kbn/core-execution-context-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal']
---
import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx
index 4875e794c934f..cabd0b5fdb350 100644
--- a/api_docs/kbn_core_execution_context_browser_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks
title: "@kbn/core-execution-context-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks']
---
import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx
index cbd685068f5ae..30b5d9685d0de 100644
--- a/api_docs/kbn_core_execution_context_common.mdx
+++ b/api_docs/kbn_core_execution_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common
title: "@kbn/core-execution-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common']
---
import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx
index d70801f803953..2ef585460980f 100644
--- a/api_docs/kbn_core_execution_context_server.mdx
+++ b/api_docs/kbn_core_execution_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server
title: "@kbn/core-execution-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server']
---
import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx
index f6818880972e1..40251fcfcf457 100644
--- a/api_docs/kbn_core_execution_context_server_internal.mdx
+++ b/api_docs/kbn_core_execution_context_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal
title: "@kbn/core-execution-context-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal']
---
import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx
index cfe0ddc1e1123..61da134286225 100644
--- a/api_docs/kbn_core_execution_context_server_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks
title: "@kbn/core-execution-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks']
---
import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx
index 0c3b16f486f45..0ebfe9701455f 100644
--- a/api_docs/kbn_core_fatal_errors_browser.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser
title: "@kbn/core-fatal-errors-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser']
---
import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
index 2c4f6c27ad7bc..b55004d07f7ff 100644
--- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks
title: "@kbn/core-fatal-errors-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks']
---
import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_browser.mdx b/api_docs/kbn_core_feature_flags_browser.mdx
index d464b87362d48..b938721888d72 100644
--- a/api_docs/kbn_core_feature_flags_browser.mdx
+++ b/api_docs/kbn_core_feature_flags_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser
title: "@kbn/core-feature-flags-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser']
---
import kbnCoreFeatureFlagsBrowserObj from './kbn_core_feature_flags_browser.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_browser_internal.mdx b/api_docs/kbn_core_feature_flags_browser_internal.mdx
index 76222bb9aa5cf..83d01dbe00fbc 100644
--- a/api_docs/kbn_core_feature_flags_browser_internal.mdx
+++ b/api_docs/kbn_core_feature_flags_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser-internal
title: "@kbn/core-feature-flags-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser-internal']
---
import kbnCoreFeatureFlagsBrowserInternalObj from './kbn_core_feature_flags_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_browser_mocks.mdx b/api_docs/kbn_core_feature_flags_browser_mocks.mdx
index b138984ca2f10..35f8b5a27e3cf 100644
--- a/api_docs/kbn_core_feature_flags_browser_mocks.mdx
+++ b/api_docs/kbn_core_feature_flags_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser-mocks
title: "@kbn/core-feature-flags-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser-mocks']
---
import kbnCoreFeatureFlagsBrowserMocksObj from './kbn_core_feature_flags_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server.mdx b/api_docs/kbn_core_feature_flags_server.mdx
index 4d2debdb3cef1..8cc2571be7785 100644
--- a/api_docs/kbn_core_feature_flags_server.mdx
+++ b/api_docs/kbn_core_feature_flags_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server
title: "@kbn/core-feature-flags-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server']
---
import kbnCoreFeatureFlagsServerObj from './kbn_core_feature_flags_server.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server_internal.mdx b/api_docs/kbn_core_feature_flags_server_internal.mdx
index 2726c519c2fc5..9549a883a2182 100644
--- a/api_docs/kbn_core_feature_flags_server_internal.mdx
+++ b/api_docs/kbn_core_feature_flags_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server-internal
title: "@kbn/core-feature-flags-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server-internal']
---
import kbnCoreFeatureFlagsServerInternalObj from './kbn_core_feature_flags_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server_mocks.mdx b/api_docs/kbn_core_feature_flags_server_mocks.mdx
index 8004be41a2fc7..4714c7ab736af 100644
--- a/api_docs/kbn_core_feature_flags_server_mocks.mdx
+++ b/api_docs/kbn_core_feature_flags_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server-mocks
title: "@kbn/core-feature-flags-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server-mocks']
---
import kbnCoreFeatureFlagsServerMocksObj from './kbn_core_feature_flags_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx
index 03e4f6e140b79..8b6a87f26e3c8 100644
--- a/api_docs/kbn_core_http_browser.mdx
+++ b/api_docs/kbn_core_http_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser
title: "@kbn/core-http-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser']
---
import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx
index 1c9fcaabb80c0..a8822a273e38b 100644
--- a/api_docs/kbn_core_http_browser_internal.mdx
+++ b/api_docs/kbn_core_http_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal
title: "@kbn/core-http-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal']
---
import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx
index d7fe65b261959..5ec7591293d86 100644
--- a/api_docs/kbn_core_http_browser_mocks.mdx
+++ b/api_docs/kbn_core_http_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks
title: "@kbn/core-http-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks']
---
import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx
index b65dee6aca868..ac74ca5410c5e 100644
--- a/api_docs/kbn_core_http_common.mdx
+++ b/api_docs/kbn_core_http_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common
title: "@kbn/core-http-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common']
---
import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json';
diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx
index 86a3efff281ce..2472ceb404d49 100644
--- a/api_docs/kbn_core_http_context_server_mocks.mdx
+++ b/api_docs/kbn_core_http_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks
title: "@kbn/core-http-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-context-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks']
---
import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx
index 2e82113429218..6679574695d87 100644
--- a/api_docs/kbn_core_http_request_handler_context_server.mdx
+++ b/api_docs/kbn_core_http_request_handler_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server
title: "@kbn/core-http-request-handler-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-request-handler-context-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server']
---
import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx
index f5aabce44a964..8f842b5153db2 100644
--- a/api_docs/kbn_core_http_resources_server.mdx
+++ b/api_docs/kbn_core_http_resources_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server
title: "@kbn/core-http-resources-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server']
---
import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx
index 9deed7f9b8bb3..9bf1bd85b68a7 100644
--- a/api_docs/kbn_core_http_resources_server_internal.mdx
+++ b/api_docs/kbn_core_http_resources_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal
title: "@kbn/core-http-resources-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal']
---
import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx
index 001a7f99a3c90..0055a5b096174 100644
--- a/api_docs/kbn_core_http_resources_server_mocks.mdx
+++ b/api_docs/kbn_core_http_resources_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks
title: "@kbn/core-http-resources-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks']
---
import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx
index 754504541882d..564e2f4858ab1 100644
--- a/api_docs/kbn_core_http_router_server_internal.mdx
+++ b/api_docs/kbn_core_http_router_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal
title: "@kbn/core-http-router-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal']
---
import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx
index 1fc4c544aa376..97a043092f2f3 100644
--- a/api_docs/kbn_core_http_router_server_mocks.mdx
+++ b/api_docs/kbn_core_http_router_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks
title: "@kbn/core-http-router-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks']
---
import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json
index 27e1693d09055..cf76b2a6b8cff 100644
--- a/api_docs/kbn_core_http_server.devdocs.json
+++ b/api_docs/kbn_core_http_server.devdocs.json
@@ -15312,6 +15312,10 @@
"plugin": "canvas",
"path": "x-pack/plugins/canvas/server/routes/workpad/resolve.ts"
},
+ {
+ "plugin": "canvas",
+ "path": "x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts"
+ },
{
"plugin": "canvas",
"path": "x-pack/plugins/canvas/server/routes/templates/list.ts"
@@ -16555,6 +16559,10 @@
"plugin": "securitySolution",
"path": "x-pack/plugins/security_solution/server/lib/tags/routes/create_tag.ts"
},
+ {
+ "plugin": "securitySolution",
+ "path": "x-pack/plugins/security_solution/server/lib/siem_migrations/rules/api/update.ts"
+ },
{
"plugin": "securitySolution",
"path": "x-pack/plugins/security_solution/server/lib/siem_migrations/rules/api/start.ts"
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index b19290dab4013..b6911eb416b22 100644
--- a/api_docs/kbn_core_http_server.mdx
+++ b/api_docs/kbn_core_http_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server
title: "@kbn/core-http-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server']
---
import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx
index ffbd3a920305f..84343b0fba157 100644
--- a/api_docs/kbn_core_http_server_internal.mdx
+++ b/api_docs/kbn_core_http_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal
title: "@kbn/core-http-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal']
---
import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx
index e8638dfecea80..bbd40661b1bae 100644
--- a/api_docs/kbn_core_http_server_mocks.mdx
+++ b/api_docs/kbn_core_http_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks
title: "@kbn/core-http-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks']
---
import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx
index 5a580a1b7752f..8501dd937afdf 100644
--- a/api_docs/kbn_core_i18n_browser.mdx
+++ b/api_docs/kbn_core_i18n_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser
title: "@kbn/core-i18n-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser']
---
import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx
index 9699eed30997f..6956740b17bd1 100644
--- a/api_docs/kbn_core_i18n_browser_mocks.mdx
+++ b/api_docs/kbn_core_i18n_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks
title: "@kbn/core-i18n-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks']
---
import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx
index 463371554e56d..031eb6224fcab 100644
--- a/api_docs/kbn_core_i18n_server.mdx
+++ b/api_docs/kbn_core_i18n_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server
title: "@kbn/core-i18n-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server']
---
import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx
index 23f6a924684bf..40d46f06ce72f 100644
--- a/api_docs/kbn_core_i18n_server_internal.mdx
+++ b/api_docs/kbn_core_i18n_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal
title: "@kbn/core-i18n-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal']
---
import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx
index 0ba51d7c76229..a0fe8525acb20 100644
--- a/api_docs/kbn_core_i18n_server_mocks.mdx
+++ b/api_docs/kbn_core_i18n_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks
title: "@kbn/core-i18n-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks']
---
import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
index 030bfa02b8dca..fe86a037b9e6c 100644
--- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
+++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks
title: "@kbn/core-injected-metadata-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks']
---
import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx
index a64590d21631a..16e55b81417db 100644
--- a/api_docs/kbn_core_integrations_browser_internal.mdx
+++ b/api_docs/kbn_core_integrations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal
title: "@kbn/core-integrations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal']
---
import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx
index d2942703e8d82..6757f8a435eda 100644
--- a/api_docs/kbn_core_integrations_browser_mocks.mdx
+++ b/api_docs/kbn_core_integrations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks
title: "@kbn/core-integrations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks']
---
import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx
index 376e105b7678f..17336f531dd65 100644
--- a/api_docs/kbn_core_lifecycle_browser.mdx
+++ b/api_docs/kbn_core_lifecycle_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser
title: "@kbn/core-lifecycle-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser']
---
import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
index 608522910c06b..b3438db8e9f33 100644
--- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks
title: "@kbn/core-lifecycle-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks']
---
import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx
index 07f8d4f9f3919..d7b35bee7e9ac 100644
--- a/api_docs/kbn_core_lifecycle_server.mdx
+++ b/api_docs/kbn_core_lifecycle_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server
title: "@kbn/core-lifecycle-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server']
---
import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx
index a1b9765e6faa7..78f093e8d34e1 100644
--- a/api_docs/kbn_core_lifecycle_server_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks
title: "@kbn/core-lifecycle-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks']
---
import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx
index 2b1ddfd8df74d..70689c354e86c 100644
--- a/api_docs/kbn_core_logging_browser_mocks.mdx
+++ b/api_docs/kbn_core_logging_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks
title: "@kbn/core-logging-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks']
---
import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx
index 504d43a891f8e..66054de8718ed 100644
--- a/api_docs/kbn_core_logging_common_internal.mdx
+++ b/api_docs/kbn_core_logging_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal
title: "@kbn/core-logging-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-common-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal']
---
import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx
index 6e841ef688055..ea343857484a2 100644
--- a/api_docs/kbn_core_logging_server.mdx
+++ b/api_docs/kbn_core_logging_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server
title: "@kbn/core-logging-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server']
---
import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx
index ef831e5bee874..59b4191c6703b 100644
--- a/api_docs/kbn_core_logging_server_internal.mdx
+++ b/api_docs/kbn_core_logging_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal
title: "@kbn/core-logging-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal']
---
import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx
index 05ff863b29213..b3ce5bdf99e87 100644
--- a/api_docs/kbn_core_logging_server_mocks.mdx
+++ b/api_docs/kbn_core_logging_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks
title: "@kbn/core-logging-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks']
---
import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
index 65b8292a5a923..5cef01f3a5215 100644
--- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal
title: "@kbn/core-metrics-collectors-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal']
---
import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
index b9f54c8825876..37bc841819f8a 100644
--- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks
title: "@kbn/core-metrics-collectors-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks']
---
import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx
index 234d5a161be10..64d0ed4e76e7b 100644
--- a/api_docs/kbn_core_metrics_server.mdx
+++ b/api_docs/kbn_core_metrics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server
title: "@kbn/core-metrics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server']
---
import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx
index 83feb8627232c..7955524bcd81b 100644
--- a/api_docs/kbn_core_metrics_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal
title: "@kbn/core-metrics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal']
---
import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx
index e29ad1b58d987..d5d93f0f68565 100644
--- a/api_docs/kbn_core_metrics_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks
title: "@kbn/core-metrics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks']
---
import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx
index 507a640066654..79e07da77353d 100644
--- a/api_docs/kbn_core_mount_utils_browser.mdx
+++ b/api_docs/kbn_core_mount_utils_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser
title: "@kbn/core-mount-utils-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-mount-utils-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser']
---
import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json';
diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx
index 5b0cae2ad8bc2..d56e42f9731d1 100644
--- a/api_docs/kbn_core_node_server.mdx
+++ b/api_docs/kbn_core_node_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server
title: "@kbn/core-node-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server']
---
import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx
index 16f179c77d4d1..c83e906e74a06 100644
--- a/api_docs/kbn_core_node_server_internal.mdx
+++ b/api_docs/kbn_core_node_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal
title: "@kbn/core-node-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal']
---
import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx
index 068488ed97b91..b7457037dcb7a 100644
--- a/api_docs/kbn_core_node_server_mocks.mdx
+++ b/api_docs/kbn_core_node_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks
title: "@kbn/core-node-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks']
---
import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx
index e0e46a525c7b4..62bd66c0dfdfc 100644
--- a/api_docs/kbn_core_notifications_browser.mdx
+++ b/api_docs/kbn_core_notifications_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser
title: "@kbn/core-notifications-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser']
---
import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx
index d2dec87d697e7..5f1290d46531b 100644
--- a/api_docs/kbn_core_notifications_browser_internal.mdx
+++ b/api_docs/kbn_core_notifications_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal
title: "@kbn/core-notifications-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal']
---
import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx
index 5b82eb18cbc95..e96f53f683c8e 100644
--- a/api_docs/kbn_core_notifications_browser_mocks.mdx
+++ b/api_docs/kbn_core_notifications_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks
title: "@kbn/core-notifications-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks']
---
import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx
index cddb553c267f9..f07f6ef4af5b6 100644
--- a/api_docs/kbn_core_overlays_browser.mdx
+++ b/api_docs/kbn_core_overlays_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser
title: "@kbn/core-overlays-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser']
---
import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx
index c430edb856a6d..74cb87e1f4708 100644
--- a/api_docs/kbn_core_overlays_browser_internal.mdx
+++ b/api_docs/kbn_core_overlays_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal
title: "@kbn/core-overlays-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal']
---
import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx
index 717d1d77f94b9..9b4faa1b1bde5 100644
--- a/api_docs/kbn_core_overlays_browser_mocks.mdx
+++ b/api_docs/kbn_core_overlays_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks
title: "@kbn/core-overlays-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks']
---
import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx
index 85f7ee3478640..3b1deaf2d232d 100644
--- a/api_docs/kbn_core_plugins_browser.mdx
+++ b/api_docs/kbn_core_plugins_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser
title: "@kbn/core-plugins-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser']
---
import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx
index 11976ea9766e9..80d17b1a8e5cd 100644
--- a/api_docs/kbn_core_plugins_browser_mocks.mdx
+++ b/api_docs/kbn_core_plugins_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks
title: "@kbn/core-plugins-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks']
---
import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx
index b4d05022952f8..691a5b16a7e7d 100644
--- a/api_docs/kbn_core_plugins_contracts_browser.mdx
+++ b/api_docs/kbn_core_plugins_contracts_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser
title: "@kbn/core-plugins-contracts-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser']
---
import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx
index 6dff8424326d2..a17f3a235aec3 100644
--- a/api_docs/kbn_core_plugins_contracts_server.mdx
+++ b/api_docs/kbn_core_plugins_contracts_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server
title: "@kbn/core-plugins-contracts-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server']
---
import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx
index a17c984a639d3..cd794bf378339 100644
--- a/api_docs/kbn_core_plugins_server.mdx
+++ b/api_docs/kbn_core_plugins_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server
title: "@kbn/core-plugins-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server']
---
import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx
index deef563d8cd8b..ab4a672f64d8b 100644
--- a/api_docs/kbn_core_plugins_server_mocks.mdx
+++ b/api_docs/kbn_core_plugins_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks
title: "@kbn/core-plugins-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks']
---
import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx
index 2359957a9d90f..70e81e43e282d 100644
--- a/api_docs/kbn_core_preboot_server.mdx
+++ b/api_docs/kbn_core_preboot_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server
title: "@kbn/core-preboot-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server']
---
import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx
index d4a8b82fc4fec..b9bff7d6cbefb 100644
--- a/api_docs/kbn_core_preboot_server_mocks.mdx
+++ b/api_docs/kbn_core_preboot_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks
title: "@kbn/core-preboot-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks']
---
import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_browser.mdx b/api_docs/kbn_core_rendering_browser.mdx
index be44e567beb8b..8caf430ec9a81 100644
--- a/api_docs/kbn_core_rendering_browser.mdx
+++ b/api_docs/kbn_core_rendering_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser
title: "@kbn/core-rendering-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser']
---
import kbnCoreRenderingBrowserObj from './kbn_core_rendering_browser.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx
index 5c808d3f2e298..ca4429b258734 100644
--- a/api_docs/kbn_core_rendering_browser_mocks.mdx
+++ b/api_docs/kbn_core_rendering_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks
title: "@kbn/core-rendering-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks']
---
import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx
index 52283243fb082..e1c615603ab52 100644
--- a/api_docs/kbn_core_rendering_server_internal.mdx
+++ b/api_docs/kbn_core_rendering_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal
title: "@kbn/core-rendering-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal']
---
import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx
index 99b1b5ecc312d..50e5daefa0c40 100644
--- a/api_docs/kbn_core_rendering_server_mocks.mdx
+++ b/api_docs/kbn_core_rendering_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks
title: "@kbn/core-rendering-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks']
---
import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx
index 91552b7c9ef26..4b4919ee3ee93 100644
--- a/api_docs/kbn_core_root_server_internal.mdx
+++ b/api_docs/kbn_core_root_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal
title: "@kbn/core-root-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-root-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal']
---
import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx
index 1c55050ae5fc1..8d5d29dd892b7 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_api_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser
title: "@kbn/core-saved-objects-api-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser']
---
import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json
index 7b8b82e990599..faaa627699590 100644
--- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json
@@ -2794,6 +2794,14 @@
"plugin": "canvas",
"path": "x-pack/plugins/canvas/server/routes/workpad/find.ts"
},
+ {
+ "plugin": "canvas",
+ "path": "x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts"
+ },
+ {
+ "plugin": "canvas",
+ "path": "x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts"
+ },
{
"plugin": "enterpriseSearch",
"path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts"
diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx
index adcff2d7e818a..c08852ddcb733 100644
--- a/api_docs/kbn_core_saved_objects_api_server.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server
title: "@kbn/core-saved-objects-api-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server']
---
import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
index 5b0fc1d79e298..ca000f7b5a281 100644
--- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks
title: "@kbn/core-saved-objects-api-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks']
---
import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
index 2dbab8fcc22d3..69de2ec0a0e1b 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal
title: "@kbn/core-saved-objects-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal']
---
import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
index eb38fdf1c4c2a..ca867b3ac33b2 100644
--- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks
title: "@kbn/core-saved-objects-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks']
---
import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx
index 848a4a2623fe9..eaa9266d245b1 100644
--- a/api_docs/kbn_core_saved_objects_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser
title: "@kbn/core-saved-objects-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser']
---
import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx
index 075abb20ed09a..e677e9ed28a73 100644
--- a/api_docs/kbn_core_saved_objects_browser_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal
title: "@kbn/core-saved-objects-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal']
---
import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
index 5b6b6f7959b4c..537e840488e83 100644
--- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks
title: "@kbn/core-saved-objects-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks']
---
import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx
index 9db14d2c5d651..98fdf691571fe 100644
--- a/api_docs/kbn_core_saved_objects_common.mdx
+++ b/api_docs/kbn_core_saved_objects_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common
title: "@kbn/core-saved-objects-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common']
---
import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
index 3978e0dacfd9b..212b678b0b904 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal
title: "@kbn/core-saved-objects-import-export-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal']
---
import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
index 3fc4f0a340724..629fca1802abe 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks
title: "@kbn/core-saved-objects-import-export-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks']
---
import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
index 53c6dc20499c3..918b4a870f907 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal
title: "@kbn/core-saved-objects-migration-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal']
---
import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
index 64036f18a430a..da1974d54ea97 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks
title: "@kbn/core-saved-objects-migration-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks']
---
import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json
index 92271de1c5c74..8bf437c26eadb 100644
--- a/api_docs/kbn_core_saved_objects_server.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_server.devdocs.json
@@ -6323,6 +6323,14 @@
"plugin": "canvas",
"path": "x-pack/plugins/canvas/server/routes/workpad/find.ts"
},
+ {
+ "plugin": "canvas",
+ "path": "x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts"
+ },
+ {
+ "plugin": "canvas",
+ "path": "x-pack/plugins/canvas/server/routes/workpad/has_workpads.ts"
+ },
{
"plugin": "enterpriseSearch",
"path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts"
diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx
index 57597abfabd63..b2facf379bd1a 100644
--- a/api_docs/kbn_core_saved_objects_server.mdx
+++ b/api_docs/kbn_core_saved_objects_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server
title: "@kbn/core-saved-objects-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server']
---
import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx
index 39adf47b294e2..a13c5cb56682d 100644
--- a/api_docs/kbn_core_saved_objects_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal
title: "@kbn/core-saved-objects-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal']
---
import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx
index 73b8eaa156449..443925713277d 100644
--- a/api_docs/kbn_core_saved_objects_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks
title: "@kbn/core-saved-objects-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks']
---
import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx
index 68052c1787dd6..430f4aff4b0ce 100644
--- a/api_docs/kbn_core_saved_objects_utils_server.mdx
+++ b/api_docs/kbn_core_saved_objects_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server
title: "@kbn/core-saved-objects-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-utils-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server']
---
import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx
index d3038a2b01719..202cfa1dcefad 100644
--- a/api_docs/kbn_core_security_browser.mdx
+++ b/api_docs/kbn_core_security_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser
title: "@kbn/core-security-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser']
---
import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx
index 6f52f8c24d48f..ab1673604e7f1 100644
--- a/api_docs/kbn_core_security_browser_internal.mdx
+++ b/api_docs/kbn_core_security_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal
title: "@kbn/core-security-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal']
---
import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx
index bf1175488fce9..85277110a1d86 100644
--- a/api_docs/kbn_core_security_browser_mocks.mdx
+++ b/api_docs/kbn_core_security_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks
title: "@kbn/core-security-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks']
---
import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx
index 64c7d24101cd5..265849d601e61 100644
--- a/api_docs/kbn_core_security_common.mdx
+++ b/api_docs/kbn_core_security_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common
title: "@kbn/core-security-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common']
---
import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json';
diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx
index 54946eb185425..52a48cb9c1ab0 100644
--- a/api_docs/kbn_core_security_server.mdx
+++ b/api_docs/kbn_core_security_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server
title: "@kbn/core-security-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server']
---
import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx
index f9c11ea068a0c..067dce23af60b 100644
--- a/api_docs/kbn_core_security_server_internal.mdx
+++ b/api_docs/kbn_core_security_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal
title: "@kbn/core-security-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal']
---
import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx
index a99ba26c3627e..dd3a32801f675 100644
--- a/api_docs/kbn_core_security_server_mocks.mdx
+++ b/api_docs/kbn_core_security_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks
title: "@kbn/core-security-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks']
---
import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx
index 7340858190592..1e8704f97c9af 100644
--- a/api_docs/kbn_core_status_common.mdx
+++ b/api_docs/kbn_core_status_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common
title: "@kbn/core-status-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common']
---
import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json';
diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx
index 53daf61b42bac..93f682b536a30 100644
--- a/api_docs/kbn_core_status_server.mdx
+++ b/api_docs/kbn_core_status_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server
title: "@kbn/core-status-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server']
---
import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx
index 7a247df20e09e..6ac064c1b2280 100644
--- a/api_docs/kbn_core_status_server_internal.mdx
+++ b/api_docs/kbn_core_status_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal
title: "@kbn/core-status-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal']
---
import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx
index 7bc3949307bbd..8a91fa37f60c5 100644
--- a/api_docs/kbn_core_status_server_mocks.mdx
+++ b/api_docs/kbn_core_status_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks
title: "@kbn/core-status-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks']
---
import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
index 066cc40fdf6a9..1d5ccec0ca130 100644
--- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
+++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters
title: "@kbn/core-test-helpers-deprecations-getters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters']
---
import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
index 6e663b8708c59..68b1ac53623de 100644
--- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
+++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser
title: "@kbn/core-test-helpers-http-setup-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser']
---
import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx
index c237d30b1f3ab..3061bd5eb1de0 100644
--- a/api_docs/kbn_core_test_helpers_kbn_server.mdx
+++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server
title: "@kbn/core-test-helpers-kbn-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-kbn-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server']
---
import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx
index f4e1a55857cb9..b0fd535727e41 100644
--- a/api_docs/kbn_core_test_helpers_model_versions.mdx
+++ b/api_docs/kbn_core_test_helpers_model_versions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions
title: "@kbn/core-test-helpers-model-versions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-model-versions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions']
---
import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
index 849829d2f439a..42d1c703b4ed5 100644
--- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
+++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer
title: "@kbn/core-test-helpers-so-type-serializer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer']
---
import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx
index 639c781bd03e7..16919bfde35bd 100644
--- a/api_docs/kbn_core_test_helpers_test_utils.mdx
+++ b/api_docs/kbn_core_test_helpers_test_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils
title: "@kbn/core-test-helpers-test-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-test-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils']
---
import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx
index 86cb763dab384..5b1abc56b7138 100644
--- a/api_docs/kbn_core_theme_browser.mdx
+++ b/api_docs/kbn_core_theme_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser
title: "@kbn/core-theme-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser']
---
import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx
index bf65c5d90f232..59e6097cbac61 100644
--- a/api_docs/kbn_core_theme_browser_mocks.mdx
+++ b/api_docs/kbn_core_theme_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks
title: "@kbn/core-theme-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks']
---
import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx
index 726a7116acca3..0b300cb2498bf 100644
--- a/api_docs/kbn_core_ui_settings_browser.mdx
+++ b/api_docs/kbn_core_ui_settings_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser
title: "@kbn/core-ui-settings-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser']
---
import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx
index aaf620243877e..5b6cfb7966701 100644
--- a/api_docs/kbn_core_ui_settings_browser_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal
title: "@kbn/core-ui-settings-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal']
---
import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
index 5ea1a68368ee7..082fde2ba5c2d 100644
--- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks
title: "@kbn/core-ui-settings-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks']
---
import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx
index 118c3d81e60ff..a21ecc8ae4f4c 100644
--- a/api_docs/kbn_core_ui_settings_common.mdx
+++ b/api_docs/kbn_core_ui_settings_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common
title: "@kbn/core-ui-settings-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common']
---
import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx
index cd959d56be016..a5acd794c0e83 100644
--- a/api_docs/kbn_core_ui_settings_server.mdx
+++ b/api_docs/kbn_core_ui_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server
title: "@kbn/core-ui-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server']
---
import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx
index 4b561f0cfcbd2..ec1c4c7ce0014 100644
--- a/api_docs/kbn_core_ui_settings_server_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal
title: "@kbn/core-ui-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal']
---
import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx
index 6bf6fa18efea6..7d05f2067550b 100644
--- a/api_docs/kbn_core_ui_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks
title: "@kbn/core-ui-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks']
---
import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx
index 03bb11bc217fb..2a51f0d726a77 100644
--- a/api_docs/kbn_core_usage_data_server.mdx
+++ b/api_docs/kbn_core_usage_data_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server
title: "@kbn/core-usage-data-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server']
---
import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx
index 920328b720cbc..0821f72eacf78 100644
--- a/api_docs/kbn_core_usage_data_server_internal.mdx
+++ b/api_docs/kbn_core_usage_data_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal
title: "@kbn/core-usage-data-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal']
---
import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx
index f72ad53aa6af7..08dfdbdfb053a 100644
--- a/api_docs/kbn_core_usage_data_server_mocks.mdx
+++ b/api_docs/kbn_core_usage_data_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks
title: "@kbn/core-usage-data-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks']
---
import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx
index 09278f132b22b..5c4b3251ca760 100644
--- a/api_docs/kbn_core_user_profile_browser.mdx
+++ b/api_docs/kbn_core_user_profile_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser
title: "@kbn/core-user-profile-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser']
---
import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx
index 765814694a955..59eb0f991cfba 100644
--- a/api_docs/kbn_core_user_profile_browser_internal.mdx
+++ b/api_docs/kbn_core_user_profile_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal
title: "@kbn/core-user-profile-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal']
---
import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx
index 42a3edb63f928..e29c351102dfa 100644
--- a/api_docs/kbn_core_user_profile_browser_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks
title: "@kbn/core-user-profile-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks']
---
import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx
index 5db08a5f9dd12..5b3ca6c5d07dc 100644
--- a/api_docs/kbn_core_user_profile_common.mdx
+++ b/api_docs/kbn_core_user_profile_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-common
title: "@kbn/core-user-profile-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common']
---
import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx
index 28ce358edf96e..a107b7e5e0f4c 100644
--- a/api_docs/kbn_core_user_profile_server.mdx
+++ b/api_docs/kbn_core_user_profile_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server
title: "@kbn/core-user-profile-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server']
---
import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx
index d5705c5d1bd28..0183eac713b86 100644
--- a/api_docs/kbn_core_user_profile_server_internal.mdx
+++ b/api_docs/kbn_core_user_profile_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal
title: "@kbn/core-user-profile-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-internal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal']
---
import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx
index 75960cff764e3..655b94d61cf73 100644
--- a/api_docs/kbn_core_user_profile_server_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks
title: "@kbn/core-user-profile-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks']
---
import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx
index 296f21f09ff6c..23b74612c4fac 100644
--- a/api_docs/kbn_core_user_settings_server.mdx
+++ b/api_docs/kbn_core_user_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server
title: "@kbn/core-user-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server']
---
import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx
index c211fe7acde27..b6567c6ddc414 100644
--- a/api_docs/kbn_core_user_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_user_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks
title: "@kbn/core-user-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks']
---
import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx
index c7121ee5ea5a2..4b396dbf873ce 100644
--- a/api_docs/kbn_crypto.mdx
+++ b/api_docs/kbn_crypto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto
title: "@kbn/crypto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto']
---
import kbnCryptoObj from './kbn_crypto.devdocs.json';
diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx
index a6ced6ad2cfd8..fdd7f650a3c95 100644
--- a/api_docs/kbn_crypto_browser.mdx
+++ b/api_docs/kbn_crypto_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser
title: "@kbn/crypto-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser']
---
import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json';
diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx
index dd6d173164c86..f6251d4e83abd 100644
--- a/api_docs/kbn_custom_icons.mdx
+++ b/api_docs/kbn_custom_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons
title: "@kbn/custom-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-icons plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons']
---
import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json';
diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx
index 651df6d85da7e..e708acd376a26 100644
--- a/api_docs/kbn_custom_integrations.mdx
+++ b/api_docs/kbn_custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations
title: "@kbn/custom-integrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-integrations plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations']
---
import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json';
diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx
index ea59678ff35e1..3de801a91cb83 100644
--- a/api_docs/kbn_cypress_config.mdx
+++ b/api_docs/kbn_cypress_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config
title: "@kbn/cypress-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cypress-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx
index 6334bb3307308..92dce2fcba973 100644
--- a/api_docs/kbn_data_forge.mdx
+++ b/api_docs/kbn_data_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge
title: "@kbn/data-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-forge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge']
---
import kbnDataForgeObj from './kbn_data_forge.devdocs.json';
diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx
index 3e058dd352fc2..3fbe60ca6ec4b 100644
--- a/api_docs/kbn_data_service.mdx
+++ b/api_docs/kbn_data_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service
title: "@kbn/data-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-service plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service']
---
import kbnDataServiceObj from './kbn_data_service.devdocs.json';
diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx
index 1f0fc72d10e45..2b3b912ce43ed 100644
--- a/api_docs/kbn_data_stream_adapter.mdx
+++ b/api_docs/kbn_data_stream_adapter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter
title: "@kbn/data-stream-adapter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-stream-adapter plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter']
---
import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json';
diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx
index a9fcac0474ad6..8cff157633d4b 100644
--- a/api_docs/kbn_data_view_utils.mdx
+++ b/api_docs/kbn_data_view_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils
title: "@kbn/data-view-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-view-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils']
---
import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index 5b8803459ee2f..424e2950558cf 100644
--- a/api_docs/kbn_datemath.mdx
+++ b/api_docs/kbn_datemath.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath
title: "@kbn/datemath"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/datemath plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath']
---
import kbnDatemathObj from './kbn_datemath.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx
index 982612308ee91..2b741853d1f89 100644
--- a/api_docs/kbn_deeplinks_analytics.mdx
+++ b/api_docs/kbn_deeplinks_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics
title: "@kbn/deeplinks-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-analytics plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics']
---
import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx
index 63fab2fdd13c1..7a5784f637af3 100644
--- a/api_docs/kbn_deeplinks_devtools.mdx
+++ b/api_docs/kbn_deeplinks_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools
title: "@kbn/deeplinks-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-devtools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools']
---
import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx
index 8d08df96a8236..db2db572a3e94 100644
--- a/api_docs/kbn_deeplinks_fleet.mdx
+++ b/api_docs/kbn_deeplinks_fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet
title: "@kbn/deeplinks-fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-fleet plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet']
---
import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx
index 4a3f2b0d3fdf8..b7620feb08325 100644
--- a/api_docs/kbn_deeplinks_management.mdx
+++ b/api_docs/kbn_deeplinks_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management
title: "@kbn/deeplinks-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-management plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management']
---
import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx
index 4cd8adbf65152..8c2c3e2becd98 100644
--- a/api_docs/kbn_deeplinks_ml.mdx
+++ b/api_docs/kbn_deeplinks_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml
title: "@kbn/deeplinks-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-ml plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml']
---
import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx
index efa0771127fd9..89ba7309fb8fa 100644
--- a/api_docs/kbn_deeplinks_observability.mdx
+++ b/api_docs/kbn_deeplinks_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability
title: "@kbn/deeplinks-observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-observability plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability']
---
import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx
index 8392d67a8cf40..f546d2581b3ae 100644
--- a/api_docs/kbn_deeplinks_search.mdx
+++ b/api_docs/kbn_deeplinks_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search
title: "@kbn/deeplinks-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-search plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search']
---
import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx
index c28689575870f..7a54ce4541cc4 100644
--- a/api_docs/kbn_deeplinks_security.mdx
+++ b/api_docs/kbn_deeplinks_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security
title: "@kbn/deeplinks-security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-security plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security']
---
import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx
index ce2dcade76b07..6ca2a59154a78 100644
--- a/api_docs/kbn_deeplinks_shared.mdx
+++ b/api_docs/kbn_deeplinks_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared
title: "@kbn/deeplinks-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-shared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared']
---
import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json';
diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx
index f5966c381d01a..848607ba7f201 100644
--- a/api_docs/kbn_default_nav_analytics.mdx
+++ b/api_docs/kbn_default_nav_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics
title: "@kbn/default-nav-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-analytics plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics']
---
import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json';
diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx
index 29f1cd5c163e3..3c923b576c3c7 100644
--- a/api_docs/kbn_default_nav_devtools.mdx
+++ b/api_docs/kbn_default_nav_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools
title: "@kbn/default-nav-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-devtools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools']
---
import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json';
diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx
index a0c1f75a2f3c2..cf4d19a539f2f 100644
--- a/api_docs/kbn_default_nav_management.mdx
+++ b/api_docs/kbn_default_nav_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management
title: "@kbn/default-nav-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-management plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management']
---
import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json';
diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx
index 224dcbe358020..48e817d1241f7 100644
--- a/api_docs/kbn_default_nav_ml.mdx
+++ b/api_docs/kbn_default_nav_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml
title: "@kbn/default-nav-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-ml plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml']
---
import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx
index 40cacdd38e6c8..2ede4ab5841bf 100644
--- a/api_docs/kbn_dev_cli_errors.mdx
+++ b/api_docs/kbn_dev_cli_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors
title: "@kbn/dev-cli-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-errors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors']
---
import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx
index 42ae2ff322487..03a0fac60154e 100644
--- a/api_docs/kbn_dev_cli_runner.mdx
+++ b/api_docs/kbn_dev_cli_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner
title: "@kbn/dev-cli-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-runner plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner']
---
import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx
index 67734f03761f8..a3c683c74ac15 100644
--- a/api_docs/kbn_dev_proc_runner.mdx
+++ b/api_docs/kbn_dev_proc_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner
title: "@kbn/dev-proc-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-proc-runner plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner']
---
import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx
index ee11b1b18c77a..7d82809b67ba9 100644
--- a/api_docs/kbn_dev_utils.mdx
+++ b/api_docs/kbn_dev_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils
title: "@kbn/dev-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils']
---
import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json';
diff --git a/api_docs/kbn_discover_contextual_components.mdx b/api_docs/kbn_discover_contextual_components.mdx
index 0d9311452a639..afe0da2abfc59 100644
--- a/api_docs/kbn_discover_contextual_components.mdx
+++ b/api_docs/kbn_discover_contextual_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-contextual-components
title: "@kbn/discover-contextual-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/discover-contextual-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-contextual-components']
---
import kbnDiscoverContextualComponentsObj from './kbn_discover_contextual_components.devdocs.json';
diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx
index be69a2c77a826..19e5cecb19319 100644
--- a/api_docs/kbn_discover_utils.mdx
+++ b/api_docs/kbn_discover_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils
title: "@kbn/discover-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/discover-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils']
---
import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json';
diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx
index c6eea288ed765..ac10ce3fbf68f 100644
--- a/api_docs/kbn_doc_links.mdx
+++ b/api_docs/kbn_doc_links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links
title: "@kbn/doc-links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/doc-links plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links']
---
import kbnDocLinksObj from './kbn_doc_links.devdocs.json';
diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx
index 7e30f6999c6f5..745a275f08563 100644
--- a/api_docs/kbn_docs_utils.mdx
+++ b/api_docs/kbn_docs_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils
title: "@kbn/docs-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/docs-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils']
---
import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json';
diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx
index 90bbbb257363a..54398f78c1fe7 100644
--- a/api_docs/kbn_dom_drag_drop.mdx
+++ b/api_docs/kbn_dom_drag_drop.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop
title: "@kbn/dom-drag-drop"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dom-drag-drop plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop']
---
import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json';
diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx
index eae977529a6ce..6ea50719d6ccd 100644
--- a/api_docs/kbn_ebt_tools.mdx
+++ b/api_docs/kbn_ebt_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools
title: "@kbn/ebt-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ebt-tools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index fbadad649a509..36f88465cb20a 100644
--- a/api_docs/kbn_ecs_data_quality_dashboard.mdx
+++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard
title: "@kbn/ecs-data-quality-dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs-data-quality-dashboard plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard']
---
import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx
index d30d33d745650..096a503eea7ed 100644
--- a/api_docs/kbn_elastic_agent_utils.mdx
+++ b/api_docs/kbn_elastic_agent_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils
title: "@kbn/elastic-agent-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-agent-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils']
---
import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx
index d44431dc307ea..bba93d768f08e 100644
--- a/api_docs/kbn_elastic_assistant.mdx
+++ b/api_docs/kbn_elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant
title: "@kbn/elastic-assistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant']
---
import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant_common.devdocs.json b/api_docs/kbn_elastic_assistant_common.devdocs.json
index 6be43d70e741b..a864611adb34f 100644
--- a/api_docs/kbn_elastic_assistant_common.devdocs.json
+++ b/api_docs/kbn_elastic_assistant_common.devdocs.json
@@ -1368,7 +1368,7 @@
"label": "ChatCompleteProps",
"description": [],
"signature": [
- "{ connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
+ "{ connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
],
"path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/chat/post_chat_complete_route.gen.ts",
"deprecated": false,
@@ -1383,7 +1383,7 @@
"label": "ChatCompleteRequestBody",
"description": [],
"signature": [
- "{ connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
+ "{ connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
],
"path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/chat/post_chat_complete_route.gen.ts",
"deprecated": false,
@@ -1398,7 +1398,7 @@
"label": "ChatCompleteRequestBodyInput",
"description": [],
"signature": [
- "{ connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
+ "{ connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }"
],
"path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/chat/post_chat_complete_route.gen.ts",
"deprecated": false,
@@ -4667,7 +4667,7 @@
"label": "ChatCompleteProps",
"description": [],
"signature": [
- "Zod.ZodObject<{ conversationId: Zod.ZodOptional; promptId: Zod.ZodOptional; isStream: Zod.ZodOptional; responseLanguage: Zod.ZodOptional; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; connectorId: Zod.ZodString; model: Zod.ZodOptional; persist: Zod.ZodBoolean; messages: Zod.ZodArray; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; data: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; fields_to_anonymize: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }, { connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }>"
+ "Zod.ZodObject<{ conversationId: Zod.ZodOptional; promptId: Zod.ZodOptional; isStream: Zod.ZodOptional; responseLanguage: Zod.ZodOptional; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; connectorId: Zod.ZodString; model: Zod.ZodOptional; persist: Zod.ZodBoolean; messages: Zod.ZodArray; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; data: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; fields_to_anonymize: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }, { connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }>"
],
"path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/chat/post_chat_complete_route.gen.ts",
"deprecated": false,
@@ -4682,7 +4682,7 @@
"label": "ChatCompleteRequestBody",
"description": [],
"signature": [
- "Zod.ZodObject<{ conversationId: Zod.ZodOptional; promptId: Zod.ZodOptional; isStream: Zod.ZodOptional; responseLanguage: Zod.ZodOptional; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; connectorId: Zod.ZodString; model: Zod.ZodOptional; persist: Zod.ZodBoolean; messages: Zod.ZodArray; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; data: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; fields_to_anonymize: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }, { connectorId: string; persist: boolean; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }>"
+ "Zod.ZodObject<{ conversationId: Zod.ZodOptional; promptId: Zod.ZodOptional; isStream: Zod.ZodOptional; responseLanguage: Zod.ZodOptional; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; connectorId: Zod.ZodString; model: Zod.ZodOptional; persist: Zod.ZodBoolean; messages: Zod.ZodArray; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; data: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; fields_to_anonymize: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }, { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }, { connectorId: string; messages: { role: \"user\" | \"system\" | \"assistant\"; data?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; content?: string | undefined; fields_to_anonymize?: string[] | undefined; }[]; persist: boolean; conversationId?: string | undefined; model?: string | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; promptId?: string | undefined; isStream?: boolean | undefined; responseLanguage?: string | undefined; }>"
],
"path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/chat/post_chat_complete_route.gen.ts",
"deprecated": false,
diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx
index 2eb10acbb3345..e54aa2aed59a9 100644
--- a/api_docs/kbn_elastic_assistant_common.mdx
+++ b/api_docs/kbn_elastic_assistant_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common
title: "@kbn/elastic-assistant-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common']
---
import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json';
diff --git a/api_docs/kbn_entities_schema.mdx b/api_docs/kbn_entities_schema.mdx
index 3a516c4232743..21863e3fbdad3 100644
--- a/api_docs/kbn_entities_schema.mdx
+++ b/api_docs/kbn_entities_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-entities-schema
title: "@kbn/entities-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/entities-schema plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/entities-schema']
---
import kbnEntitiesSchemaObj from './kbn_entities_schema.devdocs.json';
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index cb66f2174f498..428ae051c999e 100644
--- a/api_docs/kbn_es.mdx
+++ b/api_docs/kbn_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es
title: "@kbn/es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es']
---
import kbnEsObj from './kbn_es.devdocs.json';
diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx
index a2b17af0a9525..26920afd57cd2 100644
--- a/api_docs/kbn_es_archiver.mdx
+++ b/api_docs/kbn_es_archiver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver
title: "@kbn/es-archiver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-archiver plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver']
---
import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json';
diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx
index b6748859b82b5..d9e7dba22f2ff 100644
--- a/api_docs/kbn_es_errors.mdx
+++ b/api_docs/kbn_es_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors
title: "@kbn/es-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-errors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors']
---
import kbnEsErrorsObj from './kbn_es_errors.devdocs.json';
diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx
index 06f8fb413b893..bbad835c8af4e 100644
--- a/api_docs/kbn_es_query.mdx
+++ b/api_docs/kbn_es_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query
title: "@kbn/es-query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-query plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query']
---
import kbnEsQueryObj from './kbn_es_query.devdocs.json';
diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx
index 98658aed0aa9f..a636172e3c6de 100644
--- a/api_docs/kbn_es_types.mdx
+++ b/api_docs/kbn_es_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types
title: "@kbn/es-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types']
---
import kbnEsTypesObj from './kbn_es_types.devdocs.json';
diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx
index 330b361684807..62a042e1c2eb0 100644
--- a/api_docs/kbn_eslint_plugin_imports.mdx
+++ b/api_docs/kbn_eslint_plugin_imports.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports
title: "@kbn/eslint-plugin-imports"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/eslint-plugin-imports plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx
index 4e12cf344f38b..480bce3dcb81f 100644
--- a/api_docs/kbn_esql_ast.mdx
+++ b/api_docs/kbn_esql_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast
title: "@kbn/esql-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-ast plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast']
---
import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json';
diff --git a/api_docs/kbn_esql_editor.mdx b/api_docs/kbn_esql_editor.mdx
index 56f7c2d8f3958..e5e268bc2a4a0 100644
--- a/api_docs/kbn_esql_editor.mdx
+++ b/api_docs/kbn_esql_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-editor
title: "@kbn/esql-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-editor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-editor']
---
import kbnEsqlEditorObj from './kbn_esql_editor.devdocs.json';
diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx
index cbac737ae7727..615db65785e48 100644
--- a/api_docs/kbn_esql_utils.mdx
+++ b/api_docs/kbn_esql_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils
title: "@kbn/esql-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils']
---
import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json';
diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx
index 33222f1b5a733..07b05bda29849 100644
--- a/api_docs/kbn_esql_validation_autocomplete.mdx
+++ b/api_docs/kbn_esql_validation_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete
title: "@kbn/esql-validation-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-validation-autocomplete plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete']
---
import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx
index 9307e9ac693d8..3579f9116d9b5 100644
--- a/api_docs/kbn_event_annotation_common.mdx
+++ b/api_docs/kbn_event_annotation_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common
title: "@kbn/event-annotation-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common']
---
import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx
index 97fa68efa5d99..1e2557d1c7773 100644
--- a/api_docs/kbn_event_annotation_components.mdx
+++ b/api_docs/kbn_event_annotation_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components
title: "@kbn/event-annotation-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components']
---
import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json';
diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx
index 45dc870d037b5..c23769ac87a59 100644
--- a/api_docs/kbn_expandable_flyout.mdx
+++ b/api_docs/kbn_expandable_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout
title: "@kbn/expandable-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/expandable-flyout plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout']
---
import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json';
diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx
index b8ae3fd0355ea..1a216d7e602d3 100644
--- a/api_docs/kbn_field_types.mdx
+++ b/api_docs/kbn_field_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types
title: "@kbn/field-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types']
---
import kbnFieldTypesObj from './kbn_field_types.devdocs.json';
diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx
index 2320515a141a8..3a30a732e3b2b 100644
--- a/api_docs/kbn_field_utils.mdx
+++ b/api_docs/kbn_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils
title: "@kbn/field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils']
---
import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json';
diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx
index 2e2a4054aa8bc..92b5688546ae8 100644
--- a/api_docs/kbn_find_used_node_modules.mdx
+++ b/api_docs/kbn_find_used_node_modules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules
title: "@kbn/find-used-node-modules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/find-used-node-modules plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules']
---
import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json';
diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx
index baf66dbd08641..760de78ed15b1 100644
--- a/api_docs/kbn_formatters.mdx
+++ b/api_docs/kbn_formatters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters
title: "@kbn/formatters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/formatters plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters']
---
import kbnFormattersObj from './kbn_formatters.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index 58fa9a6cc4b03..403976ff613b8 100644
--- a/api_docs/kbn_ftr_common_functional_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services
title: "@kbn/ftr-common-functional-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-services plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services']
---
import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx
index 8300d67a4cb5e..2b32b9a4fd6cd 100644
--- a/api_docs/kbn_ftr_common_functional_ui_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services
title: "@kbn/ftr-common-functional-ui-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-ui-services plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services']
---
import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index 66277e39c239a..ef47a15a44147 100644
--- a/api_docs/kbn_generate.mdx
+++ b/api_docs/kbn_generate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate
title: "@kbn/generate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate']
---
import kbnGenerateObj from './kbn_generate.devdocs.json';
diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx
index 623e0b9ad022f..fda3a0f63a5e4 100644
--- a/api_docs/kbn_generate_console_definitions.mdx
+++ b/api_docs/kbn_generate_console_definitions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions
title: "@kbn/generate-console-definitions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-console-definitions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions']
---
import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json';
diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx
index 09d1275b52661..6a2cbb6d34707 100644
--- a/api_docs/kbn_generate_csv.mdx
+++ b/api_docs/kbn_generate_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv
title: "@kbn/generate-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_grid_layout.mdx b/api_docs/kbn_grid_layout.mdx
index f58b0d99a3c40..7d83ffe837d15 100644
--- a/api_docs/kbn_grid_layout.mdx
+++ b/api_docs/kbn_grid_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grid-layout
title: "@kbn/grid-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/grid-layout plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grid-layout']
---
import kbnGridLayoutObj from './kbn_grid_layout.devdocs.json';
diff --git a/api_docs/kbn_grouping.mdx b/api_docs/kbn_grouping.mdx
index 5003cf263d6eb..8615df90c789e 100644
--- a/api_docs/kbn_grouping.mdx
+++ b/api_docs/kbn_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grouping
title: "@kbn/grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/grouping plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grouping']
---
import kbnGroupingObj from './kbn_grouping.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index 1c175a0b39b32..79ff6cc4c0b70 100644
--- a/api_docs/kbn_guided_onboarding.mdx
+++ b/api_docs/kbn_guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding
title: "@kbn/guided-onboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/guided-onboarding plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding']
---
import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json';
diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx
index 0ee879ab073c2..10f5568826075 100644
--- a/api_docs/kbn_handlebars.mdx
+++ b/api_docs/kbn_handlebars.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars
title: "@kbn/handlebars"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/handlebars plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars']
---
import kbnHandlebarsObj from './kbn_handlebars.devdocs.json';
diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx
index 2ca7941beeaff..35c787ef66149 100644
--- a/api_docs/kbn_hapi_mocks.mdx
+++ b/api_docs/kbn_hapi_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks
title: "@kbn/hapi-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/hapi-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks']
---
import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json';
diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx
index ad0f02e85fb5a..0da28a1d0c546 100644
--- a/api_docs/kbn_health_gateway_server.mdx
+++ b/api_docs/kbn_health_gateway_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server
title: "@kbn/health-gateway-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/health-gateway-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server']
---
import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx
index 39e3eb556c4c1..d5953c819f52b 100644
--- a/api_docs/kbn_home_sample_data_card.mdx
+++ b/api_docs/kbn_home_sample_data_card.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card
title: "@kbn/home-sample-data-card"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-card plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card']
---
import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx
index 77d931ba3b476..bafdee0be5f89 100644
--- a/api_docs/kbn_home_sample_data_tab.mdx
+++ b/api_docs/kbn_home_sample_data_tab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab
title: "@kbn/home-sample-data-tab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-tab plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab']
---
import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json';
diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx
index 3f39b35417e87..c55c9407466b6 100644
--- a/api_docs/kbn_i18n.mdx
+++ b/api_docs/kbn_i18n.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n
title: "@kbn/i18n"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n']
---
import kbnI18nObj from './kbn_i18n.devdocs.json';
diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx
index bec8dd11134bf..d4fa91b284d98 100644
--- a/api_docs/kbn_i18n_react.mdx
+++ b/api_docs/kbn_i18n_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react
title: "@kbn/i18n-react"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n-react plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react']
---
import kbnI18nReactObj from './kbn_i18n_react.devdocs.json';
diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx
index 096bf06a6a126..56d78034cf53c 100644
--- a/api_docs/kbn_import_resolver.mdx
+++ b/api_docs/kbn_import_resolver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver
title: "@kbn/import-resolver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/import-resolver plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_index_adapter.mdx b/api_docs/kbn_index_adapter.mdx
index 5db81d95b33bd..14c580f8f4209 100644
--- a/api_docs/kbn_index_adapter.mdx
+++ b/api_docs/kbn_index_adapter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-adapter
title: "@kbn/index-adapter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-adapter plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-adapter']
---
import kbnIndexAdapterObj from './kbn_index_adapter.devdocs.json';
diff --git a/api_docs/kbn_index_lifecycle_management_common_shared.mdx b/api_docs/kbn_index_lifecycle_management_common_shared.mdx
index 135ced97fb2cf..ec86e99d29500 100644
--- a/api_docs/kbn_index_lifecycle_management_common_shared.mdx
+++ b/api_docs/kbn_index_lifecycle_management_common_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-lifecycle-management-common-shared
title: "@kbn/index-lifecycle-management-common-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-lifecycle-management-common-shared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-lifecycle-management-common-shared']
---
import kbnIndexLifecycleManagementCommonSharedObj from './kbn_index_lifecycle_management_common_shared.devdocs.json';
diff --git a/api_docs/kbn_index_management_shared_types.mdx b/api_docs/kbn_index_management_shared_types.mdx
index 2713ec4479493..523c807b8160f 100644
--- a/api_docs/kbn_index_management_shared_types.mdx
+++ b/api_docs/kbn_index_management_shared_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management-shared-types
title: "@kbn/index-management-shared-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-management-shared-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management-shared-types']
---
import kbnIndexManagementSharedTypesObj from './kbn_index_management_shared_types.devdocs.json';
diff --git a/api_docs/kbn_inference_common.devdocs.json b/api_docs/kbn_inference_common.devdocs.json
index e087e53be14e1..9cb8c900b21db 100644
--- a/api_docs/kbn_inference_common.devdocs.json
+++ b/api_docs/kbn_inference_common.devdocs.json
@@ -1752,6 +1752,200 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundChatCompleteAPI",
+ "type": "Type",
+ "tags": [],
+ "label": "BoundChatCompleteAPI",
+ "description": [
+ "\nVersion of {@link ChatCompleteAPI} that got pre-bound to a set of static parameters"
+ ],
+ "signature": [
+ " = ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ToolOptions",
+ "text": "ToolOptions"
+ },
+ ", TStream extends boolean = false>(options: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.UnboundChatCompleteOptions",
+ "text": "UnboundChatCompleteOptions"
+ },
+ ") => ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteCompositeResponse",
+ "text": "ChatCompleteCompositeResponse"
+ },
+ ""
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/chat_complete/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundChatCompleteAPI.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "{ [P in \"system\" | \"stream\" | \"messages\" | Exclude]: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteOptions",
+ "text": "ChatCompleteOptions"
+ },
+ "[P]; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/chat_complete/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundChatCompleteOptions",
+ "type": "Type",
+ "tags": [],
+ "label": "BoundChatCompleteOptions",
+ "description": [
+ "\nStatic options used to call the {@link BoundChatCompleteAPI}"
+ ],
+ "signature": [
+ "{ connectorId: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteOptions",
+ "text": "ChatCompleteOptions"
+ },
+ "[\"connectorId\"]; functionCalling?: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteOptions",
+ "text": "ChatCompleteOptions"
+ },
+ "[\"functionCalling\"] | undefined; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/chat_complete/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundOutputAPI",
+ "type": "Type",
+ "tags": [],
+ "label": "BoundOutputAPI",
+ "description": [
+ "\nVersion of {@link OutputAPI} that got pre-bound to a set of static parameters"
+ ],
+ "signature": [
+ "(options: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.UnboundOutputOptions",
+ "text": "UnboundOutputOptions"
+ },
+ ") => ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.OutputCompositeResponse",
+ "text": "OutputCompositeResponse"
+ },
+ ""
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/output/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundOutputAPI.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "{ id: TId; input: string; schema?: TOutputSchema | undefined; system?: string | undefined; stream?: TStream | undefined; previousMessages?: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.Message",
+ "text": "Message"
+ },
+ "[] | undefined; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/output/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.BoundOutputOptions",
+ "type": "Type",
+ "tags": [],
+ "label": "BoundOutputOptions",
+ "description": [
+ "\nStatic options used to call the {@link BoundOutputAPI}"
+ ],
+ "signature": [
+ "{ connectorId: string; functionCalling?: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.FunctionCallingMode",
+ "text": "FunctionCallingMode"
+ },
+ " | undefined; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/output/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/inference-common",
"id": "def-common.ChatCompleteAPI",
@@ -2760,6 +2954,56 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.UnboundChatCompleteOptions",
+ "type": "Type",
+ "tags": [],
+ "label": "UnboundChatCompleteOptions",
+ "description": [
+ "\nOptions used to call the {@link BoundChatCompleteAPI}"
+ ],
+ "signature": [
+ "{ [P in \"system\" | \"stream\" | \"messages\" | Exclude]: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.ChatCompleteOptions",
+ "text": "ChatCompleteOptions"
+ },
+ "[P]; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/chat_complete/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/inference-common",
+ "id": "def-common.UnboundOutputOptions",
+ "type": "Type",
+ "tags": [],
+ "label": "UnboundOutputOptions",
+ "description": [
+ "\nOptions used to call the {@link BoundOutputAPI}"
+ ],
+ "signature": [
+ "{ id: TId; input: string; schema?: TOutputSchema | undefined; system?: string | undefined; stream?: TStream | undefined; previousMessages?: ",
+ {
+ "pluginId": "@kbn/inference-common",
+ "scope": "common",
+ "docId": "kibKbnInferenceCommonPluginApi",
+ "section": "def-common.Message",
+ "text": "Message"
+ },
+ "[] | undefined; }"
+ ],
+ "path": "x-pack/packages/ai-infra/inference-common/src/output/bound_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/inference-common",
"id": "def-common.UserMessage",
diff --git a/api_docs/kbn_inference_common.mdx b/api_docs/kbn_inference_common.mdx
index ce1547c6d3cf1..fecaa91691853 100644
--- a/api_docs/kbn_inference_common.mdx
+++ b/api_docs/kbn_inference_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference-common
title: "@kbn/inference-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/inference-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference-common']
---
import kbnInferenceCommonObj from './kbn_inference_common.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 124 | 0 | 41 | 1 |
+| 132 | 0 | 43 | 1 |
## Common
diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx
index 23a04d4ae5f43..d04f8999c319f 100644
--- a/api_docs/kbn_inference_integration_flyout.mdx
+++ b/api_docs/kbn_inference_integration_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout
title: "@kbn/inference_integration_flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/inference_integration_flyout plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout']
---
import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json';
diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx
index ad3ebd1a9b10e..7ff11d928a5a0 100644
--- a/api_docs/kbn_infra_forge.mdx
+++ b/api_docs/kbn_infra_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge
title: "@kbn/infra-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/infra-forge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge']
---
import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json';
diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx
index 8a9834176e048..2c9ec23e43597 100644
--- a/api_docs/kbn_interpreter.mdx
+++ b/api_docs/kbn_interpreter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter
title: "@kbn/interpreter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/interpreter plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter']
---
import kbnInterpreterObj from './kbn_interpreter.devdocs.json';
diff --git a/api_docs/kbn_investigation_shared.mdx b/api_docs/kbn_investigation_shared.mdx
index e7225eeb360c4..56d33ae279608 100644
--- a/api_docs/kbn_investigation_shared.mdx
+++ b/api_docs/kbn_investigation_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-investigation-shared
title: "@kbn/investigation-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/investigation-shared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/investigation-shared']
---
import kbnInvestigationSharedObj from './kbn_investigation_shared.devdocs.json';
diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx
index d6965dd06dee8..47b92944910d4 100644
--- a/api_docs/kbn_io_ts_utils.mdx
+++ b/api_docs/kbn_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils
title: "@kbn/io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/io-ts-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils']
---
import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx
index 2165bfe53940d..65405b333c77f 100644
--- a/api_docs/kbn_ipynb.mdx
+++ b/api_docs/kbn_ipynb.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb
title: "@kbn/ipynb"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ipynb plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb']
---
import kbnIpynbObj from './kbn_ipynb.devdocs.json';
diff --git a/api_docs/kbn_item_buffer.mdx b/api_docs/kbn_item_buffer.mdx
index 8e47cb424a0dd..c1ac75b7d5248 100644
--- a/api_docs/kbn_item_buffer.mdx
+++ b/api_docs/kbn_item_buffer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-item-buffer
title: "@kbn/item-buffer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/item-buffer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/item-buffer']
---
import kbnItemBufferObj from './kbn_item_buffer.devdocs.json';
diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx
index 82e1dc4bc3c8f..00e9362bb48db 100644
--- a/api_docs/kbn_jest_serializers.mdx
+++ b/api_docs/kbn_jest_serializers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers
title: "@kbn/jest-serializers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/jest-serializers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers']
---
import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json';
diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx
index 768d42594a673..6e3c9605d1183 100644
--- a/api_docs/kbn_journeys.mdx
+++ b/api_docs/kbn_journeys.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys
title: "@kbn/journeys"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/journeys plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys']
---
import kbnJourneysObj from './kbn_journeys.devdocs.json';
diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx
index d1bbb532a47d6..4a365ca7db4c7 100644
--- a/api_docs/kbn_json_ast.mdx
+++ b/api_docs/kbn_json_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast
title: "@kbn/json-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-ast plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast']
---
import kbnJsonAstObj from './kbn_json_ast.devdocs.json';
diff --git a/api_docs/kbn_json_schemas.mdx b/api_docs/kbn_json_schemas.mdx
index 42abfc18e51c2..817f08012a182 100644
--- a/api_docs/kbn_json_schemas.mdx
+++ b/api_docs/kbn_json_schemas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-schemas
title: "@kbn/json-schemas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-schemas plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-schemas']
---
import kbnJsonSchemasObj from './kbn_json_schemas.devdocs.json';
diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx
index 66ffc6f3568c0..4142177d70b34 100644
--- a/api_docs/kbn_kibana_manifest_schema.mdx
+++ b/api_docs/kbn_kibana_manifest_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema
title: "@kbn/kibana-manifest-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/kibana-manifest-schema plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema']
---
import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json';
diff --git a/api_docs/kbn_language_documentation.mdx b/api_docs/kbn_language_documentation.mdx
index 3cd63be645208..fe979ad8f24c0 100644
--- a/api_docs/kbn_language_documentation.mdx
+++ b/api_docs/kbn_language_documentation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation
title: "@kbn/language-documentation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/language-documentation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation']
---
import kbnLanguageDocumentationObj from './kbn_language_documentation.devdocs.json';
diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx
index 21f56a35b0f86..4193296e70c45 100644
--- a/api_docs/kbn_lens_embeddable_utils.mdx
+++ b/api_docs/kbn_lens_embeddable_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils
title: "@kbn/lens-embeddable-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-embeddable-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils']
---
import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json';
diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx
index 680919600f4c8..3e16958f8e745 100644
--- a/api_docs/kbn_lens_formula_docs.mdx
+++ b/api_docs/kbn_lens_formula_docs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs
title: "@kbn/lens-formula-docs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-formula-docs plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs']
---
import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index d17fc86798e2d..5c30a12e52e35 100644
--- a/api_docs/kbn_logging.mdx
+++ b/api_docs/kbn_logging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging
title: "@kbn/logging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging']
---
import kbnLoggingObj from './kbn_logging.devdocs.json';
diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx
index 8d4f2def7720c..1e1b932392dc6 100644
--- a/api_docs/kbn_logging_mocks.mdx
+++ b/api_docs/kbn_logging_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks
title: "@kbn/logging-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks']
---
import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json';
diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx
index 24cde3d8cfca5..8d36628cb0ee3 100644
--- a/api_docs/kbn_managed_content_badge.mdx
+++ b/api_docs/kbn_managed_content_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge
title: "@kbn/managed-content-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-content-badge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge']
---
import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json';
diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx
index 57f994af85bba..3b1a48183b448 100644
--- a/api_docs/kbn_managed_vscode_config.mdx
+++ b/api_docs/kbn_managed_vscode_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config
title: "@kbn/managed-vscode-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-vscode-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config']
---
import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json';
diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx
index 9edd4256e0d15..c3c5ee776eba3 100644
--- a/api_docs/kbn_management_cards_navigation.mdx
+++ b/api_docs/kbn_management_cards_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation
title: "@kbn/management-cards-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-cards-navigation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation']
---
import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json';
diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx
index 7fdb4dda5626b..60d8f1f7be110 100644
--- a/api_docs/kbn_management_settings_application.mdx
+++ b/api_docs/kbn_management_settings_application.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application
title: "@kbn/management-settings-application"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-application plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application']
---
import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx
index 34af07f8b23f1..a7dbb075ecbf9 100644
--- a/api_docs/kbn_management_settings_components_field_category.mdx
+++ b/api_docs/kbn_management_settings_components_field_category.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category
title: "@kbn/management-settings-components-field-category"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-category plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category']
---
import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx
index 4c4fcf6120456..b7088887fa9ba 100644
--- a/api_docs/kbn_management_settings_components_field_input.mdx
+++ b/api_docs/kbn_management_settings_components_field_input.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input
title: "@kbn/management-settings-components-field-input"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-input plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input']
---
import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx
index 3dbb2b98152ca..ae637e29ebb19 100644
--- a/api_docs/kbn_management_settings_components_field_row.mdx
+++ b/api_docs/kbn_management_settings_components_field_row.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row
title: "@kbn/management-settings-components-field-row"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-row plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row']
---
import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx
index 56199e70a357e..641f84d5d8710 100644
--- a/api_docs/kbn_management_settings_components_form.mdx
+++ b/api_docs/kbn_management_settings_components_form.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form
title: "@kbn/management-settings-components-form"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-form plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form']
---
import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json';
diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx
index 0966148dcd769..badf4a47fa2f2 100644
--- a/api_docs/kbn_management_settings_field_definition.mdx
+++ b/api_docs/kbn_management_settings_field_definition.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition
title: "@kbn/management-settings-field-definition"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-field-definition plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition']
---
import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json';
diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx
index 1fb181ae67b3c..2cae7456e145d 100644
--- a/api_docs/kbn_management_settings_ids.mdx
+++ b/api_docs/kbn_management_settings_ids.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids
title: "@kbn/management-settings-ids"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-ids plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids']
---
import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json';
diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx
index 6c41640a2957c..915502e9c2a8d 100644
--- a/api_docs/kbn_management_settings_section_registry.mdx
+++ b/api_docs/kbn_management_settings_section_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry
title: "@kbn/management-settings-section-registry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-section-registry plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry']
---
import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json';
diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx
index 6542ce14728d3..6e49814a9c919 100644
--- a/api_docs/kbn_management_settings_types.mdx
+++ b/api_docs/kbn_management_settings_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types
title: "@kbn/management-settings-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types']
---
import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json';
diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx
index 653da624db926..4221195b419a9 100644
--- a/api_docs/kbn_management_settings_utilities.mdx
+++ b/api_docs/kbn_management_settings_utilities.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities
title: "@kbn/management-settings-utilities"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-utilities plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities']
---
import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json';
diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx
index d63cd3157b8f0..27a85fea6bb4b 100644
--- a/api_docs/kbn_management_storybook_config.mdx
+++ b/api_docs/kbn_management_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config
title: "@kbn/management-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-storybook-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config']
---
import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_manifest.mdx b/api_docs/kbn_manifest.mdx
index f93d357409f02..d8ca63d02c6d1 100644
--- a/api_docs/kbn_manifest.mdx
+++ b/api_docs/kbn_manifest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-manifest
title: "@kbn/manifest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/manifest plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/manifest']
---
import kbnManifestObj from './kbn_manifest.devdocs.json';
diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx
index 8c0a09f9dcbb5..24277ed63ea8e 100644
--- a/api_docs/kbn_mapbox_gl.mdx
+++ b/api_docs/kbn_mapbox_gl.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl
title: "@kbn/mapbox-gl"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mapbox-gl plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl']
---
import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json';
diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx
index ce8305ce13310..d204c7c2bdcc1 100644
--- a/api_docs/kbn_maps_vector_tile_utils.mdx
+++ b/api_docs/kbn_maps_vector_tile_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils
title: "@kbn/maps-vector-tile-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/maps-vector-tile-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils']
---
import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx
index 3726a016e212a..64e4c3399c413 100644
--- a/api_docs/kbn_ml_agg_utils.mdx
+++ b/api_docs/kbn_ml_agg_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils
title: "@kbn/ml-agg-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-agg-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils']
---
import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx
index dada5e0060142..b39de81ffe89d 100644
--- a/api_docs/kbn_ml_anomaly_utils.mdx
+++ b/api_docs/kbn_ml_anomaly_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils
title: "@kbn/ml-anomaly-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-anomaly-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils']
---
import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx
index 09ec612dc1fba..7f7db49345bdc 100644
--- a/api_docs/kbn_ml_cancellable_search.mdx
+++ b/api_docs/kbn_ml_cancellable_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search
title: "@kbn/ml-cancellable-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-cancellable-search plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search']
---
import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json';
diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx
index bf591bcf91be7..5a8ea941cb543 100644
--- a/api_docs/kbn_ml_category_validator.mdx
+++ b/api_docs/kbn_ml_category_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator
title: "@kbn/ml-category-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-category-validator plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator']
---
import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json';
diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx
index 68f6ebaae87b6..4c0e97e55d50e 100644
--- a/api_docs/kbn_ml_chi2test.mdx
+++ b/api_docs/kbn_ml_chi2test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test
title: "@kbn/ml-chi2test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-chi2test plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test']
---
import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json';
diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
index 19d8b98298887..3ed94df682099 100644
--- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx
+++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils
title: "@kbn/ml-data-frame-analytics-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-frame-analytics-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils']
---
import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx
index 975130156ec3a..602e0a0de8e99 100644
--- a/api_docs/kbn_ml_data_grid.mdx
+++ b/api_docs/kbn_ml_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid
title: "@kbn/ml-data-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-grid plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid']
---
import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json';
diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx
index 022b040f9fbfb..dc0f55229dbb9 100644
--- a/api_docs/kbn_ml_date_picker.mdx
+++ b/api_docs/kbn_ml_date_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker
title: "@kbn/ml-date-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-picker plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker']
---
import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json';
diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx
index ebefc592988f3..9e3e00d044bbc 100644
--- a/api_docs/kbn_ml_date_utils.mdx
+++ b/api_docs/kbn_ml_date_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils
title: "@kbn/ml-date-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils']
---
import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx
index fd8b6b8850ab2..0dcb62e65f33e 100644
--- a/api_docs/kbn_ml_error_utils.mdx
+++ b/api_docs/kbn_ml_error_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils
title: "@kbn/ml-error-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-error-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils']
---
import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_field_stats_flyout.mdx b/api_docs/kbn_ml_field_stats_flyout.mdx
index 4f575927b8e28..35d4efca2d36b 100644
--- a/api_docs/kbn_ml_field_stats_flyout.mdx
+++ b/api_docs/kbn_ml_field_stats_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-field-stats-flyout
title: "@kbn/ml-field-stats-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-field-stats-flyout plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-field-stats-flyout']
---
import kbnMlFieldStatsFlyoutObj from './kbn_ml_field_stats_flyout.devdocs.json';
diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx
index 268e3cf529e1e..61b3f117d3d29 100644
--- a/api_docs/kbn_ml_in_memory_table.mdx
+++ b/api_docs/kbn_ml_in_memory_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table
title: "@kbn/ml-in-memory-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-in-memory-table plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table']
---
import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json';
diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx
index 455e8cdd39938..0bade866bd90f 100644
--- a/api_docs/kbn_ml_is_defined.mdx
+++ b/api_docs/kbn_ml_is_defined.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined
title: "@kbn/ml-is-defined"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-defined plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined']
---
import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json';
diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx
index 60aad2e3eca4a..a0eaa2f8f23d3 100644
--- a/api_docs/kbn_ml_is_populated_object.mdx
+++ b/api_docs/kbn_ml_is_populated_object.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object
title: "@kbn/ml-is-populated-object"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-populated-object plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object']
---
import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json';
diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx
index 875f37d0f0c57..037683c362f53 100644
--- a/api_docs/kbn_ml_kibana_theme.mdx
+++ b/api_docs/kbn_ml_kibana_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme
title: "@kbn/ml-kibana-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-kibana-theme plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme']
---
import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json';
diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx
index 4ebecb6dc44ec..0fdd4eb8b2fbe 100644
--- a/api_docs/kbn_ml_local_storage.mdx
+++ b/api_docs/kbn_ml_local_storage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage
title: "@kbn/ml-local-storage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-local-storage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage']
---
import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json';
diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx
index e142c5aaf8e45..cc3e4ccdae3c5 100644
--- a/api_docs/kbn_ml_nested_property.mdx
+++ b/api_docs/kbn_ml_nested_property.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property
title: "@kbn/ml-nested-property"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-nested-property plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property']
---
import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json';
diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx
index ff465fbdba147..e3555302b5c0a 100644
--- a/api_docs/kbn_ml_number_utils.mdx
+++ b/api_docs/kbn_ml_number_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils
title: "@kbn/ml-number-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-number-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils']
---
import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_parse_interval.mdx b/api_docs/kbn_ml_parse_interval.mdx
index 86849f8c9f9f4..b6a95ccff39d9 100644
--- a/api_docs/kbn_ml_parse_interval.mdx
+++ b/api_docs/kbn_ml_parse_interval.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-parse-interval
title: "@kbn/ml-parse-interval"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-parse-interval plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-parse-interval']
---
import kbnMlParseIntervalObj from './kbn_ml_parse_interval.devdocs.json';
diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx
index a29c599aee4a4..f63d8269cb2ba 100644
--- a/api_docs/kbn_ml_query_utils.mdx
+++ b/api_docs/kbn_ml_query_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils
title: "@kbn/ml-query-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-query-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils']
---
import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx
index 7902c2616fa44..63506fa4d0d5a 100644
--- a/api_docs/kbn_ml_random_sampler_utils.mdx
+++ b/api_docs/kbn_ml_random_sampler_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils
title: "@kbn/ml-random-sampler-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-random-sampler-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils']
---
import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx
index d2483acaa4b41..01cb4d046aa8f 100644
--- a/api_docs/kbn_ml_route_utils.mdx
+++ b/api_docs/kbn_ml_route_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils
title: "@kbn/ml-route-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-route-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils']
---
import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx
index 4b571294ccd0a..fc61254b63d7b 100644
--- a/api_docs/kbn_ml_runtime_field_utils.mdx
+++ b/api_docs/kbn_ml_runtime_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils
title: "@kbn/ml-runtime-field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-runtime-field-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils']
---
import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx
index a004da0392bce..3b71ca06e0628 100644
--- a/api_docs/kbn_ml_string_hash.mdx
+++ b/api_docs/kbn_ml_string_hash.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash
title: "@kbn/ml-string-hash"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-string-hash plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash']
---
import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json';
diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx
index 6695d845773fb..c662840b8de56 100644
--- a/api_docs/kbn_ml_time_buckets.mdx
+++ b/api_docs/kbn_ml_time_buckets.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets
title: "@kbn/ml-time-buckets"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-time-buckets plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets']
---
import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index a531d1f2e31ae..45f84d226aed4 100644
--- a/api_docs/kbn_ml_trained_models_utils.mdx
+++ b/api_docs/kbn_ml_trained_models_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils
title: "@kbn/ml-trained-models-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-trained-models-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils']
---
import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx
index 332ed3b0074c1..adb1152679db1 100644
--- a/api_docs/kbn_ml_ui_actions.mdx
+++ b/api_docs/kbn_ml_ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions
title: "@kbn/ml-ui-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-ui-actions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions']
---
import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json';
diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx
index a264b3273d85b..d7880b352efa5 100644
--- a/api_docs/kbn_ml_url_state.mdx
+++ b/api_docs/kbn_ml_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state
title: "@kbn/ml-url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-url-state plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_ml_validators.mdx b/api_docs/kbn_ml_validators.mdx
index c9d587f9e799a..efa77b18492c0 100644
--- a/api_docs/kbn_ml_validators.mdx
+++ b/api_docs/kbn_ml_validators.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-validators
title: "@kbn/ml-validators"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-validators plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-validators']
---
import kbnMlValidatorsObj from './kbn_ml_validators.devdocs.json';
diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx
index 938f4be481549..b2c5023bc5211 100644
--- a/api_docs/kbn_mock_idp_utils.mdx
+++ b/api_docs/kbn_mock_idp_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils
title: "@kbn/mock-idp-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mock-idp-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils']
---
import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index b77f2e0cee692..29007587cb7bd 100644
--- a/api_docs/kbn_monaco.mdx
+++ b/api_docs/kbn_monaco.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco
title: "@kbn/monaco"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/monaco plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco']
---
import kbnMonacoObj from './kbn_monaco.devdocs.json';
diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx
index b8acf97eb670e..1a116dddf27dc 100644
--- a/api_docs/kbn_object_versioning.mdx
+++ b/api_docs/kbn_object_versioning.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning
title: "@kbn/object-versioning"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning']
---
import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json';
diff --git a/api_docs/kbn_object_versioning_utils.mdx b/api_docs/kbn_object_versioning_utils.mdx
index 8a706345b2cb7..aba8a0824bd68 100644
--- a/api_docs/kbn_object_versioning_utils.mdx
+++ b/api_docs/kbn_object_versioning_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning-utils
title: "@kbn/object-versioning-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning-utils']
---
import kbnObjectVersioningUtilsObj from './kbn_object_versioning_utils.devdocs.json';
diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx
index 94583b2a2fec8..62f34f2b8d1b1 100644
--- a/api_docs/kbn_observability_alert_details.mdx
+++ b/api_docs/kbn_observability_alert_details.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details
title: "@kbn/observability-alert-details"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alert-details plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details']
---
import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_rule_utils.mdx b/api_docs/kbn_observability_alerting_rule_utils.mdx
index d4f433a3b1ea5..05d05bfcb9e8f 100644
--- a/api_docs/kbn_observability_alerting_rule_utils.mdx
+++ b/api_docs/kbn_observability_alerting_rule_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-rule-utils
title: "@kbn/observability-alerting-rule-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-rule-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-rule-utils']
---
import kbnObservabilityAlertingRuleUtilsObj from './kbn_observability_alerting_rule_utils.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx
index 664d402922371..b54576abfa1c3 100644
--- a/api_docs/kbn_observability_alerting_test_data.mdx
+++ b/api_docs/kbn_observability_alerting_test_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data
title: "@kbn/observability-alerting-test-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-test-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data']
---
import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json';
diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
index 5e4e6fa21f6ca..8558b1e4af835 100644
--- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
+++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util
title: "@kbn/observability-get-padded-alert-time-range-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util']
---
import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json';
diff --git a/api_docs/kbn_observability_logs_overview.mdx b/api_docs/kbn_observability_logs_overview.mdx
index 2fcc35634218c..be42734555ba5 100644
--- a/api_docs/kbn_observability_logs_overview.mdx
+++ b/api_docs/kbn_observability_logs_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-logs-overview
title: "@kbn/observability-logs-overview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-logs-overview plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-logs-overview']
---
import kbnObservabilityLogsOverviewObj from './kbn_observability_logs_overview.devdocs.json';
diff --git a/api_docs/kbn_observability_synthetics_test_data.mdx b/api_docs/kbn_observability_synthetics_test_data.mdx
index bb7fae7b17179..574bd62f71889 100644
--- a/api_docs/kbn_observability_synthetics_test_data.mdx
+++ b/api_docs/kbn_observability_synthetics_test_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-synthetics-test-data
title: "@kbn/observability-synthetics-test-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-synthetics-test-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-synthetics-test-data']
---
import kbnObservabilitySyntheticsTestDataObj from './kbn_observability_synthetics_test_data.devdocs.json';
diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx
index 1edc45118eeb8..a9c9177b6e61f 100644
--- a/api_docs/kbn_openapi_bundler.mdx
+++ b/api_docs/kbn_openapi_bundler.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler
title: "@kbn/openapi-bundler"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-bundler plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler']
---
import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json';
diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx
index 8393499eb7e21..df0284d38667e 100644
--- a/api_docs/kbn_openapi_generator.mdx
+++ b/api_docs/kbn_openapi_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator
title: "@kbn/openapi-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-generator plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator']
---
import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json';
diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx
index 013ae859c61ed..c8da7d5e17df1 100644
--- a/api_docs/kbn_optimizer.mdx
+++ b/api_docs/kbn_optimizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer
title: "@kbn/optimizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer']
---
import kbnOptimizerObj from './kbn_optimizer.devdocs.json';
diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx
index ee607a39ebf22..bb221e30da99a 100644
--- a/api_docs/kbn_optimizer_webpack_helpers.mdx
+++ b/api_docs/kbn_optimizer_webpack_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers
title: "@kbn/optimizer-webpack-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer-webpack-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers']
---
import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json';
diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx
index 823b5edffeac2..79f3fe2eb3557 100644
--- a/api_docs/kbn_osquery_io_ts_types.mdx
+++ b/api_docs/kbn_osquery_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types
title: "@kbn/osquery-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/osquery-io-ts-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types']
---
import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx
index 99e5b146df190..2304068ffd75f 100644
--- a/api_docs/kbn_panel_loader.mdx
+++ b/api_docs/kbn_panel_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader
title: "@kbn/panel-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/panel-loader plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader']
---
import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index f97a6c95e3e5b..637b61f5efe72 100644
--- a/api_docs/kbn_performance_testing_dataset_extractor.mdx
+++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor
title: "@kbn/performance-testing-dataset-extractor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/performance-testing-dataset-extractor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor']
---
import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json';
diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx
index 71deab4802315..157aa7501e233 100644
--- a/api_docs/kbn_plugin_check.mdx
+++ b/api_docs/kbn_plugin_check.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check
title: "@kbn/plugin-check"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-check plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check']
---
import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json';
diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx
index 6bd5baeb46fa2..20c3b78bc326e 100644
--- a/api_docs/kbn_plugin_generator.mdx
+++ b/api_docs/kbn_plugin_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator
title: "@kbn/plugin-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-generator plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator']
---
import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json';
diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx
index 9f2877a4ed34e..3f4f3c5660522 100644
--- a/api_docs/kbn_plugin_helpers.mdx
+++ b/api_docs/kbn_plugin_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers
title: "@kbn/plugin-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx
index 2830633d84624..476d4ce89579a 100644
--- a/api_docs/kbn_presentation_containers.mdx
+++ b/api_docs/kbn_presentation_containers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers
title: "@kbn/presentation-containers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-containers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers']
---
import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json';
diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx
index b30f4dc45fcca..a21c48d8885da 100644
--- a/api_docs/kbn_presentation_publishing.mdx
+++ b/api_docs/kbn_presentation_publishing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing
title: "@kbn/presentation-publishing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-publishing plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing']
---
import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json';
diff --git a/api_docs/kbn_product_doc_artifact_builder.mdx b/api_docs/kbn_product_doc_artifact_builder.mdx
index 858e72f200dd6..ccee3d90265e7 100644
--- a/api_docs/kbn_product_doc_artifact_builder.mdx
+++ b/api_docs/kbn_product_doc_artifact_builder.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-product-doc-artifact-builder
title: "@kbn/product-doc-artifact-builder"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/product-doc-artifact-builder plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/product-doc-artifact-builder']
---
import kbnProductDocArtifactBuilderObj from './kbn_product_doc_artifact_builder.devdocs.json';
diff --git a/api_docs/kbn_product_doc_common.mdx b/api_docs/kbn_product_doc_common.mdx
index ba55e2573cd22..59ebe236b18e2 100644
--- a/api_docs/kbn_product_doc_common.mdx
+++ b/api_docs/kbn_product_doc_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-product-doc-common
title: "@kbn/product-doc-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/product-doc-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/product-doc-common']
---
import kbnProductDocCommonObj from './kbn_product_doc_common.devdocs.json';
diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx
index ea28e0f2cdc75..d993c50b76d6d 100644
--- a/api_docs/kbn_profiling_utils.mdx
+++ b/api_docs/kbn_profiling_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils
title: "@kbn/profiling-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/profiling-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils']
---
import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json';
diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx
index d006435aa3b31..ff7e5932dfae3 100644
--- a/api_docs/kbn_random_sampling.mdx
+++ b/api_docs/kbn_random_sampling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling
title: "@kbn/random-sampling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/random-sampling plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling']
---
import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json';
diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx
index 88481df04004f..908596c6df7df 100644
--- a/api_docs/kbn_react_field.mdx
+++ b/api_docs/kbn_react_field.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field
title: "@kbn/react-field"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-field plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_react_hooks.mdx b/api_docs/kbn_react_hooks.mdx
index 3e154254260e3..4e637c4f9ee20 100644
--- a/api_docs/kbn_react_hooks.mdx
+++ b/api_docs/kbn_react_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-hooks
title: "@kbn/react-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-hooks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-hooks']
---
import kbnReactHooksObj from './kbn_react_hooks.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx
index 268de5fe0379d..4eec32d476c6a 100644
--- a/api_docs/kbn_react_kibana_context_common.mdx
+++ b/api_docs/kbn_react_kibana_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common
title: "@kbn/react-kibana-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common']
---
import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx
index ee2145a96db93..1216737900365 100644
--- a/api_docs/kbn_react_kibana_context_render.mdx
+++ b/api_docs/kbn_react_kibana_context_render.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render
title: "@kbn/react-kibana-context-render"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-render plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render']
---
import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx
index 95fd38d25ed11..ab4003cd378b5 100644
--- a/api_docs/kbn_react_kibana_context_root.mdx
+++ b/api_docs/kbn_react_kibana_context_root.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root
title: "@kbn/react-kibana-context-root"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-root plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root']
---
import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx
index c541352cbe70d..a623a898af80a 100644
--- a/api_docs/kbn_react_kibana_context_styled.mdx
+++ b/api_docs/kbn_react_kibana_context_styled.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled
title: "@kbn/react-kibana-context-styled"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-styled plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled']
---
import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx
index f92763c117d2b..e42af9ac33061 100644
--- a/api_docs/kbn_react_kibana_context_theme.mdx
+++ b/api_docs/kbn_react_kibana_context_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme
title: "@kbn/react-kibana-context-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-theme plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme']
---
import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx
index fc621f98049c6..5d27902d79740 100644
--- a/api_docs/kbn_react_kibana_mount.mdx
+++ b/api_docs/kbn_react_kibana_mount.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount
title: "@kbn/react-kibana-mount"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-mount plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount']
---
import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json';
diff --git a/api_docs/kbn_recently_accessed.mdx b/api_docs/kbn_recently_accessed.mdx
index ad2c16e4f4ba7..5e7bf7ab1d52b 100644
--- a/api_docs/kbn_recently_accessed.mdx
+++ b/api_docs/kbn_recently_accessed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-recently-accessed
title: "@kbn/recently-accessed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/recently-accessed plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/recently-accessed']
---
import kbnRecentlyAccessedObj from './kbn_recently_accessed.devdocs.json';
diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx
index 0f76a20cc709b..17c469e5da034 100644
--- a/api_docs/kbn_repo_file_maps.mdx
+++ b/api_docs/kbn_repo_file_maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps
title: "@kbn/repo-file-maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-file-maps plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps']
---
import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json';
diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx
index 140cf699c4873..4ec926131b6d9 100644
--- a/api_docs/kbn_repo_linter.mdx
+++ b/api_docs/kbn_repo_linter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter
title: "@kbn/repo-linter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-linter plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter']
---
import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json';
diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx
index 5aeecde1e53fe..7e8bdddb96acd 100644
--- a/api_docs/kbn_repo_path.mdx
+++ b/api_docs/kbn_repo_path.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path
title: "@kbn/repo-path"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-path plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path']
---
import kbnRepoPathObj from './kbn_repo_path.devdocs.json';
diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx
index 685c1ddb9ee91..1c95ba49a9427 100644
--- a/api_docs/kbn_repo_source_classifier.mdx
+++ b/api_docs/kbn_repo_source_classifier.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier
title: "@kbn/repo-source-classifier"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-source-classifier plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier']
---
import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json';
diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx
index 167b26eeef116..22aff9da3c4a1 100644
--- a/api_docs/kbn_reporting_common.mdx
+++ b/api_docs/kbn_reporting_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common
title: "@kbn/reporting-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx
index 3a10faf6cda2c..39d746ae0ec03 100644
--- a/api_docs/kbn_reporting_csv_share_panel.mdx
+++ b/api_docs/kbn_reporting_csv_share_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel
title: "@kbn/reporting-csv-share-panel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-csv-share-panel plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel']
---
import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx
index af40277e0ba49..27f8aa773175b 100644
--- a/api_docs/kbn_reporting_export_types_csv.mdx
+++ b/api_docs/kbn_reporting_export_types_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv
title: "@kbn/reporting-export-types-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv']
---
import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx
index 95e52a05b323f..849154e169c71 100644
--- a/api_docs/kbn_reporting_export_types_csv_common.mdx
+++ b/api_docs/kbn_reporting_export_types_csv_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common
title: "@kbn/reporting-export-types-csv-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common']
---
import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx
index e1ef628f4700c..4344f71b28a67 100644
--- a/api_docs/kbn_reporting_export_types_pdf.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf
title: "@kbn/reporting-export-types-pdf"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf']
---
import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx
index 318defc8d37ea..166ed726f35fe 100644
--- a/api_docs/kbn_reporting_export_types_pdf_common.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common
title: "@kbn/reporting-export-types-pdf-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common']
---
import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx
index 2779579cb2af7..4fac66d95b692 100644
--- a/api_docs/kbn_reporting_export_types_png.mdx
+++ b/api_docs/kbn_reporting_export_types_png.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png
title: "@kbn/reporting-export-types-png"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png']
---
import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx
index 11c51ede5c772..faa9390ae816f 100644
--- a/api_docs/kbn_reporting_export_types_png_common.mdx
+++ b/api_docs/kbn_reporting_export_types_png_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common
title: "@kbn/reporting-export-types-png-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common']
---
import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx
index 7e797413f6e23..a75b3a1947d29 100644
--- a/api_docs/kbn_reporting_mocks_server.mdx
+++ b/api_docs/kbn_reporting_mocks_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server
title: "@kbn/reporting-mocks-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-mocks-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server']
---
import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json';
diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx
index 217b0a357c159..304e2e10aa84c 100644
--- a/api_docs/kbn_reporting_public.mdx
+++ b/api_docs/kbn_reporting_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public
title: "@kbn/reporting-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-public plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public']
---
import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json';
diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx
index 0ac44f527c104..02c11cf2964ec 100644
--- a/api_docs/kbn_reporting_server.mdx
+++ b/api_docs/kbn_reporting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server
title: "@kbn/reporting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server']
---
import kbnReportingServerObj from './kbn_reporting_server.devdocs.json';
diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx
index 393949e5d3c8f..fc7ca043cf5eb 100644
--- a/api_docs/kbn_resizable_layout.mdx
+++ b/api_docs/kbn_resizable_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout
title: "@kbn/resizable-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/resizable-layout plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout']
---
import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json';
diff --git a/api_docs/kbn_response_ops_feature_flag_service.mdx b/api_docs/kbn_response_ops_feature_flag_service.mdx
index f71137984935f..1f4a84085b17f 100644
--- a/api_docs/kbn_response_ops_feature_flag_service.mdx
+++ b/api_docs/kbn_response_ops_feature_flag_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-response-ops-feature-flag-service
title: "@kbn/response-ops-feature-flag-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/response-ops-feature-flag-service plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/response-ops-feature-flag-service']
---
import kbnResponseOpsFeatureFlagServiceObj from './kbn_response_ops_feature_flag_service.devdocs.json';
diff --git a/api_docs/kbn_response_ops_rule_params.mdx b/api_docs/kbn_response_ops_rule_params.mdx
index 3447eb3a8ae99..9672a3d8186dd 100644
--- a/api_docs/kbn_response_ops_rule_params.mdx
+++ b/api_docs/kbn_response_ops_rule_params.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-response-ops-rule-params
title: "@kbn/response-ops-rule-params"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/response-ops-rule-params plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/response-ops-rule-params']
---
import kbnResponseOpsRuleParamsObj from './kbn_response_ops_rule_params.devdocs.json';
diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx
index 1ce608500a6df..58e2388ff6c07 100644
--- a/api_docs/kbn_rison.mdx
+++ b/api_docs/kbn_rison.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison
title: "@kbn/rison"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rison plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_rollup.mdx b/api_docs/kbn_rollup.mdx
index 6bd74dc60ec62..cecdf738e3977 100644
--- a/api_docs/kbn_rollup.mdx
+++ b/api_docs/kbn_rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rollup
title: "@kbn/rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rollup plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rollup']
---
import kbnRollupObj from './kbn_rollup.devdocs.json';
diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx
index 67ec799cb6cd7..359fe44cd54b8 100644
--- a/api_docs/kbn_router_to_openapispec.mdx
+++ b/api_docs/kbn_router_to_openapispec.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec
title: "@kbn/router-to-openapispec"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-to-openapispec plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec']
---
import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json';
diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx
index 07907f2acb3bf..48eff4b394b2d 100644
--- a/api_docs/kbn_router_utils.mdx
+++ b/api_docs/kbn_router_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils
title: "@kbn/router-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils']
---
import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json';
diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx
index 1fdaeff1e1e82..af7c1ace16831 100644
--- a/api_docs/kbn_rrule.mdx
+++ b/api_docs/kbn_rrule.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule
title: "@kbn/rrule"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rrule plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule']
---
import kbnRruleObj from './kbn_rrule.devdocs.json';
diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx
index 139d22577ad84..ce1937fc00b1a 100644
--- a/api_docs/kbn_rule_data_utils.mdx
+++ b/api_docs/kbn_rule_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils
title: "@kbn/rule-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rule-data-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils']
---
import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json';
diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx
index b7ef961a928b3..9e1e4548f4af0 100644
--- a/api_docs/kbn_saved_objects_settings.mdx
+++ b/api_docs/kbn_saved_objects_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings
title: "@kbn/saved-objects-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/saved-objects-settings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings']
---
import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json';
diff --git a/api_docs/kbn_screenshotting_server.mdx b/api_docs/kbn_screenshotting_server.mdx
index 028819e1434bf..b1f38a58ff642 100644
--- a/api_docs/kbn_screenshotting_server.mdx
+++ b/api_docs/kbn_screenshotting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-screenshotting-server
title: "@kbn/screenshotting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/screenshotting-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/screenshotting-server']
---
import kbnScreenshottingServerObj from './kbn_screenshotting_server.devdocs.json';
diff --git a/api_docs/kbn_search_api_keys_components.mdx b/api_docs/kbn_search_api_keys_components.mdx
index 7fe06e07f8b45..35ae55dbad73c 100644
--- a/api_docs/kbn_search_api_keys_components.mdx
+++ b/api_docs/kbn_search_api_keys_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-keys-components
title: "@kbn/search-api-keys-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-keys-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-keys-components']
---
import kbnSearchApiKeysComponentsObj from './kbn_search_api_keys_components.devdocs.json';
diff --git a/api_docs/kbn_search_api_keys_server.mdx b/api_docs/kbn_search_api_keys_server.mdx
index cf75e51bb9157..805bb7a91c04d 100644
--- a/api_docs/kbn_search_api_keys_server.mdx
+++ b/api_docs/kbn_search_api_keys_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-keys-server
title: "@kbn/search-api-keys-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-keys-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-keys-server']
---
import kbnSearchApiKeysServerObj from './kbn_search_api_keys_server.devdocs.json';
diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx
index 826b30300ff84..22b88be7b204a 100644
--- a/api_docs/kbn_search_api_panels.mdx
+++ b/api_docs/kbn_search_api_panels.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels
title: "@kbn/search-api-panels"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-panels plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels']
---
import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json';
diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx
index 9cac406cf86eb..868f7b7cf3f42 100644
--- a/api_docs/kbn_search_connectors.mdx
+++ b/api_docs/kbn_search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors
title: "@kbn/search-connectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-connectors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors']
---
import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json';
diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx
index 7d8b0dce96a14..6aadff94423a7 100644
--- a/api_docs/kbn_search_errors.mdx
+++ b/api_docs/kbn_search_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors
title: "@kbn/search-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-errors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors']
---
import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json';
diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx
index bbb106f76eda4..076564ea46dcf 100644
--- a/api_docs/kbn_search_index_documents.mdx
+++ b/api_docs/kbn_search_index_documents.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents
title: "@kbn/search-index-documents"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-index-documents plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents']
---
import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json';
diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx
index a2ce01a28bf18..d5e3a065bb411 100644
--- a/api_docs/kbn_search_response_warnings.mdx
+++ b/api_docs/kbn_search_response_warnings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings
title: "@kbn/search-response-warnings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-response-warnings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings']
---
import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json';
diff --git a/api_docs/kbn_search_shared_ui.mdx b/api_docs/kbn_search_shared_ui.mdx
index a24fedd8bb22d..1d471a24ed814 100644
--- a/api_docs/kbn_search_shared_ui.mdx
+++ b/api_docs/kbn_search_shared_ui.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-shared-ui
title: "@kbn/search-shared-ui"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-shared-ui plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-shared-ui']
---
import kbnSearchSharedUiObj from './kbn_search_shared_ui.devdocs.json';
diff --git a/api_docs/kbn_search_types.mdx b/api_docs/kbn_search_types.mdx
index 9d32574f8f63a..2d5fa98e2c931 100644
--- a/api_docs/kbn_search_types.mdx
+++ b/api_docs/kbn_search_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-types
title: "@kbn/search-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types']
---
import kbnSearchTypesObj from './kbn_search_types.devdocs.json';
diff --git a/api_docs/kbn_security_api_key_management.mdx b/api_docs/kbn_security_api_key_management.mdx
index 246de9304e53d..4bce0257f9691 100644
--- a/api_docs/kbn_security_api_key_management.mdx
+++ b/api_docs/kbn_security_api_key_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-api-key-management
title: "@kbn/security-api-key-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-api-key-management plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-api-key-management']
---
import kbnSecurityApiKeyManagementObj from './kbn_security_api_key_management.devdocs.json';
diff --git a/api_docs/kbn_security_authorization_core.mdx b/api_docs/kbn_security_authorization_core.mdx
index 765a316752d0d..1d312218c338a 100644
--- a/api_docs/kbn_security_authorization_core.mdx
+++ b/api_docs/kbn_security_authorization_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-authorization-core
title: "@kbn/security-authorization-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-authorization-core plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-authorization-core']
---
import kbnSecurityAuthorizationCoreObj from './kbn_security_authorization_core.devdocs.json';
diff --git a/api_docs/kbn_security_authorization_core_common.mdx b/api_docs/kbn_security_authorization_core_common.mdx
index 97b5fdf8cff94..4c672c043e930 100644
--- a/api_docs/kbn_security_authorization_core_common.mdx
+++ b/api_docs/kbn_security_authorization_core_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-authorization-core-common
title: "@kbn/security-authorization-core-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-authorization-core-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-authorization-core-common']
---
import kbnSecurityAuthorizationCoreCommonObj from './kbn_security_authorization_core_common.devdocs.json';
diff --git a/api_docs/kbn_security_form_components.mdx b/api_docs/kbn_security_form_components.mdx
index ad17418d53e50..ca17d40f0544b 100644
--- a/api_docs/kbn_security_form_components.mdx
+++ b/api_docs/kbn_security_form_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-form-components
title: "@kbn/security-form-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-form-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-form-components']
---
import kbnSecurityFormComponentsObj from './kbn_security_form_components.devdocs.json';
diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx
index 4a3d8286fdd93..c1f2fd0b5ccde 100644
--- a/api_docs/kbn_security_hardening.mdx
+++ b/api_docs/kbn_security_hardening.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening
title: "@kbn/security-hardening"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-hardening plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening']
---
import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx
index f314f5ecf75be..16ea109e9b7dd 100644
--- a/api_docs/kbn_security_plugin_types_common.mdx
+++ b/api_docs/kbn_security_plugin_types_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common
title: "@kbn/security-plugin-types-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-common plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common']
---
import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx
index db098adec20a5..4a24b52b13e17 100644
--- a/api_docs/kbn_security_plugin_types_public.mdx
+++ b/api_docs/kbn_security_plugin_types_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public
title: "@kbn/security-plugin-types-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-public plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public']
---
import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx
index 9e465ade356dd..042f1bf631164 100644
--- a/api_docs/kbn_security_plugin_types_server.mdx
+++ b/api_docs/kbn_security_plugin_types_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server
title: "@kbn/security-plugin-types-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server']
---
import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json';
diff --git a/api_docs/kbn_security_role_management_model.mdx b/api_docs/kbn_security_role_management_model.mdx
index 833783d2fa7d1..62d8ad2257ea4 100644
--- a/api_docs/kbn_security_role_management_model.mdx
+++ b/api_docs/kbn_security_role_management_model.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-role-management-model
title: "@kbn/security-role-management-model"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-role-management-model plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-role-management-model']
---
import kbnSecurityRoleManagementModelObj from './kbn_security_role_management_model.devdocs.json';
diff --git a/api_docs/kbn_security_solution_distribution_bar.mdx b/api_docs/kbn_security_solution_distribution_bar.mdx
index a560e9cd808b4..26c5cc329e3a3 100644
--- a/api_docs/kbn_security_solution_distribution_bar.mdx
+++ b/api_docs/kbn_security_solution_distribution_bar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-distribution-bar
title: "@kbn/security-solution-distribution-bar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-distribution-bar plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-distribution-bar']
---
import kbnSecuritySolutionDistributionBarObj from './kbn_security_solution_distribution_bar.devdocs.json';
diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx
index 08c0ad2236832..ef93de6b7ea17 100644
--- a/api_docs/kbn_security_solution_features.mdx
+++ b/api_docs/kbn_security_solution_features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features
title: "@kbn/security-solution-features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-features plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features']
---
import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json';
diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx
index 0bd1f557a5c7b..daec63a5e4136 100644
--- a/api_docs/kbn_security_solution_navigation.mdx
+++ b/api_docs/kbn_security_solution_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation
title: "@kbn/security-solution-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-navigation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation']
---
import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json';
diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx
index 0d768b2c8f2d9..270c2d5e793f4 100644
--- a/api_docs/kbn_security_solution_side_nav.mdx
+++ b/api_docs/kbn_security_solution_side_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav
title: "@kbn/security-solution-side-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-side-nav plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav']
---
import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json';
diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx
index b877e509c95a4..344aa870b361d 100644
--- a/api_docs/kbn_security_solution_storybook_config.mdx
+++ b/api_docs/kbn_security_solution_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config
title: "@kbn/security-solution-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-storybook-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config']
---
import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_security_ui_components.devdocs.json b/api_docs/kbn_security_ui_components.devdocs.json
index 56319c6bea165..63e0344530ee8 100644
--- a/api_docs/kbn_security_ui_components.devdocs.json
+++ b/api_docs/kbn_security_ui_components.devdocs.json
@@ -1,26 +1,10 @@
{
"id": "@kbn/security-ui-components",
"client": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "server": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "common": {
"classes": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable",
+ "id": "def-public.FeatureTable",
"type": "Class",
"tags": [],
"label": "FeatureTable",
@@ -28,9 +12,9 @@
"signature": [
{
"pluginId": "@kbn/security-ui-components",
- "scope": "common",
+ "scope": "public",
"docId": "kibKbnSecurityUiComponentsPluginApi",
- "section": "def-common.FeatureTable",
+ "section": "def-public.FeatureTable",
"text": "FeatureTable"
},
" extends React.Component"
@@ -41,7 +25,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.defaultProps",
+ "id": "def-public.FeatureTable.defaultProps",
"type": "Object",
"tags": [],
"label": "defaultProps",
@@ -52,7 +36,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.defaultProps.privilegeIndex",
+ "id": "def-public.FeatureTable.defaultProps.privilegeIndex",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -63,7 +47,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.defaultProps.showLocks",
+ "id": "def-public.FeatureTable.defaultProps.showLocks",
"type": "boolean",
"tags": [],
"label": "showLocks",
@@ -71,23 +55,12 @@
"path": "x-pack/packages/security/ui_components/src/kibana_privilege_table/feature_table.tsx",
"deprecated": false,
"trackAdoption": false
- },
- {
- "parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.defaultProps.showTitle",
- "type": "boolean",
- "tags": [],
- "label": "showTitle",
- "description": [],
- "path": "x-pack/packages/security/ui_components/src/kibana_privilege_table/feature_table.tsx",
- "deprecated": false,
- "trackAdoption": false
}
]
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.Unnamed",
+ "id": "def-public.FeatureTable.Unnamed",
"type": "Function",
"tags": [],
"label": "Constructor",
@@ -101,7 +74,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.Unnamed.$1",
+ "id": "def-public.FeatureTable.Unnamed.$1",
"type": "Object",
"tags": [],
"label": "props",
@@ -119,7 +92,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTable.render",
+ "id": "def-public.FeatureTable.render",
"type": "Function",
"tags": [],
"label": "render",
@@ -138,7 +111,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator",
+ "id": "def-public.PrivilegeFormCalculator",
"type": "Class",
"tags": [],
"label": "PrivilegeFormCalculator",
@@ -151,7 +124,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.Unnamed",
+ "id": "def-public.PrivilegeFormCalculator.Unnamed",
"type": "Function",
"tags": [],
"label": "Constructor",
@@ -165,7 +138,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.Unnamed.$1",
+ "id": "def-public.PrivilegeFormCalculator.Unnamed.$1",
"type": "Object",
"tags": [],
"label": "kibanaPrivileges",
@@ -186,7 +159,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.Unnamed.$2",
+ "id": "def-public.PrivilegeFormCalculator.Unnamed.$2",
"type": "Object",
"tags": [],
"label": "role",
@@ -210,7 +183,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getBasePrivilege",
+ "id": "def-public.PrivilegeFormCalculator.getBasePrivilege",
"type": "Function",
"tags": [],
"label": "getBasePrivilege",
@@ -234,7 +207,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getBasePrivilege.$1",
+ "id": "def-public.PrivilegeFormCalculator.getBasePrivilege.$1",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -254,7 +227,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isWildcardBasePrivilege",
+ "id": "def-public.PrivilegeFormCalculator.isWildcardBasePrivilege",
"type": "Function",
"tags": [],
"label": "isWildcardBasePrivilege",
@@ -270,7 +243,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isWildcardBasePrivilege.$1",
+ "id": "def-public.PrivilegeFormCalculator.isWildcardBasePrivilege.$1",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -290,7 +263,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId",
+ "id": "def-public.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId",
"type": "Function",
"tags": [],
"label": "getDisplayedPrimaryFeaturePrivilegeId",
@@ -306,7 +279,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$1",
+ "id": "def-public.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -323,7 +296,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$2",
+ "id": "def-public.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$2",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -340,7 +313,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$3",
+ "id": "def-public.PrivilegeFormCalculator.getDisplayedPrimaryFeaturePrivilegeId.$3",
"type": "boolean",
"tags": [],
"label": "allSpacesSelected",
@@ -360,7 +333,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges",
+ "id": "def-public.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges",
"type": "Function",
"tags": [],
"label": "hasCustomizedSubFeaturePrivileges",
@@ -376,7 +349,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$1",
+ "id": "def-public.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -393,7 +366,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$2",
+ "id": "def-public.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$2",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -410,7 +383,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$3",
+ "id": "def-public.PrivilegeFormCalculator.hasCustomizedSubFeaturePrivileges.$3",
"type": "boolean",
"tags": [],
"label": "allSpacesSelected",
@@ -430,7 +403,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege",
+ "id": "def-public.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege",
"type": "Function",
"tags": [],
"label": "getEffectivePrimaryFeaturePrivilege",
@@ -454,7 +427,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$1",
+ "id": "def-public.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -471,7 +444,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$2",
+ "id": "def-public.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$2",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -488,7 +461,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$3",
+ "id": "def-public.PrivilegeFormCalculator.getEffectivePrimaryFeaturePrivilege.$3",
"type": "CompoundType",
"tags": [],
"label": "allSpacesSelected",
@@ -508,7 +481,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted",
+ "id": "def-public.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted",
"type": "Function",
"tags": [],
"label": "isIndependentSubFeaturePrivilegeGranted",
@@ -524,7 +497,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$1",
+ "id": "def-public.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -541,7 +514,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$2",
+ "id": "def-public.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$2",
"type": "string",
"tags": [],
"label": "privilegeId",
@@ -558,7 +531,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$3",
+ "id": "def-public.PrivilegeFormCalculator.isIndependentSubFeaturePrivilegeGranted.$3",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -578,7 +551,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege",
+ "id": "def-public.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege",
"type": "Function",
"tags": [],
"label": "getSelectedMutuallyExclusiveSubFeaturePrivilege",
@@ -610,7 +583,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$1",
+ "id": "def-public.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -627,7 +600,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$2",
+ "id": "def-public.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$2",
"type": "Object",
"tags": [],
"label": "subFeatureGroup",
@@ -650,7 +623,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$3",
+ "id": "def-public.PrivilegeFormCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege.$3",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -670,7 +643,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges",
+ "id": "def-public.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges",
"type": "Function",
"tags": [],
"label": "canCustomizeSubFeaturePrivileges",
@@ -686,7 +659,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges.$1",
+ "id": "def-public.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -703,7 +676,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges.$2",
+ "id": "def-public.PrivilegeFormCalculator.canCustomizeSubFeaturePrivileges.$2",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -723,7 +696,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization",
+ "id": "def-public.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization",
"type": "Function",
"tags": [],
"label": "updateSelectedFeaturePrivilegesForCustomization",
@@ -739,7 +712,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$1",
+ "id": "def-public.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$1",
"type": "string",
"tags": [],
"label": "featureId",
@@ -756,7 +729,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$2",
+ "id": "def-public.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$2",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -773,7 +746,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$3",
+ "id": "def-public.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$3",
"type": "boolean",
"tags": [],
"label": "willBeCustomizing",
@@ -790,7 +763,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$4",
+ "id": "def-public.PrivilegeFormCalculator.updateSelectedFeaturePrivilegesForCustomization.$4",
"type": "boolean",
"tags": [],
"label": "allSpacesSelected",
@@ -810,7 +783,7 @@
},
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasSupersededInheritedPrivileges",
+ "id": "def-public.PrivilegeFormCalculator.hasSupersededInheritedPrivileges",
"type": "Function",
"tags": [],
"label": "hasSupersededInheritedPrivileges",
@@ -826,7 +799,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.PrivilegeFormCalculator.hasSupersededInheritedPrivileges.$1",
+ "id": "def-public.PrivilegeFormCalculator.hasSupersededInheritedPrivileges.$1",
"type": "number",
"tags": [],
"label": "privilegeIndex",
@@ -851,7 +824,7 @@
"functions": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTableCell",
+ "id": "def-public.FeatureTableCell",
"type": "Function",
"tags": [],
"label": "FeatureTableCell",
@@ -865,7 +838,7 @@
"children": [
{
"parentPluginId": "@kbn/security-ui-components",
- "id": "def-common.FeatureTableCell.$1",
+ "id": "def-public.FeatureTableCell.$1",
"type": "Object",
"tags": [],
"label": "{ feature, className }",
@@ -887,5 +860,21 @@
"enums": [],
"misc": [],
"objects": []
+ },
+ "server": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "common": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
}
}
\ No newline at end of file
diff --git a/api_docs/kbn_security_ui_components.mdx b/api_docs/kbn_security_ui_components.mdx
index 896da7b9085ff..2d2dc2412a017 100644
--- a/api_docs/kbn_security_ui_components.mdx
+++ b/api_docs/kbn_security_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-ui-components
title: "@kbn/security-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-ui-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-ui-components']
---
import kbnSecurityUiComponentsObj from './kbn_security_ui_components.devdocs.json';
@@ -21,13 +21,13 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 48 | 0 | 13 | 0 |
+| 47 | 0 | 12 | 0 |
-## Common
+## Client
### Functions
-
+
### Classes
-
+
diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx
index ba7cde5516fab..43de76b593313 100644
--- a/api_docs/kbn_securitysolution_autocomplete.mdx
+++ b/api_docs/kbn_securitysolution_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete
title: "@kbn/securitysolution-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-autocomplete plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete']
---
import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx
index b5eb377cb1a86..ba3bd450b707a 100644
--- a/api_docs/kbn_securitysolution_data_table.mdx
+++ b/api_docs/kbn_securitysolution_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table
title: "@kbn/securitysolution-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-data-table plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table']
---
import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx
index 3f0d900973e66..6ccdcb49ee593 100644
--- a/api_docs/kbn_securitysolution_ecs.mdx
+++ b/api_docs/kbn_securitysolution_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs
title: "@kbn/securitysolution-ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-ecs plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs']
---
import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx
index 25e40c78c722d..a52cff0a76c3f 100644
--- a/api_docs/kbn_securitysolution_es_utils.mdx
+++ b/api_docs/kbn_securitysolution_es_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils
title: "@kbn/securitysolution-es-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-es-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils']
---
import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx
index 5ace884811ddd..551a83972750d 100644
--- a/api_docs/kbn_securitysolution_exception_list_components.mdx
+++ b/api_docs/kbn_securitysolution_exception_list_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components
title: "@kbn/securitysolution-exception-list-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-exception-list-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 4f389b1f572d6..7f73729283d75 100644
--- a/api_docs/kbn_securitysolution_hook_utils.mdx
+++ b/api_docs/kbn_securitysolution_hook_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils
title: "@kbn/securitysolution-hook-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-hook-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils']
---
import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
index cecafb173a926..d688c7cf2c6f8 100644
--- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types
title: "@kbn/securitysolution-io-ts-alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types']
---
import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
index cc30f221fb039..8b67f7a4b26cb 100644
--- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types
title: "@kbn/securitysolution-io-ts-list-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-list-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types']
---
import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx
index 3479f2d73b120..fd9ddcadc6e28 100644
--- a/api_docs/kbn_securitysolution_io_ts_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types
title: "@kbn/securitysolution-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types']
---
import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx
index 1539e376529ed..95c47fb3dc03a 100644
--- a/api_docs/kbn_securitysolution_io_ts_utils.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils
title: "@kbn/securitysolution-io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils']
---
import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx
index 286984bed67c4..274d8116bfff5 100644
--- a/api_docs/kbn_securitysolution_list_api.mdx
+++ b/api_docs/kbn_securitysolution_list_api.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api
title: "@kbn/securitysolution-list-api"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-api plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api']
---
import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx
index 259170e46461a..0cd774fdbfbd8 100644
--- a/api_docs/kbn_securitysolution_list_constants.mdx
+++ b/api_docs/kbn_securitysolution_list_constants.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants
title: "@kbn/securitysolution-list-constants"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-constants plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants']
---
import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx
index d289c807b0b34..30adbd63daafa 100644
--- a/api_docs/kbn_securitysolution_list_hooks.mdx
+++ b/api_docs/kbn_securitysolution_list_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks
title: "@kbn/securitysolution-list-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-hooks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks']
---
import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx
index a09f41a4c6e4b..03565a17044a2 100644
--- a/api_docs/kbn_securitysolution_list_utils.mdx
+++ b/api_docs/kbn_securitysolution_list_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils
title: "@kbn/securitysolution-list-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils']
---
import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx
index d79c88e21d946..cbcecb0bf37e2 100644
--- a/api_docs/kbn_securitysolution_rules.mdx
+++ b/api_docs/kbn_securitysolution_rules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules
title: "@kbn/securitysolution-rules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-rules plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules']
---
import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx
index f01d616d2856e..b76a357d484f8 100644
--- a/api_docs/kbn_securitysolution_t_grid.mdx
+++ b/api_docs/kbn_securitysolution_t_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid
title: "@kbn/securitysolution-t-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-t-grid plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid']
---
import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx
index 7bbef1e9d6dc5..01ada51de564b 100644
--- a/api_docs/kbn_securitysolution_utils.mdx
+++ b/api_docs/kbn_securitysolution_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils
title: "@kbn/securitysolution-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils']
---
import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json';
diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx
index 92d6c2122c1f6..4bb4ec9f0ac2c 100644
--- a/api_docs/kbn_server_http_tools.mdx
+++ b/api_docs/kbn_server_http_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools
title: "@kbn/server-http-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-http-tools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools']
---
import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx
index 0bbe43feb49aa..09e98c1d1db49 100644
--- a/api_docs/kbn_server_route_repository.mdx
+++ b/api_docs/kbn_server_route_repository.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository
title: "@kbn/server-route-repository"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository']
---
import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository_client.mdx b/api_docs/kbn_server_route_repository_client.mdx
index f1db3dfee2bb7..4b5f9b3efce1a 100644
--- a/api_docs/kbn_server_route_repository_client.mdx
+++ b/api_docs/kbn_server_route_repository_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-client
title: "@kbn/server-route-repository-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository-client plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-client']
---
import kbnServerRouteRepositoryClientObj from './kbn_server_route_repository_client.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository_utils.mdx b/api_docs/kbn_server_route_repository_utils.mdx
index bbd7074ba2d55..f7aaec3f41000 100644
--- a/api_docs/kbn_server_route_repository_utils.mdx
+++ b/api_docs/kbn_server_route_repository_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-utils
title: "@kbn/server-route-repository-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-utils']
---
import kbnServerRouteRepositoryUtilsObj from './kbn_server_route_repository_utils.devdocs.json';
diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx
index b0bd2992daf57..27079ba2e0122 100644
--- a/api_docs/kbn_serverless_common_settings.mdx
+++ b/api_docs/kbn_serverless_common_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings
title: "@kbn/serverless-common-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-common-settings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings']
---
import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx
index 390e029cfcfea..ae6e0b24f79e8 100644
--- a/api_docs/kbn_serverless_observability_settings.mdx
+++ b/api_docs/kbn_serverless_observability_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings
title: "@kbn/serverless-observability-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-observability-settings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings']
---
import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx
index 34d5a3c75e9e2..b067d28daa13a 100644
--- a/api_docs/kbn_serverless_project_switcher.mdx
+++ b/api_docs/kbn_serverless_project_switcher.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher
title: "@kbn/serverless-project-switcher"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-project-switcher plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher']
---
import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json';
diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx
index fe91db9cf6ac1..4871a1059737b 100644
--- a/api_docs/kbn_serverless_search_settings.mdx
+++ b/api_docs/kbn_serverless_search_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings
title: "@kbn/serverless-search-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-search-settings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings']
---
import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx
index 7a1d6dfb44199..5f0651eaa3563 100644
--- a/api_docs/kbn_serverless_security_settings.mdx
+++ b/api_docs/kbn_serverless_security_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings
title: "@kbn/serverless-security-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-security-settings plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings']
---
import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx
index 12bd0fdf0321e..1f04b23f7f295 100644
--- a/api_docs/kbn_serverless_storybook_config.mdx
+++ b/api_docs/kbn_serverless_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config
title: "@kbn/serverless-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-storybook-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config']
---
import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx
index d9b63186f221d..1f9b026693310 100644
--- a/api_docs/kbn_shared_svg.mdx
+++ b/api_docs/kbn_shared_svg.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg
title: "@kbn/shared-svg"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-svg plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg']
---
import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx
index 8f4a1ff2d4b80..2256f0d29be62 100644
--- a/api_docs/kbn_shared_ux_avatar_solution.mdx
+++ b/api_docs/kbn_shared_ux_avatar_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution
title: "@kbn/shared-ux-avatar-solution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-solution plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution']
---
import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
index ed12919fdff6b..9f61f9688b9de 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen
title: "@kbn/shared-ux-button-exit-full-screen"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen']
---
import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx
index 93e743afd1175..741318151f8cc 100644
--- a/api_docs/kbn_shared_ux_button_toolbar.mdx
+++ b/api_docs/kbn_shared_ux_button_toolbar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar
title: "@kbn/shared-ux-button-toolbar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-toolbar plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar']
---
import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx
index 9f297d9a93d5c..5112e0c7b2203 100644
--- a/api_docs/kbn_shared_ux_card_no_data.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data
title: "@kbn/shared-ux-card-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data']
---
import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
index c5557d4350f86..d5509a2cded34 100644
--- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks
title: "@kbn/shared-ux-card-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks']
---
import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx
index 5c135eb819e19..194258558f8c8 100644
--- a/api_docs/kbn_shared_ux_chrome_navigation.mdx
+++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation
title: "@kbn/shared-ux-chrome-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-chrome-navigation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation']
---
import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx
index 3c3e9edb5c4b6..34bdbcca0fe3c 100644
--- a/api_docs/kbn_shared_ux_error_boundary.mdx
+++ b/api_docs/kbn_shared_ux_error_boundary.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary
title: "@kbn/shared-ux-error-boundary"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-error-boundary plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary']
---
import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx
index 5f8f264b0e051..4d26ed432df08 100644
--- a/api_docs/kbn_shared_ux_file_context.mdx
+++ b/api_docs/kbn_shared_ux_file_context.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context
title: "@kbn/shared-ux-file-context"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-context plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context']
---
import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx
index 1e796f94213aa..68a9363d6709a 100644
--- a/api_docs/kbn_shared_ux_file_image.mdx
+++ b/api_docs/kbn_shared_ux_file_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image
title: "@kbn/shared-ux-file-image"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image']
---
import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx
index 810a7fc2fb3f1..de47f3f5b7197 100644
--- a/api_docs/kbn_shared_ux_file_image_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks
title: "@kbn/shared-ux-file-image-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks']
---
import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx
index 3c35891212bb0..115b4567293b9 100644
--- a/api_docs/kbn_shared_ux_file_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks
title: "@kbn/shared-ux-file-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks']
---
import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx
index edf2508ea4028..722babc144aaf 100644
--- a/api_docs/kbn_shared_ux_file_picker.mdx
+++ b/api_docs/kbn_shared_ux_file_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker
title: "@kbn/shared-ux-file-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-picker plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker']
---
import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx
index b1cb396c2abe7..098ed4da98145 100644
--- a/api_docs/kbn_shared_ux_file_types.mdx
+++ b/api_docs/kbn_shared_ux_file_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types
title: "@kbn/shared-ux-file-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types']
---
import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx
index 3885ce567e47a..2b7b197d10848 100644
--- a/api_docs/kbn_shared_ux_file_upload.mdx
+++ b/api_docs/kbn_shared_ux_file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload
title: "@kbn/shared-ux-file-upload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-upload plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload']
---
import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx
index df148881560e5..77b81ae12b086 100644
--- a/api_docs/kbn_shared_ux_file_util.mdx
+++ b/api_docs/kbn_shared_ux_file_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util
title: "@kbn/shared-ux-file-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-util plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util']
---
import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx
index 4d7e1e0d5d914..98006cdbc3919 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app
title: "@kbn/shared-ux-link-redirect-app"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app']
---
import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
index 8806a0ce1d488..fee05603b179a 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks
title: "@kbn/shared-ux-link-redirect-app-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks']
---
import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx
index 6fd2c87c1cd92..af4de6cb7f840 100644
--- a/api_docs/kbn_shared_ux_markdown.mdx
+++ b/api_docs/kbn_shared_ux_markdown.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown
title: "@kbn/shared-ux-markdown"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown']
---
import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx
index c91ecb526104a..2798aa82e82e3 100644
--- a/api_docs/kbn_shared_ux_markdown_mocks.mdx
+++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks
title: "@kbn/shared-ux-markdown-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks']
---
import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
index 49cab6cf262ca..be3a6214d2bfa 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data
title: "@kbn/shared-ux-page-analytics-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data']
---
import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
index 6df24d4e233f2..b318c7d6bcdd4 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks
title: "@kbn/shared-ux-page-analytics-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks']
---
import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
index 4e6b6984d06aa..6173e7150dbc0 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data
title: "@kbn/shared-ux-page-kibana-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data']
---
import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
index 329664d4530bf..4ea37ab8473e7 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks
title: "@kbn/shared-ux-page-kibana-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks']
---
import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx
index 31982c8a604bd..b6add920c4b43 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template
title: "@kbn/shared-ux-page-kibana-template"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template']
---
import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
index 4c78da9ef52bb..ca710143f8d3b 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks
title: "@kbn/shared-ux-page-kibana-template-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks']
---
import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx
index 8999a8709b079..f9d15a0014b41 100644
--- a/api_docs/kbn_shared_ux_page_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data
title: "@kbn/shared-ux-page-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data']
---
import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx
index 2149a4bf4e705..f763d69361ab7 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config
title: "@kbn/shared-ux-page-no-data-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config']
---
import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
index 6156667ad8d95..17272302f4d7d 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks
title: "@kbn/shared-ux-page-no-data-config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks']
---
import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
index b1abed77a0926..71caa40b24ee7 100644
--- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks
title: "@kbn/shared-ux-page-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks']
---
import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx
index c3865dd59fd50..ae968f944210f 100644
--- a/api_docs/kbn_shared_ux_page_solution_nav.mdx
+++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav
title: "@kbn/shared-ux-page-solution-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-solution-nav plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav']
---
import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
index 9b076c14ef0d4..e8cc1d353c99b 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views
title: "@kbn/shared-ux-prompt-no-data-views"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views']
---
import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
index 6030740992887..e79a540f135ee 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks
title: "@kbn/shared-ux-prompt-no-data-views-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks']
---
import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx
index d6e8955784e7f..53128b11e88da 100644
--- a/api_docs/kbn_shared_ux_prompt_not_found.mdx
+++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found
title: "@kbn/shared-ux-prompt-not-found"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-not-found plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found']
---
import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx
index 0064edbc3f2b0..d9a39cbcc84d2 100644
--- a/api_docs/kbn_shared_ux_router.mdx
+++ b/api_docs/kbn_shared_ux_router.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router
title: "@kbn/shared-ux-router"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router']
---
import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx
index 10a6990592973..2ce14191dc717 100644
--- a/api_docs/kbn_shared_ux_router_mocks.mdx
+++ b/api_docs/kbn_shared_ux_router_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks
title: "@kbn/shared-ux-router-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router-mocks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks']
---
import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx
index d9ace942278bb..9affdd932e5a6 100644
--- a/api_docs/kbn_shared_ux_storybook_config.mdx
+++ b/api_docs/kbn_shared_ux_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config
title: "@kbn/shared-ux-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config']
---
import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx
index 86dcc4aaaadda..7c822cda82e95 100644
--- a/api_docs/kbn_shared_ux_storybook_mock.mdx
+++ b/api_docs/kbn_shared_ux_storybook_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock
title: "@kbn/shared-ux-storybook-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-mock plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock']
---
import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx
index 3a4815e2d36cc..2329279b3c31b 100644
--- a/api_docs/kbn_shared_ux_tabbed_modal.mdx
+++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal
title: "@kbn/shared-ux-tabbed-modal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-tabbed-modal plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal']
---
import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_table_persist.mdx b/api_docs/kbn_shared_ux_table_persist.mdx
index e04656afd5ab3..926f858c52bb4 100644
--- a/api_docs/kbn_shared_ux_table_persist.mdx
+++ b/api_docs/kbn_shared_ux_table_persist.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-table-persist
title: "@kbn/shared-ux-table-persist"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-table-persist plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-table-persist']
---
import kbnSharedUxTablePersistObj from './kbn_shared_ux_table_persist.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx
index 2b3c9af122ae1..1191ab5a7e495 100644
--- a/api_docs/kbn_shared_ux_utility.mdx
+++ b/api_docs/kbn_shared_ux_utility.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility
title: "@kbn/shared-ux-utility"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-utility plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility']
---
import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json';
diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx
index 9a75db8d281a4..e0a0bada66982 100644
--- a/api_docs/kbn_slo_schema.mdx
+++ b/api_docs/kbn_slo_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema
title: "@kbn/slo-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/slo-schema plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema']
---
import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json';
diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx
index bcd7cf6d81d61..62ddb5933dcc6 100644
--- a/api_docs/kbn_some_dev_log.mdx
+++ b/api_docs/kbn_some_dev_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log
title: "@kbn/some-dev-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/some-dev-log plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx
index 2d1acc5cab716..e714651f18c4e 100644
--- a/api_docs/kbn_sort_predicates.mdx
+++ b/api_docs/kbn_sort_predicates.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates
title: "@kbn/sort-predicates"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sort-predicates plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates']
---
import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json';
diff --git a/api_docs/kbn_sse_utils.mdx b/api_docs/kbn_sse_utils.mdx
index 0a2d1a9eb08d2..d5e1cd8cf4ce8 100644
--- a/api_docs/kbn_sse_utils.mdx
+++ b/api_docs/kbn_sse_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils
title: "@kbn/sse-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils']
---
import kbnSseUtilsObj from './kbn_sse_utils.devdocs.json';
diff --git a/api_docs/kbn_sse_utils_client.mdx b/api_docs/kbn_sse_utils_client.mdx
index 5fb9f579e5b24..20d96ec0077ac 100644
--- a/api_docs/kbn_sse_utils_client.mdx
+++ b/api_docs/kbn_sse_utils_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils-client
title: "@kbn/sse-utils-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils-client plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-client']
---
import kbnSseUtilsClientObj from './kbn_sse_utils_client.devdocs.json';
diff --git a/api_docs/kbn_sse_utils_server.mdx b/api_docs/kbn_sse_utils_server.mdx
index f12c34281b67a..a0258aa6bda62 100644
--- a/api_docs/kbn_sse_utils_server.mdx
+++ b/api_docs/kbn_sse_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils-server
title: "@kbn/sse-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils-server plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-server']
---
import kbnSseUtilsServerObj from './kbn_sse_utils_server.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index 875c7b21a7739..75892d2a79407 100644
--- a/api_docs/kbn_std.mdx
+++ b/api_docs/kbn_std.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std
title: "@kbn/std"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/std plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std']
---
import kbnStdObj from './kbn_std.devdocs.json';
diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx
index 4d9ff82367d22..078a0a219523e 100644
--- a/api_docs/kbn_stdio_dev_helpers.mdx
+++ b/api_docs/kbn_stdio_dev_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers
title: "@kbn/stdio-dev-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/stdio-dev-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers']
---
import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json';
diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx
index 52a138c303d3e..907362dad0c5b 100644
--- a/api_docs/kbn_storybook.mdx
+++ b/api_docs/kbn_storybook.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook
title: "@kbn/storybook"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/storybook plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_synthetics_e2e.mdx b/api_docs/kbn_synthetics_e2e.mdx
index 3f9cd52799c28..91ea0cc4af824 100644
--- a/api_docs/kbn_synthetics_e2e.mdx
+++ b/api_docs/kbn_synthetics_e2e.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-e2e
title: "@kbn/synthetics-e2e"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/synthetics-e2e plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-e2e']
---
import kbnSyntheticsE2eObj from './kbn_synthetics_e2e.devdocs.json';
diff --git a/api_docs/kbn_synthetics_private_location.mdx b/api_docs/kbn_synthetics_private_location.mdx
index ddadf43b246d0..decec16cad572 100644
--- a/api_docs/kbn_synthetics_private_location.mdx
+++ b/api_docs/kbn_synthetics_private_location.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-private-location
title: "@kbn/synthetics-private-location"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/synthetics-private-location plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-private-location']
---
import kbnSyntheticsPrivateLocationObj from './kbn_synthetics_private_location.devdocs.json';
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index 9edd25f3b7854..9b0f85be9c682 100644
--- a/api_docs/kbn_telemetry_tools.mdx
+++ b/api_docs/kbn_telemetry_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools
title: "@kbn/telemetry-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/telemetry-tools plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools']
---
import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json';
diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx
index a7dcf11233964..68613d16ec423 100644
--- a/api_docs/kbn_test.mdx
+++ b/api_docs/kbn_test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test
title: "@kbn/test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test']
---
import kbnTestObj from './kbn_test.devdocs.json';
diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx
index 11513f611d150..e79253c601729 100644
--- a/api_docs/kbn_test_eui_helpers.mdx
+++ b/api_docs/kbn_test_eui_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers
title: "@kbn/test-eui-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-eui-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers']
---
import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx
index a1f244825c78a..2d9bc10bba9f0 100644
--- a/api_docs/kbn_test_jest_helpers.mdx
+++ b/api_docs/kbn_test_jest_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers
title: "@kbn/test-jest-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-jest-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers']
---
import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx
index dd7a20b14f41b..71b0f6da111b9 100644
--- a/api_docs/kbn_test_subj_selector.mdx
+++ b/api_docs/kbn_test_subj_selector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector
title: "@kbn/test-subj-selector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-subj-selector plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector']
---
import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json';
diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx
index 4a846be61471c..a2a696aa7daae 100644
--- a/api_docs/kbn_timerange.mdx
+++ b/api_docs/kbn_timerange.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange
title: "@kbn/timerange"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/timerange plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange']
---
import kbnTimerangeObj from './kbn_timerange.devdocs.json';
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index 5ccdee4201e72..7c04b4ac52eae 100644
--- a/api_docs/kbn_tooling_log.mdx
+++ b/api_docs/kbn_tooling_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log
title: "@kbn/tooling-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/tooling-log plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_transpose_utils.mdx b/api_docs/kbn_transpose_utils.mdx
index 29b044439b4ab..3d0043d6c8b2a 100644
--- a/api_docs/kbn_transpose_utils.mdx
+++ b/api_docs/kbn_transpose_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-transpose-utils
title: "@kbn/transpose-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/transpose-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/transpose-utils']
---
import kbnTransposeUtilsObj from './kbn_transpose_utils.devdocs.json';
diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx
index a5b11ace4eb83..17cab8367cf35 100644
--- a/api_docs/kbn_triggers_actions_ui_types.mdx
+++ b/api_docs/kbn_triggers_actions_ui_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types
title: "@kbn/triggers-actions-ui-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/triggers-actions-ui-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types']
---
import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json';
diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx
index 9ae922086d92b..292514d316309 100644
--- a/api_docs/kbn_try_in_console.mdx
+++ b/api_docs/kbn_try_in_console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-try-in-console
title: "@kbn/try-in-console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/try-in-console plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/try-in-console']
---
import kbnTryInConsoleObj from './kbn_try_in_console.devdocs.json';
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index a4ccd1baf11a3..e84f1a2e0b4ae 100644
--- a/api_docs/kbn_ts_projects.mdx
+++ b/api_docs/kbn_ts_projects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects
title: "@kbn/ts-projects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ts-projects plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects']
---
import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json';
diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx
index 0bfecd965636b..bb39af52216ac 100644
--- a/api_docs/kbn_typed_react_router_config.mdx
+++ b/api_docs/kbn_typed_react_router_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config
title: "@kbn/typed-react-router-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/typed-react-router-config plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config']
---
import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json';
diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx
index 19964443d00ef..70b2b5887a308 100644
--- a/api_docs/kbn_ui_actions_browser.mdx
+++ b/api_docs/kbn_ui_actions_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser
title: "@kbn/ui-actions-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-actions-browser plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser']
---
import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json';
diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx
index 2e54ad6a33131..4c5a108267c8c 100644
--- a/api_docs/kbn_ui_shared_deps_src.mdx
+++ b/api_docs/kbn_ui_shared_deps_src.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src
title: "@kbn/ui-shared-deps-src"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-shared-deps-src plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src']
---
import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json';
diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx
index 8d577bf266af4..7f8dce491f339 100644
--- a/api_docs/kbn_ui_theme.mdx
+++ b/api_docs/kbn_ui_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme
title: "@kbn/ui-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-theme plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme']
---
import kbnUiThemeObj from './kbn_ui_theme.devdocs.json';
diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx
index 8744bcb763af7..a0105cf4335ef 100644
--- a/api_docs/kbn_unified_data_table.mdx
+++ b/api_docs/kbn_unified_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table
title: "@kbn/unified-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-data-table plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table']
---
import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json';
diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx
index 0622550a724d8..8f016b1b426c2 100644
--- a/api_docs/kbn_unified_doc_viewer.mdx
+++ b/api_docs/kbn_unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer
title: "@kbn/unified-doc-viewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-doc-viewer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer']
---
import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json';
diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx
index 95339521de642..ec1f9eab9b5cc 100644
--- a/api_docs/kbn_unified_field_list.mdx
+++ b/api_docs/kbn_unified_field_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list
title: "@kbn/unified-field-list"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-field-list plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list']
---
import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json';
diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx
index d02d9ff9befd8..f0682a3576797 100644
--- a/api_docs/kbn_unsaved_changes_badge.mdx
+++ b/api_docs/kbn_unsaved_changes_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge
title: "@kbn/unsaved-changes-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-badge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge']
---
import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json';
diff --git a/api_docs/kbn_unsaved_changes_prompt.mdx b/api_docs/kbn_unsaved_changes_prompt.mdx
index 71ce2b2fe23dd..a4ef48f8bd72a 100644
--- a/api_docs/kbn_unsaved_changes_prompt.mdx
+++ b/api_docs/kbn_unsaved_changes_prompt.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-prompt
title: "@kbn/unsaved-changes-prompt"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-prompt plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-prompt']
---
import kbnUnsavedChangesPromptObj from './kbn_unsaved_changes_prompt.devdocs.json';
diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx
index 6d24c6aaf7348..4be5b4e8e7218 100644
--- a/api_docs/kbn_use_tracked_promise.mdx
+++ b/api_docs/kbn_use_tracked_promise.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise
title: "@kbn/use-tracked-promise"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/use-tracked-promise plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise']
---
import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json';
diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx
index 47102a7f213ab..214a6e0891802 100644
--- a/api_docs/kbn_user_profile_components.mdx
+++ b/api_docs/kbn_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components
title: "@kbn/user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/user-profile-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components']
---
import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json';
diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx
index 4303083d803cd..afac65072e3d6 100644
--- a/api_docs/kbn_utility_types.mdx
+++ b/api_docs/kbn_utility_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types
title: "@kbn/utility-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types']
---
import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json';
diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx
index fcad1e2aab1fa..e66e0200d8f42 100644
--- a/api_docs/kbn_utility_types_jest.mdx
+++ b/api_docs/kbn_utility_types_jest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest
title: "@kbn/utility-types-jest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types-jest plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest']
---
import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json';
diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx
index a94500343051c..1d6a170a37a93 100644
--- a/api_docs/kbn_utils.mdx
+++ b/api_docs/kbn_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils
title: "@kbn/utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils']
---
import kbnUtilsObj from './kbn_utils.devdocs.json';
diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx
index d42ce39a6489d..57b1c5e34ba5b 100644
--- a/api_docs/kbn_visualization_ui_components.mdx
+++ b/api_docs/kbn_visualization_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components
title: "@kbn/visualization-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-ui-components plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components']
---
import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json';
diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx
index a9091803d8a59..c4464a3c18466 100644
--- a/api_docs/kbn_visualization_utils.mdx
+++ b/api_docs/kbn_visualization_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils
title: "@kbn/visualization-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils']
---
import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json';
diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx
index a4c0783e2f147..58c5c776ed7c7 100644
--- a/api_docs/kbn_xstate_utils.mdx
+++ b/api_docs/kbn_xstate_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils
title: "@kbn/xstate-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/xstate-utils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils']
---
import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json';
diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx
index 36576b64f8a59..a93f8f30179f0 100644
--- a/api_docs/kbn_yarn_lock_validator.mdx
+++ b/api_docs/kbn_yarn_lock_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator
title: "@kbn/yarn-lock-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/yarn-lock-validator plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator']
---
import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json';
diff --git a/api_docs/kbn_zod.mdx b/api_docs/kbn_zod.mdx
index 6f6397fd79176..4a69c28e05a1e 100644
--- a/api_docs/kbn_zod.mdx
+++ b/api_docs/kbn_zod.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod
title: "@kbn/zod"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod']
---
import kbnZodObj from './kbn_zod.devdocs.json';
diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx
index 7f6b0f52b0146..066fa4ceb849a 100644
--- a/api_docs/kbn_zod_helpers.mdx
+++ b/api_docs/kbn_zod_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers
title: "@kbn/zod-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod-helpers plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers']
---
import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json';
diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx
index 2ec803afccf82..f1c1b3c76a574 100644
--- a/api_docs/kibana_overview.mdx
+++ b/api_docs/kibana_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview
title: "kibanaOverview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaOverview plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview']
---
import kibanaOverviewObj from './kibana_overview.devdocs.json';
diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx
index 19e64ec5b9442..f74aab026fe94 100644
--- a/api_docs/kibana_react.mdx
+++ b/api_docs/kibana_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact
title: "kibanaReact"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaReact plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact']
---
import kibanaReactObj from './kibana_react.devdocs.json';
diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx
index 6a08230406f97..5dc7829a3eb36 100644
--- a/api_docs/kibana_utils.mdx
+++ b/api_docs/kibana_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils
title: "kibanaUtils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaUtils plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils']
---
import kibanaUtilsObj from './kibana_utils.devdocs.json';
diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx
index 819883c209b79..cee4bdd78e02e 100644
--- a/api_docs/kubernetes_security.mdx
+++ b/api_docs/kubernetes_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity
title: "kubernetesSecurity"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kubernetesSecurity plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity']
---
import kubernetesSecurityObj from './kubernetes_security.devdocs.json';
diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx
index 6e80cf99266d9..b0eb9b67d6a01 100644
--- a/api_docs/lens.mdx
+++ b/api_docs/lens.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens
title: "lens"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lens plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens']
---
import lensObj from './lens.devdocs.json';
diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx
index abe095f474049..8a2d0ac7e6ba0 100644
--- a/api_docs/license_api_guard.mdx
+++ b/api_docs/license_api_guard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard
title: "licenseApiGuard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseApiGuard plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard']
---
import licenseApiGuardObj from './license_api_guard.devdocs.json';
diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx
index 098b13dedd090..389d94a01d448 100644
--- a/api_docs/license_management.mdx
+++ b/api_docs/license_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement
title: "licenseManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement']
---
import licenseManagementObj from './license_management.devdocs.json';
diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx
index bea6d9bd8888d..84f2a4b3fbc2a 100644
--- a/api_docs/licensing.mdx
+++ b/api_docs/licensing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing
title: "licensing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licensing plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing']
---
import licensingObj from './licensing.devdocs.json';
diff --git a/api_docs/links.mdx b/api_docs/links.mdx
index db264f08a2970..5eb042cf54473 100644
--- a/api_docs/links.mdx
+++ b/api_docs/links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links
title: "links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the links plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links']
---
import linksObj from './links.devdocs.json';
diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx
index 17db21b932c2a..5102bee3fc1df 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists
title: "lists"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lists plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/llm_tasks.mdx b/api_docs/llm_tasks.mdx
index 511b44f2bbb11..56ef0d197cff0 100644
--- a/api_docs/llm_tasks.mdx
+++ b/api_docs/llm_tasks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/llmTasks
title: "llmTasks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the llmTasks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'llmTasks']
---
import llmTasksObj from './llm_tasks.devdocs.json';
diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx
index 71f02d9567d7f..14223d95ab138 100644
--- a/api_docs/logs_data_access.mdx
+++ b/api_docs/logs_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsDataAccess
title: "logsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsDataAccess plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess']
---
import logsDataAccessObj from './logs_data_access.devdocs.json';
diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx
index 1d8eb9fb675ff..21e796a93792a 100644
--- a/api_docs/logs_explorer.mdx
+++ b/api_docs/logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer
title: "logsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsExplorer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer']
---
import logsExplorerObj from './logs_explorer.devdocs.json';
diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx
index f5ad97ed5f986..8f930c9ed031b 100644
--- a/api_docs/logs_shared.mdx
+++ b/api_docs/logs_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared
title: "logsShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsShared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared']
---
import logsSharedObj from './logs_shared.devdocs.json';
diff --git a/api_docs/management.mdx b/api_docs/management.mdx
index 3d2a8fd09e4e6..95bb39e62a21d 100644
--- a/api_docs/management.mdx
+++ b/api_docs/management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management
title: "management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the management plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management']
---
import managementObj from './management.devdocs.json';
diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx
index ffa196573c9a1..86606b256483f 100644
--- a/api_docs/maps.mdx
+++ b/api_docs/maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps
title: "maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the maps plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps']
---
import mapsObj from './maps.devdocs.json';
diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx
index 196a230660a4c..80633263acd5a 100644
--- a/api_docs/maps_ems.mdx
+++ b/api_docs/maps_ems.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms
title: "mapsEms"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mapsEms plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms']
---
import mapsEmsObj from './maps_ems.devdocs.json';
diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx
index 3d0f1b6c4a1a3..6d874c2cc560f 100644
--- a/api_docs/metrics_data_access.mdx
+++ b/api_docs/metrics_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess
title: "metricsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the metricsDataAccess plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess']
---
import metricsDataAccessObj from './metrics_data_access.devdocs.json';
diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx
index 50a789b0ab94e..6832946f87db3 100644
--- a/api_docs/ml.mdx
+++ b/api_docs/ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml
title: "ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ml plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx
index 4b1358eac81fc..1bf96889378f4 100644
--- a/api_docs/mock_idp_plugin.mdx
+++ b/api_docs/mock_idp_plugin.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin
title: "mockIdpPlugin"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mockIdpPlugin plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin']
---
import mockIdpPluginObj from './mock_idp_plugin.devdocs.json';
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index 3181393d059e0..c35d40a8df5e0 100644
--- a/api_docs/monitoring.mdx
+++ b/api_docs/monitoring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring
title: "monitoring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoring plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring']
---
import monitoringObj from './monitoring.devdocs.json';
diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx
index 7d58a064410ec..d0bb1e9401f42 100644
--- a/api_docs/monitoring_collection.mdx
+++ b/api_docs/monitoring_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection
title: "monitoringCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoringCollection plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection']
---
import monitoringCollectionObj from './monitoring_collection.devdocs.json';
diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx
index 00e7dca28d91b..a37c83a3cf90c 100644
--- a/api_docs/navigation.mdx
+++ b/api_docs/navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation
title: "navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the navigation plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation']
---
import navigationObj from './navigation.devdocs.json';
diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx
index 21a51e41b8d1c..d39208b14056b 100644
--- a/api_docs/newsfeed.mdx
+++ b/api_docs/newsfeed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed
title: "newsfeed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the newsfeed plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed']
---
import newsfeedObj from './newsfeed.devdocs.json';
diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx
index a1b5581b838e5..1617974265fff 100644
--- a/api_docs/no_data_page.mdx
+++ b/api_docs/no_data_page.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage
title: "noDataPage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the noDataPage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage']
---
import noDataPageObj from './no_data_page.devdocs.json';
diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx
index 201d95cd74ec0..7512916ce9b63 100644
--- a/api_docs/notifications.mdx
+++ b/api_docs/notifications.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications
title: "notifications"
image: https://source.unsplash.com/400x175/?github
description: API docs for the notifications plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications']
---
import notificationsObj from './notifications.devdocs.json';
diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx
index 19fd0492944c0..1ea3ce96b8b32 100644
--- a/api_docs/observability.mdx
+++ b/api_docs/observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability
title: "observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observability plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability']
---
import observabilityObj from './observability.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx
index 83d4b0022fcdd..a0dbc9da88b8a 100644
--- a/api_docs/observability_a_i_assistant.mdx
+++ b/api_docs/observability_a_i_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant
title: "observabilityAIAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant']
---
import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx
index d6f51c5724a51..ab2fff2e24a51 100644
--- a/api_docs/observability_a_i_assistant_app.mdx
+++ b/api_docs/observability_a_i_assistant_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp
title: "observabilityAIAssistantApp"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistantApp plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp']
---
import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json';
diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx
index e414f274518a1..e2f06fcb63ff8 100644
--- a/api_docs/observability_ai_assistant_management.mdx
+++ b/api_docs/observability_ai_assistant_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement
title: "observabilityAiAssistantManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAiAssistantManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement']
---
import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json';
diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx
index 2358925f4dfc8..5f803916afb3d 100644
--- a/api_docs/observability_logs_explorer.mdx
+++ b/api_docs/observability_logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer
title: "observabilityLogsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityLogsExplorer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer']
---
import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json';
diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx
index 85d0a427c2624..fa1e551dd424d 100644
--- a/api_docs/observability_onboarding.mdx
+++ b/api_docs/observability_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding
title: "observabilityOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityOnboarding plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding']
---
import observabilityOnboardingObj from './observability_onboarding.devdocs.json';
diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx
index 943c9c5691bbe..e221d5a371f97 100644
--- a/api_docs/observability_shared.mdx
+++ b/api_docs/observability_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared
title: "observabilityShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityShared plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared']
---
import observabilitySharedObj from './observability_shared.devdocs.json';
diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx
index b44b959701fcd..aa424d1adefa8 100644
--- a/api_docs/osquery.mdx
+++ b/api_docs/osquery.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery
title: "osquery"
image: https://source.unsplash.com/400x175/?github
description: API docs for the osquery plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery']
---
import osqueryObj from './osquery.devdocs.json';
diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx
index 7054cd2117f00..4e7c6ea097ecd 100644
--- a/api_docs/painless_lab.mdx
+++ b/api_docs/painless_lab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab
title: "painlessLab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the painlessLab plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab']
---
import painlessLabObj from './painless_lab.devdocs.json';
diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx
index 7ce0d1dc1a023..95450e2f2c024 100644
--- a/api_docs/plugin_directory.mdx
+++ b/api_docs/plugin_directory.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory
slug: /kibana-dev-docs/api-meta/plugin-api-directory
title: Directory
description: Directory of public APIs available through plugins or packages.
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| API Count | Any Count | Missing comments | Missing exports |
|--------------|----------|-----------------|--------|
-| 54466 | 247 | 40920 | 2015 |
+| 54482 | 247 | 40923 | 2017 |
## Plugin Directory
@@ -57,11 +57,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 54 | 0 | 51 | 0 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3209 | 31 | 2594 | 24 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 6 | 0 | 6 | 0 |
-| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 9 | 0 | 9 | 0 |
+| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 10 | 0 | 10 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 35 | 0 | 25 | 5 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Reusable data view field editor across Kibana | 72 | 0 | 33 | 1 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data view management app | 2 | 0 | 2 | 0 |
-| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 1224 | 0 | 443 | 4 |
+| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 1225 | 0 | 443 | 4 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 31 | 3 | 25 | 4 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of data set quality, where users can easily get an overview on the data sets they have. | 14 | 0 | 14 | 8 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 15 | 0 | 9 | 2 |
@@ -115,7 +115,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Image embeddable | 1 | 0 | 1 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 244 | 0 | 239 | 1 |
-| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 33 | 0 | 28 | 4 |
+| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 40 | 0 | 29 | 6 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 24 | 0 | 24 | 5 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 |
| inputControlVis | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 |
@@ -554,7 +554,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/security-threat-hunting](https://github.com/orgs/elastic/teams/security-threat-hunting) | - | 85 | 0 | 80 | 2 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 75 | 0 | 73 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 126 | 3 | 126 | 0 |
-| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 124 | 0 | 41 | 1 |
+| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 132 | 0 | 43 | 1 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 7 | 1 | 7 | 1 |
| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 9 | 0 | 9 | 0 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 12 | 43 | 0 |
@@ -702,7 +702,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 54 | 0 | 49 | 0 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 29 | 0 | 23 | 0 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 2 | 0 | 0 | 0 |
-| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 48 | 0 | 13 | 0 |
+| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 47 | 0 | 12 | 0 |
| | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 56 | 1 | 41 | 0 |
| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 92 | 0 | 70 | 6 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 341 | 1 | 337 | 32 |
diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx
index c14bea1f7cd34..665069d662f81 100644
--- a/api_docs/presentation_panel.mdx
+++ b/api_docs/presentation_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel
title: "presentationPanel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationPanel plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel']
---
import presentationPanelObj from './presentation_panel.devdocs.json';
diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx
index 24eedbd2b04f9..4626a728109cd 100644
--- a/api_docs/presentation_util.mdx
+++ b/api_docs/presentation_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil
title: "presentationUtil"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationUtil plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil']
---
import presentationUtilObj from './presentation_util.devdocs.json';
diff --git a/api_docs/product_doc_base.mdx b/api_docs/product_doc_base.mdx
index 051e26bd56196..0ea4e5a08aec0 100644
--- a/api_docs/product_doc_base.mdx
+++ b/api_docs/product_doc_base.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/productDocBase
title: "productDocBase"
image: https://source.unsplash.com/400x175/?github
description: API docs for the productDocBase plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'productDocBase']
---
import productDocBaseObj from './product_doc_base.devdocs.json';
diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx
index 19992aa57b2a6..35cb99c2e0f58 100644
--- a/api_docs/profiling.mdx
+++ b/api_docs/profiling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling
title: "profiling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profiling plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling']
---
import profilingObj from './profiling.devdocs.json';
diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx
index 53d117a699229..d5c042cf4145d 100644
--- a/api_docs/profiling_data_access.mdx
+++ b/api_docs/profiling_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess
title: "profilingDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profilingDataAccess plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess']
---
import profilingDataAccessObj from './profiling_data_access.devdocs.json';
diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx
index cc5d9a43fc252..21b14d908e920 100644
--- a/api_docs/remote_clusters.mdx
+++ b/api_docs/remote_clusters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters
title: "remoteClusters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the remoteClusters plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters']
---
import remoteClustersObj from './remote_clusters.devdocs.json';
diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx
index 302e188bb4c8c..024619d7709ec 100644
--- a/api_docs/reporting.mdx
+++ b/api_docs/reporting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting
title: "reporting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the reporting plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting']
---
import reportingObj from './reporting.devdocs.json';
diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx
index 7d95d39e9324e..e8c682d169833 100644
--- a/api_docs/rollup.mdx
+++ b/api_docs/rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup
title: "rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the rollup plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup']
---
import rollupObj from './rollup.devdocs.json';
diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx
index 4ebc4fe171a22..16ed7cc70c215 100644
--- a/api_docs/rule_registry.mdx
+++ b/api_docs/rule_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry
title: "ruleRegistry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ruleRegistry plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry']
---
import ruleRegistryObj from './rule_registry.devdocs.json';
diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx
index 1af512192c6c3..befdc463c64b2 100644
--- a/api_docs/runtime_fields.mdx
+++ b/api_docs/runtime_fields.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields
title: "runtimeFields"
image: https://source.unsplash.com/400x175/?github
description: API docs for the runtimeFields plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields']
---
import runtimeFieldsObj from './runtime_fields.devdocs.json';
diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx
index 4ec61c7efdea9..9002722e62888 100644
--- a/api_docs/saved_objects.mdx
+++ b/api_docs/saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects
title: "savedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjects plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects']
---
import savedObjectsObj from './saved_objects.devdocs.json';
diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx
index 540d219be32e1..f9b1b25650028 100644
--- a/api_docs/saved_objects_finder.mdx
+++ b/api_docs/saved_objects_finder.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder
title: "savedObjectsFinder"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsFinder plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder']
---
import savedObjectsFinderObj from './saved_objects_finder.devdocs.json';
diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx
index 3031f3b67c435..c8fc1d33b75cb 100644
--- a/api_docs/saved_objects_management.mdx
+++ b/api_docs/saved_objects_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement
title: "savedObjectsManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsManagement plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement']
---
import savedObjectsManagementObj from './saved_objects_management.devdocs.json';
diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx
index c726717a954e6..d73a0d968a5ea 100644
--- a/api_docs/saved_objects_tagging.mdx
+++ b/api_docs/saved_objects_tagging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging
title: "savedObjectsTagging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTagging plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging']
---
import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json';
diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx
index 39e883ed82bc8..f444631d9fe6f 100644
--- a/api_docs/saved_objects_tagging_oss.mdx
+++ b/api_docs/saved_objects_tagging_oss.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss
title: "savedObjectsTaggingOss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTaggingOss plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss']
---
import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json';
diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx
index cced69a9c30e5..63135706ee86d 100644
--- a/api_docs/saved_search.mdx
+++ b/api_docs/saved_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch
title: "savedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedSearch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch']
---
import savedSearchObj from './saved_search.devdocs.json';
diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx
index 0fecead7426e9..a52873bb72c92 100644
--- a/api_docs/screenshot_mode.mdx
+++ b/api_docs/screenshot_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode
title: "screenshotMode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotMode plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode']
---
import screenshotModeObj from './screenshot_mode.devdocs.json';
diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx
index 13fe7789b2ba9..d091f2a7a4024 100644
--- a/api_docs/screenshotting.mdx
+++ b/api_docs/screenshotting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting
title: "screenshotting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotting plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting']
---
import screenshottingObj from './screenshotting.devdocs.json';
diff --git a/api_docs/search_assistant.mdx b/api_docs/search_assistant.mdx
index bd7b702295dc0..ea42113c9880c 100644
--- a/api_docs/search_assistant.mdx
+++ b/api_docs/search_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchAssistant
title: "searchAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchAssistant plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchAssistant']
---
import searchAssistantObj from './search_assistant.devdocs.json';
diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx
index cbec02e6b5949..af36c43ddc61b 100644
--- a/api_docs/search_connectors.mdx
+++ b/api_docs/search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors
title: "searchConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchConnectors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors']
---
import searchConnectorsObj from './search_connectors.devdocs.json';
diff --git a/api_docs/search_homepage.mdx b/api_docs/search_homepage.mdx
index 5983760f75043..2b86f4d0a05f4 100644
--- a/api_docs/search_homepage.mdx
+++ b/api_docs/search_homepage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchHomepage
title: "searchHomepage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchHomepage plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchHomepage']
---
import searchHomepageObj from './search_homepage.devdocs.json';
diff --git a/api_docs/search_indices.mdx b/api_docs/search_indices.mdx
index 1e1044d975b58..bfb1be750ed27 100644
--- a/api_docs/search_indices.mdx
+++ b/api_docs/search_indices.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchIndices
title: "searchIndices"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchIndices plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchIndices']
---
import searchIndicesObj from './search_indices.devdocs.json';
diff --git a/api_docs/search_inference_endpoints.mdx b/api_docs/search_inference_endpoints.mdx
index dee5d98dcaba3..2c5f9be6d516e 100644
--- a/api_docs/search_inference_endpoints.mdx
+++ b/api_docs/search_inference_endpoints.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchInferenceEndpoints
title: "searchInferenceEndpoints"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchInferenceEndpoints plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchInferenceEndpoints']
---
import searchInferenceEndpointsObj from './search_inference_endpoints.devdocs.json';
diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx
index 87532f5bc9745..17b4ebc5d7c38 100644
--- a/api_docs/search_notebooks.mdx
+++ b/api_docs/search_notebooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks
title: "searchNotebooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchNotebooks plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks']
---
import searchNotebooksObj from './search_notebooks.devdocs.json';
diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx
index 3cb3fd4d38a8e..0f9569ece6c47 100644
--- a/api_docs/search_playground.mdx
+++ b/api_docs/search_playground.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground
title: "searchPlayground"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchPlayground plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground']
---
import searchPlaygroundObj from './search_playground.devdocs.json';
diff --git a/api_docs/security.mdx b/api_docs/security.mdx
index 3393225711d22..98e74151d2c5c 100644
--- a/api_docs/security.mdx
+++ b/api_docs/security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security
title: "security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the security plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security']
---
import securityObj from './security.devdocs.json';
diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx
index 5734bb79a598d..ef3ed24aa5650 100644
--- a/api_docs/security_solution.mdx
+++ b/api_docs/security_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution
title: "securitySolution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolution plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution']
---
import securitySolutionObj from './security_solution.devdocs.json';
diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx
index a7daf244a8ee0..7453a707f7ead 100644
--- a/api_docs/security_solution_ess.mdx
+++ b/api_docs/security_solution_ess.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss
title: "securitySolutionEss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionEss plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss']
---
import securitySolutionEssObj from './security_solution_ess.devdocs.json';
diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx
index 50154f5677b90..fd04e2723620c 100644
--- a/api_docs/security_solution_serverless.mdx
+++ b/api_docs/security_solution_serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless
title: "securitySolutionServerless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionServerless plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless']
---
import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json';
diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx
index 35f2b91e45bd8..4e0e4747a7d12 100644
--- a/api_docs/serverless.mdx
+++ b/api_docs/serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless
title: "serverless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverless plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless']
---
import serverlessObj from './serverless.devdocs.json';
diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx
index 30f758d13ef95..c59f3944e647d 100644
--- a/api_docs/serverless_observability.mdx
+++ b/api_docs/serverless_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability
title: "serverlessObservability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessObservability plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability']
---
import serverlessObservabilityObj from './serverless_observability.devdocs.json';
diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx
index 4084786bef306..cabc797d4ecf3 100644
--- a/api_docs/serverless_search.mdx
+++ b/api_docs/serverless_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch
title: "serverlessSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessSearch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch']
---
import serverlessSearchObj from './serverless_search.devdocs.json';
diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx
index 3b76e58f35bf0..d790fe5f0b367 100644
--- a/api_docs/session_view.mdx
+++ b/api_docs/session_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView
title: "sessionView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the sessionView plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView']
---
import sessionViewObj from './session_view.devdocs.json';
diff --git a/api_docs/share.mdx b/api_docs/share.mdx
index 2ae99a0ff2774..71d617e50d2a6 100644
--- a/api_docs/share.mdx
+++ b/api_docs/share.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share
title: "share"
image: https://source.unsplash.com/400x175/?github
description: API docs for the share plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share']
---
import shareObj from './share.devdocs.json';
diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx
index 38a45378b47cb..f9afcc4d75e9a 100644
--- a/api_docs/slo.mdx
+++ b/api_docs/slo.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo
title: "slo"
image: https://source.unsplash.com/400x175/?github
description: API docs for the slo plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo']
---
import sloObj from './slo.devdocs.json';
diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx
index 59994451cfb4c..2b3ae1dd8efa1 100644
--- a/api_docs/snapshot_restore.mdx
+++ b/api_docs/snapshot_restore.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore
title: "snapshotRestore"
image: https://source.unsplash.com/400x175/?github
description: API docs for the snapshotRestore plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore']
---
import snapshotRestoreObj from './snapshot_restore.devdocs.json';
diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx
index beb7543b8ded9..8fff51a834507 100644
--- a/api_docs/spaces.mdx
+++ b/api_docs/spaces.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces
title: "spaces"
image: https://source.unsplash.com/400x175/?github
description: API docs for the spaces plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces']
---
import spacesObj from './spaces.devdocs.json';
diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx
index 208a2fa3a6fe4..11e8fd244aa69 100644
--- a/api_docs/stack_alerts.mdx
+++ b/api_docs/stack_alerts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts
title: "stackAlerts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackAlerts plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts']
---
import stackAlertsObj from './stack_alerts.devdocs.json';
diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx
index e6a037997600b..2e22fde60dc60 100644
--- a/api_docs/stack_connectors.mdx
+++ b/api_docs/stack_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors
title: "stackConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackConnectors plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors']
---
import stackConnectorsObj from './stack_connectors.devdocs.json';
diff --git a/api_docs/streams.mdx b/api_docs/streams.mdx
index f472dc831febf..f46c3dc108559 100644
--- a/api_docs/streams.mdx
+++ b/api_docs/streams.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/streams
title: "streams"
image: https://source.unsplash.com/400x175/?github
description: API docs for the streams plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'streams']
---
import streamsObj from './streams.devdocs.json';
diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx
index e4e754803e328..3592eb3d99768 100644
--- a/api_docs/task_manager.mdx
+++ b/api_docs/task_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager
title: "taskManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the taskManager plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager']
---
import taskManagerObj from './task_manager.devdocs.json';
diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx
index 93de1780c9084..9dda7db62fce7 100644
--- a/api_docs/telemetry.mdx
+++ b/api_docs/telemetry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry
title: "telemetry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetry plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry']
---
import telemetryObj from './telemetry.devdocs.json';
diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx
index 2e469f5dd20bb..8e2ed2e37ab17 100644
--- a/api_docs/telemetry_collection_manager.mdx
+++ b/api_docs/telemetry_collection_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager
title: "telemetryCollectionManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionManager plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager']
---
import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json';
diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx
index 229524e53cbbc..de520e776a0d6 100644
--- a/api_docs/telemetry_management_section.mdx
+++ b/api_docs/telemetry_management_section.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection
title: "telemetryManagementSection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryManagementSection plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection']
---
import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json';
diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx
index 2c095c7f45b60..b9504112c4082 100644
--- a/api_docs/threat_intelligence.mdx
+++ b/api_docs/threat_intelligence.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence
title: "threatIntelligence"
image: https://source.unsplash.com/400x175/?github
description: API docs for the threatIntelligence plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence']
---
import threatIntelligenceObj from './threat_intelligence.devdocs.json';
diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx
index 5723d5da71007..bfc668f544402 100644
--- a/api_docs/timelines.mdx
+++ b/api_docs/timelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines
title: "timelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the timelines plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines']
---
import timelinesObj from './timelines.devdocs.json';
diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx
index c2b15803ef434..1e3e5067625d5 100644
--- a/api_docs/transform.mdx
+++ b/api_docs/transform.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform
title: "transform"
image: https://source.unsplash.com/400x175/?github
description: API docs for the transform plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform']
---
import transformObj from './transform.devdocs.json';
diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx
index 016df87a06b46..27bb87dcc1619 100644
--- a/api_docs/triggers_actions_ui.mdx
+++ b/api_docs/triggers_actions_ui.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi
title: "triggersActionsUi"
image: https://source.unsplash.com/400x175/?github
description: API docs for the triggersActionsUi plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi']
---
import triggersActionsUiObj from './triggers_actions_ui.devdocs.json';
diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx
index 63e67e2912b73..fa21f3c784200 100644
--- a/api_docs/ui_actions.mdx
+++ b/api_docs/ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions
title: "uiActions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActions plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions']
---
import uiActionsObj from './ui_actions.devdocs.json';
diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx
index efe94eda0dbc8..e60be97daf17f 100644
--- a/api_docs/ui_actions_enhanced.mdx
+++ b/api_docs/ui_actions_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced
title: "uiActionsEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActionsEnhanced plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced']
---
import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json';
diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx
index b9881cc1a868c..d0153f7ab1a20 100644
--- a/api_docs/unified_doc_viewer.mdx
+++ b/api_docs/unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer
title: "unifiedDocViewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedDocViewer plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer']
---
import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json';
diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx
index fa6a90ef3c431..d20afbd886578 100644
--- a/api_docs/unified_histogram.mdx
+++ b/api_docs/unified_histogram.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram
title: "unifiedHistogram"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedHistogram plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram']
---
import unifiedHistogramObj from './unified_histogram.devdocs.json';
diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx
index 27d48adfdd4d2..b40b57b653542 100644
--- a/api_docs/unified_search.mdx
+++ b/api_docs/unified_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch
title: "unifiedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch']
---
import unifiedSearchObj from './unified_search.devdocs.json';
diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx
index 9d34ee86d0774..31d331031e745 100644
--- a/api_docs/unified_search_autocomplete.mdx
+++ b/api_docs/unified_search_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete
title: "unifiedSearch.autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch.autocomplete plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete']
---
import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json';
diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx
index 91414273e3461..cd769820dffd1 100644
--- a/api_docs/uptime.mdx
+++ b/api_docs/uptime.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime
title: "uptime"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uptime plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime']
---
import uptimeObj from './uptime.devdocs.json';
diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx
index f242ed8b5d12f..c5bbdd7a08a75 100644
--- a/api_docs/url_forwarding.mdx
+++ b/api_docs/url_forwarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding
title: "urlForwarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the urlForwarding plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding']
---
import urlForwardingObj from './url_forwarding.devdocs.json';
diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx
index 10c3efd066e10..84f59a769f77d 100644
--- a/api_docs/usage_collection.mdx
+++ b/api_docs/usage_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection
title: "usageCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the usageCollection plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection']
---
import usageCollectionObj from './usage_collection.devdocs.json';
diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx
index 4f61763b867ab..0b81b1e37ee3b 100644
--- a/api_docs/ux.mdx
+++ b/api_docs/ux.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux
title: "ux"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ux plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux']
---
import uxObj from './ux.devdocs.json';
diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx
index ac983214beac5..6473fc5b33b3c 100644
--- a/api_docs/vis_default_editor.mdx
+++ b/api_docs/vis_default_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor
title: "visDefaultEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visDefaultEditor plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor']
---
import visDefaultEditorObj from './vis_default_editor.devdocs.json';
diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx
index fe647283551a2..e24404aafee1e 100644
--- a/api_docs/vis_type_gauge.mdx
+++ b/api_docs/vis_type_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge
title: "visTypeGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeGauge plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge']
---
import visTypeGaugeObj from './vis_type_gauge.devdocs.json';
diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx
index b318b94fb8abe..32f18b5f3a039 100644
--- a/api_docs/vis_type_heatmap.mdx
+++ b/api_docs/vis_type_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap
title: "visTypeHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeHeatmap plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap']
---
import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json';
diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx
index f9f64ea677495..ad2abc11bc255 100644
--- a/api_docs/vis_type_pie.mdx
+++ b/api_docs/vis_type_pie.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie
title: "visTypePie"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypePie plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie']
---
import visTypePieObj from './vis_type_pie.devdocs.json';
diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx
index ce49c0df7c697..a6be2f123dcc1 100644
--- a/api_docs/vis_type_table.mdx
+++ b/api_docs/vis_type_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable
title: "visTypeTable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTable plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable']
---
import visTypeTableObj from './vis_type_table.devdocs.json';
diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx
index d4b47db92ec7d..6b491ece98cd6 100644
--- a/api_docs/vis_type_timelion.mdx
+++ b/api_docs/vis_type_timelion.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion
title: "visTypeTimelion"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimelion plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion']
---
import visTypeTimelionObj from './vis_type_timelion.devdocs.json';
diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx
index 025159bbdfbdb..ed3b3063b0f81 100644
--- a/api_docs/vis_type_timeseries.mdx
+++ b/api_docs/vis_type_timeseries.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries
title: "visTypeTimeseries"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimeseries plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries']
---
import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json';
diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx
index 2586437fb0b63..d13a56fcbe286 100644
--- a/api_docs/vis_type_vega.mdx
+++ b/api_docs/vis_type_vega.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega
title: "visTypeVega"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVega plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega']
---
import visTypeVegaObj from './vis_type_vega.devdocs.json';
diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx
index 7f3094d3c8998..7e3e9cc4ea265 100644
--- a/api_docs/vis_type_vislib.mdx
+++ b/api_docs/vis_type_vislib.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib
title: "visTypeVislib"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVislib plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib']
---
import visTypeVislibObj from './vis_type_vislib.devdocs.json';
diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx
index 493825c0b209c..7d1d44be5c6db 100644
--- a/api_docs/vis_type_xy.mdx
+++ b/api_docs/vis_type_xy.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy
title: "visTypeXy"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeXy plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy']
---
import visTypeXyObj from './vis_type_xy.devdocs.json';
diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx
index e2bc485823690..3fb0e3cb7105a 100644
--- a/api_docs/visualizations.mdx
+++ b/api_docs/visualizations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations
title: "visualizations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visualizations plugin
-date: 2024-11-20
+date: 2024-11-21
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations']
---
import visualizationsObj from './visualizations.devdocs.json';
diff --git a/dev_docs/key_concepts/feature_privileges.mdx b/dev_docs/key_concepts/feature_privileges.mdx
index 7666ca1e82399..87f650133be25 100644
--- a/dev_docs/key_concepts/feature_privileges.mdx
+++ b/dev_docs/key_concepts/feature_privileges.mdx
@@ -179,8 +179,10 @@ public setup(core: CoreSetup, deps: FeatureControlExampleDeps) {
{
path: '/internal/my_plugin/sensitive_action',
validate: false,
- options: {
- tags: ['access:my_closed_example_api'],
+ security: {
+ authz: {
+ requiredPrivileges: ['my_closed_example_api']
+ }
},
},
async (context, request, response) => {
@@ -193,8 +195,11 @@ public setup(core: CoreSetup, deps: FeatureControlExampleDeps) {
);
}
```
+
+ For more information on the `security.authz` object and API authorization, please refer to our guide on
+
-Notice, we've added an `options.tags` property for the API route that returns sensitive information. This tag is then used in the privileges object as follow
+Notice, we've added a `security.authz.requiredPrivileges` property for the API route that returns sensitive information. This added configuration is then used in the privileges object as follow
```ts
{
@@ -347,7 +352,6 @@ A deep dive into every option for the Kibana Feature configuration and what they
}
```
-
### FeatureKibanaPrivileges Interface
#### excludeFromBasePrivileges (optional)
diff --git a/dev_docs/tutorials/advanced_settings.mdx b/dev_docs/tutorials/advanced_settings.mdx
index d14da92edc93c..6789e9d6af7ad 100644
--- a/dev_docs/tutorials/advanced_settings.mdx
+++ b/dev_docs/tutorials/advanced_settings.mdx
@@ -53,26 +53,23 @@ On the client, the `uiSettings` service is accessible directly from `core` and t
The following is a basic example for using the `uiSettings` service:
**src/plugins/charts/public/plugin.ts**
+
```ts
import { Plugin, CoreSetup } from '@kbn/core/public';
-import { ExpressionsSetup } from '../../expressions/public';
+import { ExpressionsSetup } from '@kbn/expressions-plugin/public';
import { palette, systemPalette } from '../common';
-import { ThemeService, LegacyColorsService } from './services';
+import { ThemeService } from './services';
import { PaletteService } from './services/palettes/service';
import { ActiveCursor } from './services/active_cursor';
-export type Theme = Omit;
-export type Color = Omit;
-
interface SetupDependencies {
expressions: ExpressionsSetup;
}
/** @public */
export interface ChartsPluginSetup {
- legacyColors: Color;
- theme: Theme;
+ theme: Omit;
palettes: ReturnType;
}
@@ -84,7 +81,6 @@ export type ChartsPluginStart = ChartsPluginSetup & {
/** @public */
export class ChartsPlugin implements Plugin {
private readonly themeService = new ThemeService();
- private readonly legacyColorsService = new LegacyColorsService();
private readonly paletteService = new PaletteService();
private readonly activeCursor = new ActiveCursor();
@@ -93,14 +89,12 @@ export class ChartsPlugin implements Plugin
- Refer to [the server-side uiSettings service API docs](https://github.com/elastic/kibana/blob/main/docs/development/core/server/kibana-plugin-core-server.iuisettingsclient.md)
+ Refer to [the server-side uiSettings service API
+ docs](https://github.com/elastic/kibana/blob/main/docs/development/core/server/kibana-plugin-core-server.iuisettingsclient.md)
-**src/plugins/charts/server/plugin.ts**
+**src/plugins/dev_tools/server/plugin.ts**
```ts
-import { i18n } from '@kbn/i18n';
-import { schema } from '@kbn/config-schema';
-import { CoreSetup, Plugin } from '@kbn/core/server';
-import { COLOR_MAPPING_SETTING, LEGACY_TIME_AXIS, palette, systemPalette } from '../common';
-import { ExpressionsServerSetup } from '../../expressions/server';
+import { PluginInitializerContext, Plugin, CoreSetup } from '@kbn/core/server';
-interface SetupDependencies {
- expressions: ExpressionsServerSetup;
-}
+import { uiSettings } from './ui_settings';
+export class DevToolsServerPlugin implements Plugin
-
+
{Object.values(syncErrors ?? {}).map((e) => {
return (
-
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_stats.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_stats.tsx
index 67ce536fc3c8e..db0e54b078752 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_stats.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_stats.tsx
@@ -73,9 +73,9 @@ export const MonitorStats = ({
-
+
-
+
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx
index 90a7d705b5c39..18eaa74b4cdcd 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx
@@ -11,31 +11,36 @@ import { useKibana } from '@kbn/kibana-react-plugin/public';
import { useTheme } from '@kbn/observability-shared-plugin/public';
import { ReportTypes } from '@kbn/exploratory-view-plugin/public';
+import { useMonitorFilters } from '../../hooks/use_monitor_filters';
import { useRefreshedRange } from '../../../../hooks';
import { ClientPluginsStart } from '../../../../../../plugin';
import * as labels from '../labels';
+import { useMonitorQueryFilters } from '../../hooks/use_monitor_query_filters';
-export const MonitorTestRunsCount = ({ monitorIds }: { monitorIds: string[] }) => {
+export const MonitorTestRunsCount = () => {
const {
exploratoryView: { ExploratoryViewEmbeddable },
} = useKibana().services;
const theme = useTheme();
const { from, to } = useRefreshedRange(30, 'days');
+ const filters = useMonitorFilters({});
+ const queryFilter = useMonitorQueryFilters();
return (
0 ? monitorIds : ['false-monitor-id'], // Show no data when monitorIds is empty
+ 'monitor.type': ['http', 'tcp', 'browser', 'icmp'],
},
dataType: 'synthetics',
selectedMetricField: 'monitor_total_runs',
- filters: [],
name: labels.TEST_RUNS_LABEL,
color: theme.eui.euiColorVis1,
},
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx
index c2930a1d22ffb..8713dfb77769e 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx
@@ -10,11 +10,13 @@ import React, { useMemo } from 'react';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { useTheme } from '@kbn/observability-shared-plugin/public';
+import { useMonitorQueryFilters } from '../../hooks/use_monitor_query_filters';
+import { useMonitorFilters } from '../../hooks/use_monitor_filters';
import { useRefreshedRange } from '../../../../hooks';
import { ClientPluginsStart } from '../../../../../../plugin';
import * as labels from '../labels';
-export const MonitorTestRunsSparkline = ({ monitorIds }: { monitorIds: string[] }) => {
+export const MonitorTestRunsSparkline = () => {
const {
exploratoryView: { ExploratoryViewEmbeddable },
} = useKibana().services;
@@ -22,6 +24,8 @@ export const MonitorTestRunsSparkline = ({ monitorIds }: { monitorIds: string[]
const theme = useTheme();
const { from, to } = useRefreshedRange(30, 'days');
+ const filters = useMonitorFilters({});
+ const queryFilter = useMonitorQueryFilters();
const attributes = useMemo(() => {
return [
@@ -29,18 +33,18 @@ export const MonitorTestRunsSparkline = ({ monitorIds }: { monitorIds: string[]
seriesType: 'area' as const,
time: { from, to },
reportDefinitions: {
- 'monitor.id': monitorIds.length > 0 ? monitorIds : ['false-monitor-id'], // Show no data when monitorIds is empty
+ 'monitor.type': ['http', 'tcp', 'browser', 'icmp'],
},
dataType: 'synthetics' as const,
selectedMetricField: 'total_test_runs',
- filters: [],
+ filters,
name: labels.TEST_RUNS_LABEL,
color: theme.eui.euiColorVis1,
operationType: 'count',
},
];
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [from, JSON.stringify({ ids: [...monitorIds].sort() }), theme.eui.euiColorVis1, to]);
+ }, [from, theme.eui.euiColorVis1, to]);
return (
);
};
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_alerts.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_alerts.tsx
index e9c86eef3767a..8174b7fb63f73 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_alerts.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_alerts.tsx
@@ -6,19 +6,18 @@
*/
import React, { useMemo } from 'react';
-import {
- EuiFlexGroup,
- EuiFlexItem,
- EuiSkeletonText,
- EuiPanel,
- EuiSpacer,
- EuiTitle,
-} from '@elastic/eui';
+import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer, EuiTitle } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { useTheme } from '@kbn/observability-shared-plugin/public';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { useSelector } from 'react-redux';
import { RECORDS_FIELD } from '@kbn/exploratory-view-plugin/public';
+import { useMonitorQueryFilters } from '../../hooks/use_monitor_query_filters';
+import {
+ SYNTHETICS_STATUS_RULE,
+ SYNTHETICS_TLS_RULE,
+} from '../../../../../../../common/constants/synthetics_alerts';
+import { useMonitorFilters } from '../../hooks/use_monitor_filters';
import { selectOverviewStatus } from '../../../../state/overview_status';
import { AlertsLink } from '../../../common/links/view_alerts';
import { useRefreshedRange, useGetUrlParams } from '../../../../hooks';
@@ -64,14 +63,10 @@ export const OverviewAlerts = () => {
} = useKibana().services;
const theme = useTheme();
-
- const { status } = useSelector(selectOverviewStatus);
+ const filters = useMonitorFilters({ forAlerts: true });
const { locations } = useGetUrlParams();
-
- const loading = !status?.allIds || status?.allIds.length === 0;
-
- const monitorIds = useMonitorQueryIds();
+ const queryFilters = useMonitorQueryFilters();
return (
@@ -79,68 +74,70 @@ export const OverviewAlerts = () => {
{headingText}
- {loading ? (
-
- ) : (
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
- )}
+ dataType: 'alerts',
+ selectedMetricField: RECORDS_FIELD,
+ name: ALERTS_LABEL,
+ filters: [
+ { field: 'kibana.alert.status', values: ['active', 'recovered'] },
+ ...filters,
+ ],
+ color: theme.eui.euiColorVis1_behindText,
+ },
+ ]}
+ />
+
+
+
+
+
);
};
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors.tsx
index 34d113da9901b..acabd436d83fc 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors.tsx
@@ -5,62 +5,30 @@
* 2.0.
*/
-import {
- EuiFlexGroup,
- EuiFlexItem,
- EuiSkeletonText,
- EuiPanel,
- EuiSpacer,
- EuiTitle,
-} from '@elastic/eui';
+import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer, EuiTitle } from '@elastic/eui';
import React from 'react';
-import { useSelector } from 'react-redux';
import { i18n } from '@kbn/i18n';
-import { useMonitorQueryIds } from '../overview_alerts';
-import { selectOverviewStatus } from '../../../../../state/overview_status';
import { OverviewErrorsSparklines } from './overview_errors_sparklines';
-import { useRefreshedRange, useGetUrlParams } from '../../../../../hooks';
+import { useRefreshedRange } from '../../../../../hooks';
import { OverviewErrorsCount } from './overview_errors_count';
export function OverviewErrors() {
- const { status } = useSelector(selectOverviewStatus);
-
- const loading = !status?.allIds || status?.allIds.length === 0;
-
const { from, to } = useRefreshedRange(6, 'hours');
- const { locations } = useGetUrlParams();
-
- const monitorIds = useMonitorQueryIds();
-
return (
{headingText}
- {loading ? (
-
- ) : (
-
-
-
-
-
-
-
-
- )}
+
+
+
+
+
+
+
+
);
}
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx
index aaebf3e4bb041..e7365ccc7520c 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx
@@ -8,27 +8,23 @@
import { useKibana } from '@kbn/kibana-react-plugin/public';
import React, { useMemo } from 'react';
import { ReportTypes } from '@kbn/exploratory-view-plugin/public';
+import { useMonitorFilters } from '../../../hooks/use_monitor_filters';
import { ERRORS_LABEL } from '../../../../monitor_details/monitor_summary/monitor_errors_count';
import { ClientPluginsStart } from '../../../../../../../plugin';
+import { useMonitorQueryFilters } from '../../../hooks/use_monitor_query_filters';
interface MonitorErrorsCountProps {
from: string;
to: string;
- locationLabel?: string;
- monitorIds: string[];
- locations?: string[];
}
-export const OverviewErrorsCount = ({
- monitorIds,
- from,
- to,
- locations,
-}: MonitorErrorsCountProps) => {
+export const OverviewErrorsCount = ({ from, to }: MonitorErrorsCountProps) => {
const {
exploratoryView: { ExploratoryViewEmbeddable },
} = useKibana().services;
+ const filters = useMonitorFilters({});
+
const time = useMemo(() => ({ from, to }), [from, to]);
return (
@@ -36,17 +32,18 @@ export const OverviewErrorsCount = ({
id="overviewErrorsCount"
align="left"
customHeight="70px"
+ dslFilters={useMonitorQueryFilters()}
reportType={ReportTypes.SINGLE_METRIC}
attributes={[
{
time,
reportDefinitions: {
- 'monitor.id': monitorIds.length > 0 ? monitorIds : ['false-monitor-id'],
- ...(locations?.length ? { 'observer.geo.name': locations } : {}),
+ 'monitor.type': ['http', 'tcp', 'browser', 'icmp'],
},
dataType: 'synthetics',
selectedMetricField: 'monitor_errors',
name: ERRORS_LABEL,
+ filters,
},
]}
/>
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_sparklines.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_sparklines.tsx
index b97e0eef8bbb5..41d6a5bc34d7d 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_sparklines.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_sparklines.tsx
@@ -8,20 +8,21 @@
import { useKibana } from '@kbn/kibana-react-plugin/public';
import React, { useMemo } from 'react';
import { useEuiTheme } from '@elastic/eui';
-import { ClientPluginsStart } from '../../../../../../../plugin';
import { ERRORS_LABEL } from '../../../../monitor_details/monitor_summary/monitor_errors_count';
+import { ClientPluginsStart } from '../../../../../../../plugin';
+import { useMonitorFilters } from '../../../hooks/use_monitor_filters';
+import { useMonitorQueryFilters } from '../../../hooks/use_monitor_query_filters';
interface Props {
from: string;
to: string;
- monitorIds: string[];
- locations?: string[];
}
-export const OverviewErrorsSparklines = ({ from, to, monitorIds, locations }: Props) => {
+export const OverviewErrorsSparklines = ({ from, to }: Props) => {
const {
exploratoryView: { ExploratoryViewEmbeddable },
} = useKibana().services;
+ const filters = useMonitorFilters({});
const { euiTheme } = useEuiTheme();
const time = useMemo(() => ({ from, to }), [from, to]);
@@ -33,19 +34,20 @@ export const OverviewErrorsSparklines = ({ from, to, monitorIds, locations }: Pr
axisTitlesVisibility={{ x: false, yRight: false, yLeft: false }}
legendIsVisible={false}
hideTicks={true}
+ dslFilters={useMonitorQueryFilters()}
attributes={[
{
time,
seriesType: 'area',
reportDefinitions: {
- 'monitor.id': monitorIds.length > 0 ? monitorIds : ['false-monitor-id'],
- ...(locations?.length ? { 'observer.geo.name': locations } : {}),
+ 'monitor.type': ['http', 'tcp', 'browser', 'icmp'],
},
dataType: 'synthetics',
selectedMetricField: 'monitor_errors',
name: ERRORS_LABEL,
color: euiTheme.colors.danger,
operationType: 'unique_count',
+ filters,
},
]}
/>
diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx
index f0612498f8664..507b971c6a40f 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx
@@ -114,7 +114,6 @@ export const OverviewGrid = memo(() => {
return acc;
}, [monitorsSortedByStatus]);
- const listRef: React.LegacyRef> | undefined = React.createRef();
useEffect(() => {
dispatch(refreshOverviewTrends.get());
}, [dispatch, lastRefresh]);
@@ -165,50 +164,52 @@ export const OverviewGrid = memo(() => {
minimumBatchSize={MIN_BATCH_SIZE}
threshold={LIST_THRESHOLD}
>
- {({ onItemsRendered }) => (
-
- {({
- index: listIndex,
- style,
- data: listData,
- }: React.PropsWithChildren>) => {
- setCurrentIndex(listIndex);
- return (
-
- {listData[listIndex].map((_, idx) => (
-
-
-
- ))}
- {listData[listIndex].length % ROW_COUNT !== 0 &&
- // Adds empty items to fill out row
- Array.from({
- length: ROW_COUNT - listData[listIndex].length,
- }).map((_, idx) => )}
-
- );
- }}
-
- )}
+ {({ onItemsRendered, ref }) => {
+ return (
+
+ {({
+ index: listIndex,
+ style,
+ data: listData,
+ }: React.PropsWithChildren>) => {
+ setCurrentIndex(listIndex);
+ return (
+
+ {listData[listIndex].map((_, idx) => (
+
+
+
+ ))}
+ {listData[listIndex].length % ROW_COUNT !== 0 &&
+ // Adds empty items to fill out row
+ Array.from({
+ length: ROW_COUNT - listData[listIndex].length,
+ }).map((_, idx) => )}
+
+ );
+ }}
+
+ );
+ }}
)}
@@ -239,7 +240,6 @@ export const OverviewGrid = memo(() => {
data-test-subj="syntheticsOverviewGridButton"
onClick={() => {
window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
- listRef.current?.scrollToItem(0);
}}
iconType="sortUp"
iconSide="right"
diff --git a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_kibana_space.tsx b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_kibana_space.tsx
index 6dbc979397b30..0b5291e890ecc 100644
--- a/x-pack/plugins/observability_solution/synthetics/public/hooks/use_kibana_space.tsx
+++ b/x-pack/plugins/observability_solution/synthetics/public/hooks/use_kibana_space.tsx
@@ -8,7 +8,7 @@ import type { Space } from '@kbn/spaces-plugin/common';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { useFetcher } from '@kbn/observability-shared-plugin/public';
import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common';
-import { ClientPluginsStart } from '../plugin';
+import type { ClientPluginsStart } from '../plugin';
export const useKibanaSpace = () => {
const { services } = useKibana();
diff --git a/x-pack/plugins/observability_solution/synthetics/server/feature.ts b/x-pack/plugins/observability_solution/synthetics/server/feature.ts
index bf86ac7b0c890..5a4c4d508853b 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/feature.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/feature.ts
@@ -106,6 +106,7 @@ export const syntheticsFeature = {
syntheticsSettingsObjectType,
syntheticsMonitorType,
syntheticsApiKeyObjectType,
+ privateLocationSavedObjectName,
legacyPrivateLocationsSavedObjectName,
// uptime settings object is also registered here since feature is shared between synthetics and uptime
uptimeSettingsObjectType,
diff --git a/x-pack/plugins/observability_solution/synthetics/server/routes/common.ts b/x-pack/plugins/observability_solution/synthetics/server/routes/common.ts
index 2a906f3cf6a4d..24d16d323e480 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/routes/common.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/routes/common.ts
@@ -111,7 +111,7 @@ export const getMonitors = async (
sortField: parseMappingKey(sortField),
sortOrder,
searchFields: SEARCH_FIELDS,
- search: query ? `${query}*` : undefined,
+ search: query,
filter: filtersStr,
searchAfter,
fields,
diff --git a/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/run_once_monitor.ts b/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/run_once_monitor.ts
index 6f7b3427f96f0..2af3a10f39750 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/run_once_monitor.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/run_once_monitor.ts
@@ -6,6 +6,7 @@
*/
import { schema } from '@kbn/config-schema';
import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common';
+import { isEmpty } from 'lodash';
import { PrivateLocationAttributes } from '../../runtime_types/private_locations';
import { getPrivateLocationsForMonitor } from '../monitor_cruds/add_monitor/utils';
import { SyntheticsRestApiRouteFactory } from '../types';
@@ -31,6 +32,9 @@ export const runOnceSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () =
}): Promise => {
const monitor = request.body as MonitorFields;
const { monitorId } = request.params;
+ if (isEmpty(monitor)) {
+ return response.badRequest({ body: { message: 'Monitor data is empty.' } });
+ }
const validationResult = validateMonitor(monitor);
diff --git a/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/test_now_monitor.ts b/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/test_now_monitor.ts
index 3f878b10ac8f8..d1a1513ae85c8 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/test_now_monitor.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/routes/synthetics_service/test_now_monitor.ts
@@ -6,6 +6,8 @@
*/
import { schema } from '@kbn/config-schema';
import { v4 as uuidv4 } from 'uuid';
+import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-server';
+import { IKibanaResponse } from '@kbn/core-http-server';
import { getDecryptedMonitor } from '../../saved_objects/synthetics_monitor';
import { PrivateLocationAttributes } from '../../runtime_types/private_locations';
import { RouteContext, SyntheticsRestApiRouteFactory } from '../types';
@@ -14,6 +16,7 @@ import { ConfigKey, MonitorFields } from '../../../common/runtime_types';
import { SYNTHETICS_API_URLS } from '../../../common/constants';
import { normalizeSecrets } from '../../synthetics_service/utils/secrets';
import { getPrivateLocationsForMonitor } from '../monitor_cruds/add_monitor/utils';
+import { getMonitorNotFoundResponse } from './service_errors';
export const testNowMonitorRoute: SyntheticsRestApiRouteFactory = () => ({
method: 'POST',
@@ -33,48 +36,56 @@ export const testNowMonitorRoute: SyntheticsRestApiRouteFactory
export const triggerTestNow = async (
monitorId: string,
routeContext: RouteContext
-): Promise => {
- const { server, spaceId, syntheticsMonitorClient, savedObjectsClient } = routeContext;
+): Promise> => {
+ const { server, spaceId, syntheticsMonitorClient, savedObjectsClient, response } = routeContext;
- const monitorWithSecrets = await getDecryptedMonitor(server, monitorId, spaceId);
- const normalizedMonitor = normalizeSecrets(monitorWithSecrets);
+ try {
+ const monitorWithSecrets = await getDecryptedMonitor(server, monitorId, spaceId);
+ const normalizedMonitor = normalizeSecrets(monitorWithSecrets);
- const { [ConfigKey.SCHEDULE]: schedule, [ConfigKey.LOCATIONS]: locations } =
- monitorWithSecrets.attributes;
+ const { [ConfigKey.SCHEDULE]: schedule, [ConfigKey.LOCATIONS]: locations } =
+ monitorWithSecrets.attributes;
- const privateLocations: PrivateLocationAttributes[] = await getPrivateLocationsForMonitor(
- savedObjectsClient,
- normalizedMonitor.attributes
- );
- const testRunId = uuidv4();
+ const privateLocations: PrivateLocationAttributes[] = await getPrivateLocationsForMonitor(
+ savedObjectsClient,
+ normalizedMonitor.attributes
+ );
+ const testRunId = uuidv4();
- const [, errors] = await syntheticsMonitorClient.testNowConfigs(
- {
- monitor: normalizedMonitor.attributes as MonitorFields,
- id: monitorId,
- testRunId,
- },
- savedObjectsClient,
- privateLocations,
- spaceId
- );
+ const [, errors] = await syntheticsMonitorClient.testNowConfigs(
+ {
+ monitor: normalizedMonitor.attributes as MonitorFields,
+ id: monitorId,
+ testRunId,
+ },
+ savedObjectsClient,
+ privateLocations,
+ spaceId
+ );
+
+ if (errors && errors?.length > 0) {
+ return {
+ errors,
+ testRunId,
+ schedule,
+ locations,
+ configId: monitorId,
+ monitor: normalizedMonitor.attributes,
+ };
+ }
- if (errors && errors?.length > 0) {
return {
- errors,
testRunId,
schedule,
locations,
configId: monitorId,
monitor: normalizedMonitor.attributes,
};
- }
+ } catch (getErr) {
+ if (SavedObjectsErrorHelpers.isNotFoundError(getErr)) {
+ return getMonitorNotFoundResponse(response, monitorId);
+ }
- return {
- testRunId,
- schedule,
- locations,
- configId: monitorId,
- monitor: normalizedMonitor.attributes,
- };
+ throw getErr;
+ }
};
diff --git a/x-pack/plugins/observability_solution/synthetics/server/server.ts b/x-pack/plugins/observability_solution/synthetics/server/server.ts
index 77937c57590e7..9ba4341ecad30 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/server.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/server.ts
@@ -21,7 +21,7 @@ export const initSyntheticsServer = (
) => {
const { router } = server;
syntheticsAppRestApiRoutes.forEach((route) => {
- const { method, options, handler, validate, path } = syntheticsRouteWrapper(
+ const { method, options, handler, validate, path, security } = syntheticsRouteWrapper(
createSyntheticsRouteWithAuth(route),
server,
syntheticsMonitorClient
@@ -30,6 +30,7 @@ export const initSyntheticsServer = (
const routeDefinition = {
path,
validate,
+ security,
options,
};
@@ -52,11 +53,8 @@ export const initSyntheticsServer = (
});
syntheticsAppPublicRestApiRoutes.forEach((route) => {
- const { method, options, handler, validate, path, validation } = syntheticsRouteWrapper(
- createSyntheticsRouteWithAuth(route),
- server,
- syntheticsMonitorClient
- );
+ const { method, options, handler, validate, path, validation, security } =
+ syntheticsRouteWrapper(createSyntheticsRouteWithAuth(route), server, syntheticsMonitorClient);
const routeDefinition = {
path,
@@ -70,13 +68,11 @@ export const initSyntheticsServer = (
.get({
access: 'public',
path: routeDefinition.path,
- options: {
- tags: options?.tags,
- },
})
.addVersion(
{
version: '2023-10-31',
+ security,
validate: validation ?? false,
},
handler
@@ -87,13 +83,11 @@ export const initSyntheticsServer = (
.put({
access: 'public',
path: routeDefinition.path,
- options: {
- tags: options?.tags,
- },
})
.addVersion(
{
version: '2023-10-31',
+ security,
validate: validation ?? false,
},
handler
@@ -104,13 +98,11 @@ export const initSyntheticsServer = (
.post({
access: 'public',
path: routeDefinition.path,
- options: {
- tags: options?.tags,
- },
})
.addVersion(
{
version: '2023-10-31',
+ security,
validate: validation ?? false,
},
handler
@@ -128,6 +120,7 @@ export const initSyntheticsServer = (
.addVersion(
{
version: '2023-10-31',
+ security,
validate: validation ?? false,
},
handler
diff --git a/x-pack/plugins/observability_solution/synthetics/server/synthetics_route_wrapper.ts b/x-pack/plugins/observability_solution/synthetics/server/synthetics_route_wrapper.ts
index a0785b4486912..7091f85ac3f43 100644
--- a/x-pack/plugins/observability_solution/synthetics/server/synthetics_route_wrapper.ts
+++ b/x-pack/plugins/observability_solution/synthetics/server/synthetics_route_wrapper.ts
@@ -20,9 +20,13 @@ export const syntheticsRouteWrapper: SyntheticsRouteWrapper = (
) => ({
...uptimeRoute,
options: {
- tags: ['access:uptime-read', ...(uptimeRoute?.writeAccess ? ['access:uptime-write'] : [])],
...(uptimeRoute.options ?? {}),
},
+ security: {
+ authz: {
+ requiredPrivileges: ['uptime-read', ...(uptimeRoute?.writeAccess ? ['uptime-write'] : [])],
+ },
+ },
handler: async (context, request, response) => {
const { elasticsearch, savedObjects, uiSettings } = await context.core;
diff --git a/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/routes/uptime_route_wrapper.ts b/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/routes/uptime_route_wrapper.ts
index 2590db8524105..58b20dba1c471 100644
--- a/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/routes/uptime_route_wrapper.ts
+++ b/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/routes/uptime_route_wrapper.ts
@@ -12,11 +12,12 @@ import { UptimeEsClient } from '../lib/lib';
export const uptimeRouteWrapper: UMKibanaRouteWrapper = (uptimeRoute, server) => ({
...uptimeRoute,
options: {
- tags: [
- 'oas-tag:uptime',
- 'access:uptime-read',
- ...(uptimeRoute?.writeAccess ? ['access:uptime-write'] : []),
- ],
+ tags: ['oas-tag:uptime'],
+ },
+ security: {
+ authz: {
+ requiredPrivileges: ['uptime-read', ...(uptimeRoute?.writeAccess ? ['uptime-write'] : [])],
+ },
},
handler: async (context, request, response) => {
const coreContext = await context.core;
diff --git a/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/uptime_server.ts b/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/uptime_server.ts
index b8a9b56c2a909..32feb62fcb0fd 100644
--- a/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/uptime_server.ts
+++ b/x-pack/plugins/observability_solution/uptime/server/legacy_uptime/uptime_server.ts
@@ -41,7 +41,7 @@ export const initUptimeServer = (
router: UptimeRouter
) => {
legacyUptimeRestApiRoutes.forEach((route) => {
- const { method, options, handler, validate, path } = uptimeRouteWrapper(
+ const { method, options, handler, validate, path, security } = uptimeRouteWrapper(
createRouteWithAuth(libs, route),
server
);
@@ -50,6 +50,7 @@ export const initUptimeServer = (
path,
validate,
options,
+ security,
};
switch (method) {
@@ -71,26 +72,20 @@ export const initUptimeServer = (
});
legacyUptimePublicRestApiRoutes.forEach((route) => {
- const { method, options, handler, path, ...rest } = uptimeRouteWrapper(
+ const { method, options, handler, path, security, ...rest } = uptimeRouteWrapper(
createRouteWithAuth(libs, route),
server
);
const validate = rest.validate ? getRequestValidation(rest.validate) : rest.validate;
- const routeDefinition = {
- path,
- validate,
- options,
- };
-
switch (method) {
case 'GET':
router.versioned
.get({
access: 'public',
description: `Get uptime settings`,
- path: routeDefinition.path,
+ path,
options: {
tags: options?.tags,
},
@@ -98,6 +93,7 @@ export const initUptimeServer = (
.addVersion(
{
version: INITIAL_REST_VERSION,
+ security,
validate: {
request: {
body: validate ? validate?.body : undefined,
@@ -117,7 +113,7 @@ export const initUptimeServer = (
.put({
access: 'public',
description: `Update uptime settings`,
- path: routeDefinition.path,
+ path,
options: {
tags: options?.tags,
},
@@ -125,6 +121,7 @@ export const initUptimeServer = (
.addVersion(
{
version: INITIAL_REST_VERSION,
+ security,
validate: {
request: {
body: validate ? validate?.body : undefined,
diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts
index efb725bff3d5f..4d8a83d8d6b5f 100644
--- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts
+++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts
@@ -24,227 +24,232 @@ import {
import { clickRuleName, inputQuery, typeInECSFieldInput } from '../../tasks/live_query';
import { closeDateTabIfVisible, closeToastIfVisible } from '../../tasks/integrations';
-describe('Alert Event Details - Response Actions Form', { tags: ['@ess', '@serverless'] }, () => {
- let multiQueryPackId: string;
- let multiQueryPackName: string;
- let ruleId: string;
- let ruleName: string;
- let packId: string;
- let packName: string;
- const packData = packFixture();
- const multiQueryPackData = multiQueryPackFixture();
- before(() => {
- initializeDataViews();
- });
- beforeEach(() => {
- loadPack(packData).then((data) => {
- packId = data.saved_object_id;
- packName = data.name;
- });
- loadPack(multiQueryPackData).then((data) => {
- multiQueryPackId = data.saved_object_id;
- multiQueryPackName = data.name;
- });
- loadRule().then((data) => {
- ruleId = data.id;
- ruleName = data.name;
- });
- });
- afterEach(() => {
- cleanupPack(packId);
- cleanupPack(multiQueryPackId);
- cleanupRule(ruleId);
- });
-
- it('adds response actions with osquery with proper validation and form values', () => {
- cy.visit('/app/security/rules');
- clickRuleName(ruleName);
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- cy.getBySel('editRuleSettingsLink').click();
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- closeDateTabIfVisible();
- cy.getBySel('edit-rule-actions-tab').click();
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- cy.contains('Response actions are run on each rule execution.');
- cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
-
- cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
- cy.contains('Query is a required field');
- cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
- });
-
- // check if changing error state of one input doesn't clear other errors - START
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.contains('Advanced').click();
- cy.getBySel('timeout-input').clear();
- cy.contains('The timeout value must be 60 seconds or higher.');
- });
-
- cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
- cy.contains('Query is a required field');
- cy.contains('The timeout value must be 60 seconds or higher.');
- });
-
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.getBySel('timeout-input').type('6');
- cy.contains('The timeout value must be 60 seconds or higher.');
- });
- cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
- cy.contains('Query is a required field');
- cy.contains('The timeout value must be 60 seconds or higher.');
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.getBySel('timeout-input').type('6');
- cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
- });
- cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
- cy.contains('Query is a required field');
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.getBySel('timeout-input').type('6');
- });
- cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
- cy.contains('Query is a required field');
- cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
- });
- // check if changing error state of one input doesn't clear other errors - END
+// FLAKY: https://github.com/elastic/kibana/issues/169785
+describe.skip(
+ 'Alert Event Details - Response Actions Form',
+ { tags: ['@ess', '@serverless'] },
+ () => {
+ let multiQueryPackId: string;
+ let multiQueryPackName: string;
+ let ruleId: string;
+ let ruleName: string;
+ let packId: string;
+ let packName: string;
+ const packData = packFixture();
+ const multiQueryPackData = multiQueryPackFixture();
+ before(() => {
+ initializeDataViews();
+ });
+ beforeEach(() => {
+ loadPack(packData).then((data) => {
+ packId = data.saved_object_id;
+ packName = data.name;
+ });
+ loadPack(multiQueryPackData).then((data) => {
+ multiQueryPackId = data.saved_object_id;
+ multiQueryPackName = data.name;
+ });
+ loadRule().then((data) => {
+ ruleId = data.id;
+ ruleName = data.name;
+ });
+ });
+ afterEach(() => {
+ cleanupPack(packId);
+ cleanupPack(multiQueryPackId);
+ cleanupRule(ruleId);
+ });
+
+ it('adds response actions with osquery with proper validation and form values', () => {
+ cy.visit('/app/security/rules');
+ clickRuleName(ruleName);
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ cy.getBySel('editRuleSettingsLink').click();
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ closeDateTabIfVisible();
+ cy.getBySel('edit-rule-actions-tab').click();
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ cy.contains('Response actions are run on each rule execution.');
+ cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
+
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
+ cy.contains('Query is a required field');
+ cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
+ });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.contains('Query is a required field');
- inputQuery('select * from uptime1');
- });
- cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
- cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
- cy.contains('Run a set of queries in a pack').click();
- });
- cy.getBySel(RESPONSE_ACTIONS_ERRORS)
- .within(() => {
- cy.contains('Pack is a required field');
- })
- .should('exist');
- cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
- cy.contains('Pack is a required field');
- cy.getBySel('comboBoxInput').click();
- cy.getBySel('comboBoxInput').type(`${packName}`);
- cy.contains(`doesn't match any options`).should('not.exist');
- cy.getBySel('comboBoxInput').type('{downArrow}{enter}');
- });
+ // check if changing error state of one input doesn't clear other errors - START
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.contains('Advanced').click();
+ cy.getBySel('timeout-input').clear();
+ cy.contains('The timeout value must be 60 seconds or higher.');
+ });
- cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
+ cy.contains('Query is a required field');
+ cy.contains('The timeout value must be 60 seconds or higher.');
+ });
+
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.getBySel('timeout-input').type('6');
+ cy.contains('The timeout value must be 60 seconds or higher.');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
+ cy.contains('Query is a required field');
+ cy.contains('The timeout value must be 60 seconds or higher.');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.getBySel('timeout-input').type('6');
+ cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
+ cy.contains('Query is a required field');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.getBySel('timeout-input').type('6');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS).within(() => {
+ cy.contains('Query is a required field');
+ cy.contains('The timeout value must be 60 seconds or higher.').should('not.exist');
+ });
+ // check if changing error state of one input doesn't clear other errors - END
- cy.getBySel(RESPONSE_ACTIONS_ITEM_2)
- .within(() => {
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
cy.contains('Query is a required field');
- inputQuery('select * from uptime');
- cy.contains('Query is a required field').should('not.exist');
- cy.contains('Advanced').click();
- typeInECSFieldInput('label{downArrow}{enter}');
- cy.getBySel('osqueryColumnValueSelect').type('days{downArrow}{enter}');
- })
- .clickOutside();
-
- cy.getBySel('ruleEditSubmitButton').click();
- cy.contains(`${ruleName} was saved`).should('exist');
- closeToastIfVisible();
-
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- cy.getBySel('editRuleSettingsLink').click();
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- cy.getBySel('edit-rule-actions-tab').click();
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.contains('select * from uptime1');
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => {
- cy.contains('select * from uptime');
- cy.contains('Custom key/value pairs. e.g. {"application":"foo-bar","env":"production"}');
- cy.contains('Days of uptime');
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
- cy.getBySel('comboBoxSearchInput').should('have.value', packName);
- cy.getBySel('comboBoxInput').type('{selectall}{backspace}{enter}');
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
- cy.contains('select * from uptime1');
- cy.getBySel('remove-response-action').click();
- });
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0)
- .within(() => {
- cy.getBySel('comboBoxSearchInput').click();
- cy.contains('Search for a pack to run');
+ inputQuery('select * from uptime1');
+ });
+ cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
+ cy.contains('Run a set of queries in a pack').click();
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ERRORS)
+ .within(() => {
+ cy.contains('Pack is a required field');
+ })
+ .should('exist');
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
cy.contains('Pack is a required field');
- cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`);
- cy.contains(packName);
- })
- .clickOutside();
- cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
- cy.contains('select * from uptime');
- cy.contains('Custom key/value pairs. e.g. {"application":"foo-bar","env":"production"}');
- cy.contains('Days of uptime');
- });
-
- cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleSingleQuery');
-
- cy.getBySel('ruleEditSubmitButton').click();
- cy.wait('@saveRuleSingleQuery', { timeout: 15000 }).should(({ request }) => {
- const oneQuery = [
- {
- interval: 3600,
- query: 'select * from uptime;',
- id: Object.keys(packData.queries)[0],
- },
- ];
- expect(request.body.response_actions[0].params.queries).to.deep.equal(oneQuery);
- });
-
- cy.contains(`${ruleName} was saved`).should('exist');
- closeToastIfVisible();
-
- cy.getBySel('globalLoadingIndicator').should('not.exist');
- cy.getBySel('editRuleSettingsLink').click();
- cy.getBySel('globalLoadingIndicator').should('not.exist');
-
- cy.getBySel('edit-rule-actions-tab').click();
- cy.getBySel(RESPONSE_ACTIONS_ITEM_0)
- .within(() => {
+ cy.getBySel('comboBoxInput').click();
+ cy.getBySel('comboBoxInput').type(`${packName}`);
+ cy.contains(`doesn't match any options`).should('not.exist');
+ cy.getBySel('comboBoxInput').type('{downArrow}{enter}');
+ });
+
+ cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click();
+
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_2)
+ .within(() => {
+ cy.contains('Query is a required field');
+ inputQuery('select * from uptime');
+ cy.contains('Query is a required field').should('not.exist');
+ cy.contains('Advanced').click();
+ typeInECSFieldInput('label{downArrow}{enter}');
+ cy.getBySel('osqueryColumnValueSelect').type('days{downArrow}{enter}');
+ })
+ .clickOutside();
+
+ cy.getBySel('ruleEditSubmitButton').click();
+ cy.contains(`${ruleName} was saved`).should('exist');
+ closeToastIfVisible();
+
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ cy.getBySel('editRuleSettingsLink').click();
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ cy.getBySel('edit-rule-actions-tab').click();
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.contains('select * from uptime1');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => {
+ cy.contains('select * from uptime');
+ cy.contains('Custom key/value pairs. e.g. {"application":"foo-bar","env":"production"}');
+ cy.contains('Days of uptime');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
cy.getBySel('comboBoxSearchInput').should('have.value', packName);
- cy.getBySel('comboBoxInput').type(
- `{selectall}{backspace}${multiQueryPackName}{downArrow}{enter}`
- );
- cy.contains('SELECT * FROM memory_info;');
- cy.contains('SELECT * FROM system_info;');
- })
- .clickOutside();
-
- cy.getBySel(RESPONSE_ACTIONS_ITEM_1)
- .within(() => {
+ cy.getBySel('comboBoxInput').type('{selectall}{backspace}{enter}');
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => {
+ cy.contains('select * from uptime1');
+ cy.getBySel('remove-response-action').click();
+ });
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0)
+ .within(() => {
+ cy.getBySel('comboBoxSearchInput').click();
+ cy.contains('Search for a pack to run');
+ cy.contains('Pack is a required field');
+ cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`);
+ cy.contains(packName);
+ })
+ .clickOutside();
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => {
cy.contains('select * from uptime');
cy.contains('Custom key/value pairs. e.g. {"application":"foo-bar","env":"production"}');
cy.contains('Days of uptime');
- })
- .clickOutside();
- cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleMultiQuery');
-
- cy.contains('Save changes').click();
- cy.wait('@saveRuleMultiQuery', { timeout: 15000 }).should(({ request }) => {
- const threeQueries = [
- {
- interval: 3600,
- query: 'SELECT * FROM memory_info;',
- platform: 'linux',
- id: Object.keys(multiQueryPackData.queries)[0],
- },
- {
- interval: 3600,
- query: 'SELECT * FROM system_info;',
- id: Object.keys(multiQueryPackData.queries)[1],
- },
- {
- interval: 10,
- query: 'select opera_extensions.* from users join opera_extensions using (uid);',
- id: Object.keys(multiQueryPackData.queries)[2],
- },
- ];
- expect(request.body.response_actions[0].params.queries).to.deep.equal(threeQueries);
- });
- });
-});
+ });
+
+ cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleSingleQuery');
+
+ cy.getBySel('ruleEditSubmitButton').click();
+ cy.wait('@saveRuleSingleQuery', { timeout: 15000 }).should(({ request }) => {
+ const oneQuery = [
+ {
+ interval: 3600,
+ query: 'select * from uptime;',
+ id: Object.keys(packData.queries)[0],
+ },
+ ];
+ expect(request.body.response_actions[0].params.queries).to.deep.equal(oneQuery);
+ });
+
+ cy.contains(`${ruleName} was saved`).should('exist');
+ closeToastIfVisible();
+
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+ cy.getBySel('editRuleSettingsLink').click();
+ cy.getBySel('globalLoadingIndicator').should('not.exist');
+
+ cy.getBySel('edit-rule-actions-tab').click();
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_0)
+ .within(() => {
+ cy.getBySel('comboBoxSearchInput').should('have.value', packName);
+ cy.getBySel('comboBoxInput').type(
+ `{selectall}{backspace}${multiQueryPackName}{downArrow}{enter}`
+ );
+ cy.contains('SELECT * FROM memory_info;');
+ cy.contains('SELECT * FROM system_info;');
+ })
+ .clickOutside();
+
+ cy.getBySel(RESPONSE_ACTIONS_ITEM_1)
+ .within(() => {
+ cy.contains('select * from uptime');
+ cy.contains('Custom key/value pairs. e.g. {"application":"foo-bar","env":"production"}');
+ cy.contains('Days of uptime');
+ })
+ .clickOutside();
+ cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleMultiQuery');
+
+ cy.contains('Save changes').click();
+ cy.wait('@saveRuleMultiQuery', { timeout: 15000 }).should(({ request }) => {
+ const threeQueries = [
+ {
+ interval: 3600,
+ query: 'SELECT * FROM memory_info;',
+ platform: 'linux',
+ id: Object.keys(multiQueryPackData.queries)[0],
+ },
+ {
+ interval: 3600,
+ query: 'SELECT * FROM system_info;',
+ id: Object.keys(multiQueryPackData.queries)[1],
+ },
+ {
+ interval: 10,
+ query: 'select opera_extensions.* from users join opera_extensions using (uid);',
+ id: Object.keys(multiQueryPackData.queries)[2],
+ },
+ ];
+ expect(request.body.response_actions[0].params.queries).to.deep.equal(threeQueries);
+ });
+ });
+ }
+);
diff --git a/x-pack/plugins/osquery/server/routes/asset/get_assets_status_route.ts b/x-pack/plugins/osquery/server/routes/asset/get_assets_status_route.ts
index f217b60bf2459..ab7a52c6fca68 100644
--- a/x-pack/plugins/osquery/server/routes/asset/get_assets_status_route.ts
+++ b/x-pack/plugins/osquery/server/routes/asset/get_assets_status_route.ts
@@ -23,7 +23,11 @@ export const getAssetsStatusRoute = (router: IRouter, osqueryContext: OsqueryApp
.get({
access: 'internal',
path: '/internal/osquery/assets',
- options: { tags: [`access:${PLUGIN_ID}-writePacks`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writePacks`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/asset/update_assets_route.ts b/x-pack/plugins/osquery/server/routes/asset/update_assets_route.ts
index 690ea4206b84a..7c8ccc5bb0ba4 100644
--- a/x-pack/plugins/osquery/server/routes/asset/update_assets_route.ts
+++ b/x-pack/plugins/osquery/server/routes/asset/update_assets_route.ts
@@ -28,7 +28,11 @@ export const updateAssetsRoute = (router: IRouter, osqueryContext: OsqueryAppCon
.post({
access: 'internal',
path: '/internal/osquery/assets/update',
- options: { tags: [`access:${PLUGIN_ID}-writePacks`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writePacks`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_details.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_details.ts
index c1d445fd40183..2bf8eea1811c1 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_details.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_details.ts
@@ -17,7 +17,11 @@ export const getAgentDetailsRoute = (router: IRouter, osqueryContext: OsqueryApp
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/agents/{id}',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policies.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policies.ts
index 64b10f0a8248e..e347299b42d3b 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policies.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policies.ts
@@ -21,7 +21,11 @@ export const getAgentPoliciesRoute = (router: IRouter, osqueryContext: OsqueryAp
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/agent_policies',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policy.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policy.ts
index bad5b01289d52..9535b36ed3e2b 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policy.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_policy.ts
@@ -18,7 +18,11 @@ export const getAgentPolicyRoute = (router: IRouter, osqueryContext: OsqueryAppC
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/agent_policies/{id}',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_status_for_agent_policy.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_status_for_agent_policy.ts
index 64cd9d9f8ddd0..bfc77e9d6d6ae 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_status_for_agent_policy.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agent_status_for_agent_policy.ts
@@ -28,7 +28,11 @@ export const getAgentStatusForAgentPolicyRoute = (
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/agent_status',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agents.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agents.ts
index 195e550077aa8..a04967a3e3c7c 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agents.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_agents.ts
@@ -26,7 +26,11 @@ export const getAgentsRoute = (router: IRouter, osqueryContext: OsqueryAppContex
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/agents',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts
index 86719125b97eb..748c9102d6366 100644
--- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts
+++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts
@@ -17,7 +17,11 @@ export const getPackagePoliciesRoute = (router: IRouter, osqueryContext: Osquery
.get({
access: 'internal',
path: '/internal/osquery/fleet_wrapper/package_policies',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/live_query/find_live_query_route.ts b/x-pack/plugins/osquery/server/routes/live_query/find_live_query_route.ts
index 008964f2468b5..b89a69e5aeb24 100644
--- a/x-pack/plugins/osquery/server/routes/live_query/find_live_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/live_query/find_live_query_route.ts
@@ -29,7 +29,12 @@ export const findLiveQueryRoute = (router: IRouter) =
.get({
access: 'public',
path: '/api/osquery/live_queries',
- options: { tags: ['api', `access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
+ options: { tags: ['api'] },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/live_query/get_live_query_details_route.ts b/x-pack/plugins/osquery/server/routes/live_query/get_live_query_details_route.ts
index 2b32a3269b693..7406887ecb594 100644
--- a/x-pack/plugins/osquery/server/routes/live_query/get_live_query_details_route.ts
+++ b/x-pack/plugins/osquery/server/routes/live_query/get_live_query_details_route.ts
@@ -34,7 +34,11 @@ export const getLiveQueryDetailsRoute = (router: IRouter {
.get({
access: 'public',
path: '/api/osquery/packs',
- options: { tags: [`access:${PLUGIN_ID}-readPacks`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-readPacks`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/pack/read_pack_route.ts b/x-pack/plugins/osquery/server/routes/pack/read_pack_route.ts
index 724deedf19845..4ec3e6806a55c 100644
--- a/x-pack/plugins/osquery/server/routes/pack/read_pack_route.ts
+++ b/x-pack/plugins/osquery/server/routes/pack/read_pack_route.ts
@@ -25,7 +25,11 @@ export const readPackRoute = (router: IRouter) => {
.get({
access: 'public',
path: '/api/osquery/packs/{id}',
- options: { tags: [`access:${PLUGIN_ID}-readPacks`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-readPacks`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/pack/update_pack_route.ts b/x-pack/plugins/osquery/server/routes/pack/update_pack_route.ts
index 532aa2c772732..0872a16c5bb05 100644
--- a/x-pack/plugins/osquery/server/routes/pack/update_pack_route.ts
+++ b/x-pack/plugins/osquery/server/routes/pack/update_pack_route.ts
@@ -44,7 +44,11 @@ export const updatePackRoute = (router: IRouter, osqueryContext: OsqueryAppConte
.put({
access: 'public',
path: '/api/osquery/packs/{id}',
- options: { tags: [`access:${PLUGIN_ID}-writePacks`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writePacks`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/privileges_check/privileges_check_route.ts b/x-pack/plugins/osquery/server/routes/privileges_check/privileges_check_route.ts
index b31da0c0e24da..2470b2f0c418e 100644
--- a/x-pack/plugins/osquery/server/routes/privileges_check/privileges_check_route.ts
+++ b/x-pack/plugins/osquery/server/routes/privileges_check/privileges_check_route.ts
@@ -15,8 +15,10 @@ export const privilegesCheckRoute = (router: IRouter, osqueryContext: OsqueryApp
.get({
access: 'internal',
path: '/internal/osquery/privileges_check',
- options: {
- tags: [`access:${PLUGIN_ID}-readLiveQueries`],
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-readLiveQueries`],
+ },
},
})
.addVersion(
diff --git a/x-pack/plugins/osquery/server/routes/saved_query/create_saved_query_route.ts b/x-pack/plugins/osquery/server/routes/saved_query/create_saved_query_route.ts
index 1be4cb24a2ea3..35d3b34b1ca8c 100644
--- a/x-pack/plugins/osquery/server/routes/saved_query/create_saved_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/saved_query/create_saved_query_route.ts
@@ -23,7 +23,11 @@ export const createSavedQueryRoute = (router: IRouter, osqueryContext: OsqueryAp
.post({
access: 'public',
path: '/api/osquery/saved_queries',
- options: { tags: [`access:${PLUGIN_ID}-writeSavedQueries`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writeSavedQueries`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/saved_query/delete_saved_query_route.ts b/x-pack/plugins/osquery/server/routes/saved_query/delete_saved_query_route.ts
index f33040e167c62..1d76bcf2d4711 100644
--- a/x-pack/plugins/osquery/server/routes/saved_query/delete_saved_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/saved_query/delete_saved_query_route.ts
@@ -20,7 +20,11 @@ export const deleteSavedQueryRoute = (router: IRouter, osqueryContext: OsqueryAp
.delete({
access: 'public',
path: '/api/osquery/saved_queries/{id}',
- options: { tags: [`access:${PLUGIN_ID}-writeSavedQueries`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writeSavedQueries`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/saved_query/find_saved_query_route.ts b/x-pack/plugins/osquery/server/routes/saved_query/find_saved_query_route.ts
index 88ccc120d0fd6..02d4b0229fd18 100644
--- a/x-pack/plugins/osquery/server/routes/saved_query/find_saved_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/saved_query/find_saved_query_route.ts
@@ -25,7 +25,11 @@ export const findSavedQueryRoute = (router: IRouter, osqueryContext: OsqueryAppC
.get({
access: 'public',
path: '/api/osquery/saved_queries',
- options: { tags: [`access:${PLUGIN_ID}-readSavedQueries`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-readSavedQueries`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/saved_query/read_saved_query_route.ts b/x-pack/plugins/osquery/server/routes/saved_query/read_saved_query_route.ts
index 706304300c40a..e3100baa4b3f1 100644
--- a/x-pack/plugins/osquery/server/routes/saved_query/read_saved_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/saved_query/read_saved_query_route.ts
@@ -23,7 +23,11 @@ export const readSavedQueryRoute = (router: IRouter, osqueryContext: OsqueryAppC
.get({
access: 'public',
path: '/api/osquery/saved_queries/{id}',
- options: { tags: [`access:${PLUGIN_ID}-readSavedQueries`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-readSavedQueries`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/saved_query/update_saved_query_route.ts b/x-pack/plugins/osquery/server/routes/saved_query/update_saved_query_route.ts
index 4225f0f223cd3..12dd5b2bf73d6 100644
--- a/x-pack/plugins/osquery/server/routes/saved_query/update_saved_query_route.ts
+++ b/x-pack/plugins/osquery/server/routes/saved_query/update_saved_query_route.ts
@@ -30,7 +30,11 @@ export const updateSavedQueryRoute = (router: IRouter, osqueryContext: OsqueryAp
.put({
access: 'public',
path: '/api/osquery/saved_queries/{id}',
- options: { tags: [`access:${PLUGIN_ID}-writeSavedQueries`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-writeSavedQueries`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/osquery/server/routes/status/create_status_route.ts b/x-pack/plugins/osquery/server/routes/status/create_status_route.ts
index 8b6f75100a371..b6e6f988f454d 100644
--- a/x-pack/plugins/osquery/server/routes/status/create_status_route.ts
+++ b/x-pack/plugins/osquery/server/routes/status/create_status_route.ts
@@ -27,7 +27,11 @@ export const createStatusRoute = (router: IRouter, osqueryContext: OsqueryAppCon
.get({
access: 'internal',
path: '/internal/osquery/status',
- options: { tags: [`access:${PLUGIN_ID}-read`] },
+ security: {
+ authz: {
+ requiredPrivileges: [`${PLUGIN_ID}-read`],
+ },
+ },
})
.addVersion(
{
diff --git a/x-pack/plugins/search_inference_endpoints/public/components/all_inference_endpoints/constants.ts b/x-pack/plugins/search_inference_endpoints/public/components/all_inference_endpoints/constants.ts
index 37c65ebb9a314..7ce1e578f1db0 100644
--- a/x-pack/plugins/search_inference_endpoints/public/components/all_inference_endpoints/constants.ts
+++ b/x-pack/plugins/search_inference_endpoints/public/components/all_inference_endpoints/constants.ts
@@ -34,8 +34,3 @@ export const DEFAULT_INFERENCE_ENDPOINTS_TABLE_STATE: AllInferenceEndpointsTable
};
export const PIPELINE_URL = 'ingest/ingest_pipelines';
-
-export const PRECONFIGURED_ENDPOINTS = {
- ELSER: '.elser-2-elasticsearch',
- E5: '.multilingual-e5-small-elasticsearch',
-};
diff --git a/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.test.ts b/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.test.ts
index b853109352dd9..9bb3505fffbe4 100644
--- a/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.test.ts
+++ b/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.test.ts
@@ -5,16 +5,15 @@
* 2.0.
*/
-import { PRECONFIGURED_ENDPOINTS } from '../components/all_inference_endpoints/constants';
import { isEndpointPreconfigured } from './preconfigured_endpoint_helper';
describe('Preconfigured Endpoint helper', () => {
it('return true for preconfigured elser', () => {
- expect(isEndpointPreconfigured(PRECONFIGURED_ENDPOINTS.ELSER)).toEqual(true);
+ expect(isEndpointPreconfigured('.preconfigured_elser')).toEqual(true);
});
it('return true for preconfigured e5', () => {
- expect(isEndpointPreconfigured(PRECONFIGURED_ENDPOINTS.E5)).toEqual(true);
+ expect(isEndpointPreconfigured('.preconfigured_e5')).toEqual(true);
});
it('return false for other endpoints', () => {
diff --git a/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.ts b/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.ts
index 418e7e95319ef..213a03c0d85aa 100644
--- a/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.ts
+++ b/x-pack/plugins/search_inference_endpoints/public/utils/preconfigured_endpoint_helper.ts
@@ -5,7 +5,4 @@
* 2.0.
*/
-import { PRECONFIGURED_ENDPOINTS } from '../components/all_inference_endpoints/constants';
-
-export const isEndpointPreconfigured = (endpoint: string) =>
- Object.values(PRECONFIGURED_ENDPOINTS).includes(endpoint);
+export const isEndpointPreconfigured = (endpoint: string) => endpoint.startsWith('.');
diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_table.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_table.tsx
index f536b5838bab7..8ceff7f1460f6 100644
--- a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_table.tsx
+++ b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_table.tsx
@@ -274,6 +274,7 @@ export const ApiKeysTable: FunctionComponent = ({
= ({ que
onFilterChange({ ...filters, type: filters.type === 'rest' ? undefined : 'rest' });
}}
withNext={types.includes('cross_cluster') || types.includes('managed')}
+ data-test-subj="personalFilterButton"
>
= ({ que
});
}}
withNext={types.includes('managed')}
+ data-test-subj="crossClusterFilterButton"
>
= ({ que
type: filters.type === 'managed' ? undefined : 'managed',
});
}}
+ data-test-subj="managedFilterButton"
>
= ({
}
}}
withNext={true}
+ data-test-subj="activeFilterButton"
>
= ({
onFilterChange({ ...filters, expired: true });
}
}}
+ data-test-subj="expiredFilterButton"
>
= ({ que
numFilters={usernames.length}
hasActiveFilters={numActiveFilters ? true : false}
numActiveFilters={numActiveFilters}
+ data-test-subj="ownerFilterButton"
>
{
privilegeIndex={this.props.role.kibana.findIndex((k) =>
isGlobalPrivilegeDefinition(k)
)}
+ showAdditionalPermissionsMessage={true}
canCustomizeSubFeaturePrivileges={this.props.canCustomizeSubFeaturePrivileges}
allSpacesSelected
disabled={!this.props.editable}
diff --git a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.test.tsx b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.test.tsx
index fb472191b561d..751db03939dda 100644
--- a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.test.tsx
+++ b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.test.tsx
@@ -19,7 +19,6 @@ import type { Space } from '@kbn/spaces-plugin/public';
import { findTestSubject, mountWithIntl } from '@kbn/test-jest-helpers';
import { PrivilegeSpaceForm } from './privilege_space_form';
-import { SpaceSelector } from './space_selector';
import type { Role } from '../../../../../../../common';
const createRole = (kibana: Role['kibana'] = []): Role => {
@@ -57,7 +56,7 @@ const renderComponent = (props: React.ComponentProps)
};
describe('PrivilegeSpaceForm', () => {
- it('renders an empty form when the role contains no Kibana privileges', () => {
+ it('renders no form when no role is selected', () => {
const role = createRole();
const kibanaPrivileges = createKibanaPrivileges(kibanaFeatures);
@@ -71,40 +70,9 @@ describe('PrivilegeSpaceForm', () => {
onCancel: jest.fn(),
});
- expect(
- wrapper.find(EuiButtonGroup).filter('[name="basePrivilegeButtonGroup"]').props().idSelected
- ).toEqual(`basePrivilege_custom`);
- expect(wrapper.find(FeatureTable).props().disabled).toEqual(true);
- expect(getDisplayedFeaturePrivileges(wrapper)).toMatchInlineSnapshot(`
- Object {
- "excluded_from_base": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- "no_sub_features": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- "with_excluded_sub_features": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- "with_require_all_spaces_for_feature_and_sub_features": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- "with_require_all_spaces_sub_features": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- "with_sub_features": Object {
- "primaryFeaturePrivilege": "none",
- "subFeaturePrivileges": Array [],
- },
- }
- `);
-
- expect(findTestSubject(wrapper, 'spaceFormGlobalPermissionsSupersedeWarning')).toHaveLength(0);
+ expect(wrapper.find(EuiButtonGroup).filter('[name="basePrivilegeButtonGroup"]')).toHaveLength(
+ 0
+ );
});
it('renders when a base privilege is selected', () => {
@@ -232,43 +200,6 @@ describe('PrivilegeSpaceForm', () => {
expect(findTestSubject(wrapper, 'spaceFormGlobalPermissionsSupersedeWarning')).toHaveLength(0);
});
- it('renders a warning when configuring a global privilege after space privileges are already defined', () => {
- const role = createRole([
- {
- base: [],
- feature: {
- with_sub_features: ['read'],
- },
- spaces: ['foo'],
- },
- {
- base: [],
- feature: {
- with_sub_features: ['all'],
- },
- spaces: ['*'],
- },
- ]);
-
- const kibanaPrivileges = createKibanaPrivileges(kibanaFeatures);
-
- const wrapper = renderComponent({
- role,
- spaces: displaySpaces,
- kibanaPrivileges,
- privilegeIndex: -1,
- canCustomizeSubFeaturePrivileges: true,
- onChange: jest.fn(),
- onCancel: jest.fn(),
- });
-
- wrapper.find(SpaceSelector).props().onChange(['*']);
-
- wrapper.update();
-
- expect(findTestSubject(wrapper, 'globalPrivilegeWarning')).toHaveLength(1);
- });
-
it('renders a warning when space privileges are less permissive than configured global privileges', () => {
const role = createRole([
{
diff --git a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.tsx b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.tsx
index 8275a7b1203ab..5946197d35d69 100644
--- a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.tsx
+++ b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/privilege_space_form.tsx
@@ -5,7 +5,6 @@
* 2.0.
*/
-import type { EuiButtonColor } from '@elastic/eui';
import {
EuiButton,
EuiButtonEmpty,
@@ -21,7 +20,6 @@ import {
EuiForm,
EuiFormRow,
EuiSpacer,
- EuiText,
EuiTitle,
} from '@elastic/eui';
import { remove } from 'lodash';
@@ -105,20 +103,19 @@ export class PrivilegeSpaceForm extends Component {
-
+ {this.state.mode === 'create' ? (
+
+ ) : (
+
+ )}
-
-
-
-
-
{this.getForm()}
@@ -180,14 +177,13 @@ export class PrivilegeSpaceForm extends Component {
label={i18n.translate(
'xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormLabel',
{
- defaultMessage: 'Spaces',
+ defaultMessage: 'Select spaces',
}
)}
helpText={i18n.translate(
'xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormHelpText',
{
- defaultMessage:
- 'Select one or more Kibana spaces to which you wish to assign privileges.',
+ defaultMessage: 'Users assigned to this role will gain access to selected spaces.',
}
)}
>
@@ -198,99 +194,85 @@ export class PrivilegeSpaceForm extends Component {
/>
- {this.getPrivilegeCallout()}
-
-
-
-
-
-
-
-
- {this.getFeatureListLabel(this.state.selectedBasePrivilege.length > 0)}
-
-
-
-
-
- {this.getFeatureListDescription(this.state.selectedBasePrivilege.length > 0)}
-
-
-
-
- 0 || !hasSelectedSpaces}
- allSpacesSelected={this.state.selectedSpaceIds.includes(ALL_SPACES_ID)}
- />
-
- {this.requiresGlobalPrivilegeWarning() && (
-
-
-
- }
+ {Boolean(this.state.selectedSpaceIds.length) && (
+ <>
+
+
+
+
+
+
+
+
+ 0 || !hasSelectedSpaces}
+ allSpacesSelected={this.state.selectedSpaceIds.includes(ALL_SPACES_ID)}
/>
-
+ >
)}
);
@@ -298,58 +280,34 @@ export class PrivilegeSpaceForm extends Component {
private getSaveButton = () => {
const { mode } = this.state;
- const isGlobal = this.isDefiningGlobalPrivilege();
let buttonText;
switch (mode) {
case 'create':
- if (isGlobal) {
- buttonText = (
-
- );
- } else {
- buttonText = (
-
- );
- }
+ buttonText = (
+
+ );
break;
case 'update':
- if (isGlobal) {
- buttonText = (
-
- );
- } else {
- buttonText = (
-
- );
- }
+ buttonText = (
+
+ );
break;
default:
throw new Error(`Unsupported mode: ${mode}`);
}
- let buttonColor: EuiButtonColor = 'primary';
- if (this.requiresGlobalPrivilegeWarning()) {
- buttonColor = 'warning';
- }
-
return (
{buttonText}
@@ -357,65 +315,6 @@ export class PrivilegeSpaceForm extends Component {
);
};
- private getFeatureListLabel = (disabled: boolean) => {
- if (disabled) {
- return i18n.translate(
- 'xpack.security.management.editRole.spacePrivilegeForm.summaryOfFeaturePrivileges',
- {
- defaultMessage: 'Summary of feature privileges',
- }
- );
- } else {
- return i18n.translate(
- 'xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivileges',
- {
- defaultMessage: 'Customize by feature',
- }
- );
- }
- };
-
- private getFeatureListDescription = (disabled: boolean) => {
- if (disabled) {
- return i18n.translate(
- 'xpack.security.management.editRole.spacePrivilegeForm.featurePrivilegeSummaryDescription',
- {
- defaultMessage:
- 'Some features might be hidden by the space or affected by a global space privilege.',
- }
- );
- } else {
- return i18n.translate(
- 'xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivilegeDescription',
- {
- defaultMessage:
- 'Increase privilege levels on a per feature basis. Some features might be hidden by the space or affected by a global space privilege.',
- }
- );
- }
- };
-
- private getPrivilegeCallout = () => {
- if (this.isDefiningGlobalPrivilege()) {
- return (
-
-
-
- );
- }
-
- return null;
- };
-
private closeFlyout = () => {
this.props.onCancel();
};
@@ -594,13 +493,4 @@ export class PrivilegeSpaceForm extends Component {
};
private isDefiningGlobalPrivilege = () => this.state.selectedSpaceIds.includes('*');
-
- private requiresGlobalPrivilegeWarning = () => {
- const hasOtherSpacePrivilegesDefined = this.props.role.kibana.length > 0;
- return (
- this.state.mode === 'create' &&
- this.isDefiningGlobalPrivilege() &&
- hasOtherSpacePrivilegesDefined
- );
- };
}
diff --git a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/space_selector.tsx b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/space_selector.tsx
index 99e9edb48d556..d7edbdfa59e8b 100644
--- a/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/space_selector.tsx
+++ b/x-pack/plugins/security/public/management/roles/edit_role/privileges/kibana/space_aware_privilege_section/space_selector.tsx
@@ -57,6 +57,9 @@ export class SpaceSelector extends Component {
aria-label={i18n.translate('xpack.security.management.editRole.spaceSelectorLabel', {
defaultMessage: 'Spaces',
})}
+ placeholder={i18n.translate('xpack.security.management.editRole.spaceSelectorPlaceholder', {
+ defaultMessage: 'Add spaces...',
+ })}
fullWidth
options={this.getOptions()}
renderOption={renderOption}
diff --git a/x-pack/plugins/security/server/session_management/session_index.test.ts b/x-pack/plugins/security/server/session_management/session_index.test.ts
index e1890273469ed..04991f4aeefd6 100644
--- a/x-pack/plugins/security/server/session_management/session_index.test.ts
+++ b/x-pack/plugins/security/server/session_management/session_index.test.ts
@@ -473,6 +473,7 @@ describe('Session index', () => {
expect(mockElasticsearchClient.search).toHaveBeenCalledTimes(1);
expect(mockElasticsearchClient.search).toHaveBeenCalledWith({
_source_includes: 'usernameHash,provider',
+ allow_partial_search_results: true,
sort: '_shard_doc',
track_total_hits: false,
search_after: undefined,
@@ -555,6 +556,7 @@ describe('Session index', () => {
expect(mockElasticsearchClient.search).toHaveBeenCalledTimes(1);
expect(mockElasticsearchClient.search).toHaveBeenCalledWith({
_source_includes: 'usernameHash,provider',
+ allow_partial_search_results: true,
sort: '_shard_doc',
track_total_hits: false,
search_after: undefined,
@@ -649,6 +651,7 @@ describe('Session index', () => {
expect(mockElasticsearchClient.search).toHaveBeenCalledTimes(1);
expect(mockElasticsearchClient.search).toHaveBeenCalledWith({
_source_includes: 'usernameHash,provider',
+ allow_partial_search_results: true,
sort: '_shard_doc',
track_total_hits: false,
search_after: undefined,
@@ -737,6 +740,7 @@ describe('Session index', () => {
expect(mockElasticsearchClient.search).toHaveBeenCalledTimes(1);
expect(mockElasticsearchClient.search).toHaveBeenCalledWith({
_source_includes: 'usernameHash,provider',
+ allow_partial_search_results: true,
sort: '_shard_doc',
track_total_hits: false,
search_after: undefined,
@@ -850,6 +854,7 @@ describe('Session index', () => {
expect(mockElasticsearchClient.search).toHaveBeenCalledTimes(1);
expect(mockElasticsearchClient.search).toHaveBeenCalledWith({
_source_includes: 'usernameHash,provider',
+ allow_partial_search_results: true,
sort: '_shard_doc',
track_total_hits: false,
search_after: undefined,
diff --git a/x-pack/plugins/security/server/session_management/session_index.ts b/x-pack/plugins/security/server/session_management/session_index.ts
index 9f11e9224243c..9166ec9deb91f 100644
--- a/x-pack/plugins/security/server/session_management/session_index.ts
+++ b/x-pack/plugins/security/server/session_management/session_index.ts
@@ -857,6 +857,7 @@ export class SessionIndex {
size: SESSION_INDEX_CLEANUP_BATCH_SIZE,
sort: '_shard_doc',
track_total_hits: false, // for performance
+ allow_partial_search_results: true,
});
const { hits } = searchResponse.hits;
if (hits.length > 0) {
diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/assets_links.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/assets_links.ts
index f4ae848beb25d..c77e0fe7a03e7 100644
--- a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/assets_links.ts
+++ b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/assets_links.ts
@@ -34,7 +34,7 @@ const assetsCloudDefendAppLink: LinkItem = {
landingIcon: IconEcctlLazy,
isBeta: true,
hideTimeline: true,
- links: [], // cloudDefendPolicies link is added in createAssetsLinkFromManage
+ links: [],
};
export const createAssetsLinkFromManage = (manageLink: LinkItem): LinkItem => {
@@ -54,13 +54,7 @@ export const createAssetsLinkFromManage = (manageLink: LinkItem): LinkItem => {
assetsSubLinks.push({ ...endpointsLink, links: endpointsSubLinks });
}
- const cloudPoliciesLink = manageLink.links?.find(
- ({ id }) => id === SecurityPageName.cloudDefendPolicies
- );
- if (cloudPoliciesLink) {
- // Add cloud defend policies link as cloud defend sub link
- assetsSubLinks.push({ ...assetsCloudDefendAppLink, links: [cloudPoliciesLink] });
- }
+ assetsSubLinks.push(assetsCloudDefendAppLink);
return {
...assetsAppLink,
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.test.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.test.tsx
index fff9450b6a1cb..594629e9f9e27 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.test.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.test.tsx
@@ -58,7 +58,7 @@ describe('AlertsPreview', () => {
it('renders', () => {
const { getByTestId } = render(
-
+
);
@@ -68,7 +68,7 @@ describe('AlertsPreview', () => {
it('renders correct alerts number', () => {
const { getByTestId } = render(
-
+
);
@@ -78,7 +78,7 @@ describe('AlertsPreview', () => {
it('should render the correct number of distribution bar section based on the number of severities', () => {
const { queryAllByTestId } = render(
-
+
);
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.tsx
index a5f08527cdc77..8edd0b7981936 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/alerts/alerts_preview.tsx
@@ -5,40 +5,21 @@
* 2.0.
*/
-import React, { useCallback, useMemo } from 'react';
+import React, { useMemo } from 'react';
import { capitalize } from 'lodash';
import type { EuiThemeComputed } from '@elastic/eui';
import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiText, EuiTitle, useEuiTheme } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n-react';
import { DistributionBar } from '@kbn/security-solution-distribution-bar';
-import {
- buildEntityFlyoutPreviewQuery,
- getAbbreviatedNumber,
-} from '@kbn/cloud-security-posture-common';
-import { hasVulnerabilitiesData } from '@kbn/cloud-security-posture';
-import { useMisconfigurationPreview } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_preview';
-import { useVulnerabilitiesPreview } from '@kbn/cloud-security-posture/src/hooks/use_vulnerabilities_preview';
-import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
+import { getAbbreviatedNumber } from '@kbn/cloud-security-posture-common';
import type {
AlertsByStatus,
ParsedAlertsData,
} from '../../../overview/components/detection_response/alerts_by_status/types';
import { ExpandablePanel } from '../../../flyout/shared/components/expandable_panel';
import { getSeverityColor } from '../../../detections/components/alerts_kpis/severity_level_panel/helpers';
-import type { HostRiskScore, UserRiskScore } from '../../../../common/search_strategy';
-import {
- buildHostNamesFilter,
- buildUserNamesFilter,
- RiskScoreEntity,
-} from '../../../../common/search_strategy';
-import { useRiskScore } from '../../../entity_analytics/api/hooks/use_risk_score';
-import { FIRST_RECORD_PAGINATION } from '../../../entity_analytics/common';
-import { HostDetailsPanelKey } from '../../../flyout/entity_details/host_details_left';
-import {
- EntityDetailsLeftPanelTab,
- CspInsightLeftPanelSubTab,
-} from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
-import { UserDetailsPanelKey } from '../../../flyout/entity_details/user_details_left';
+import { CspInsightLeftPanelSubTab } from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
+import { useNavigateEntityInsight } from '../../hooks/use_entity_insight';
const AlertsCount = ({
alertsTotal,
@@ -77,13 +58,13 @@ const AlertsCount = ({
export const AlertsPreview = ({
alertsData,
- fieldName,
- name,
+ field,
+ value,
isPreviewMode,
}: {
alertsData: ParsedAlertsData;
- fieldName: string;
- name: string;
+ field: 'host.name' | 'user.name';
+ value: string;
isPreviewMode?: boolean;
}) => {
const { euiTheme } = useEuiTheme();
@@ -107,101 +88,14 @@ export const AlertsPreview = ({
const totalAlertsCount = alertStats.reduce((total, item) => total + item.count, 0);
- const { data } = useMisconfigurationPreview({
- query: buildEntityFlyoutPreviewQuery(fieldName, name),
- sort: [],
- enabled: true,
- pageSize: 1,
- ignore_unavailable: true,
- });
- const isUsingHostName = fieldName === 'host.name';
- const passedFindings = data?.count.passed || 0;
- const failedFindings = data?.count.failed || 0;
-
- const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0;
-
- const { data: vulnerabilitiesData } = useVulnerabilitiesPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', name),
- sort: [],
- enabled: true,
- pageSize: 1,
- });
-
- const {
- CRITICAL = 0,
- HIGH = 0,
- MEDIUM = 0,
- LOW = 0,
- NONE = 0,
- } = vulnerabilitiesData?.count || {};
-
- const hasVulnerabilitiesFindings = hasVulnerabilitiesData({
- critical: CRITICAL,
- high: HIGH,
- medium: MEDIUM,
- low: LOW,
- none: NONE,
- });
-
- const buildFilterQuery = useMemo(
- () => (isUsingHostName ? buildHostNamesFilter([name]) : buildUserNamesFilter([name])),
- [isUsingHostName, name]
- );
-
- const riskScoreState = useRiskScore({
- riskEntity: isUsingHostName ? RiskScoreEntity.host : RiskScoreEntity.user,
- filterQuery: buildFilterQuery,
- onlyLatest: false,
- pagination: FIRST_RECORD_PAGINATION,
- });
-
- const { data: hostRisk } = riskScoreState;
-
- const riskData = hostRisk?.[0];
-
- const isRiskScoreExist = isUsingHostName
- ? !!(riskData as HostRiskScore)?.host.risk
- : !!(riskData as UserRiskScore)?.user.risk;
-
const hasNonClosedAlerts = totalAlertsCount > 0;
- const { openLeftPanel } = useExpandableFlyoutApi();
-
- const goToEntityInsightTab = useCallback(() => {
- openLeftPanel({
- id: isUsingHostName ? HostDetailsPanelKey : UserDetailsPanelKey,
- params: isUsingHostName
- ? {
- name,
- isRiskScoreExist,
- hasMisconfigurationFindings,
- hasVulnerabilitiesFindings,
- hasNonClosedAlerts,
- path: {
- tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
- subTab: CspInsightLeftPanelSubTab.ALERTS,
- },
- }
- : {
- user: { name },
- isRiskScoreExist,
- hasMisconfigurationFindings,
- hasNonClosedAlerts,
- path: {
- tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
- subTab: CspInsightLeftPanelSubTab.ALERTS,
- },
- },
- });
- }, [
- hasMisconfigurationFindings,
- hasNonClosedAlerts,
- hasVulnerabilitiesFindings,
- isRiskScoreExist,
- isUsingHostName,
- name,
- openLeftPanel,
- ]);
+ const { goToEntityInsightTab } = useNavigateEntityInsight({
+ field,
+ value,
+ queryIdExtension: 'ALERTS_PREVIEW',
+ subTab: CspInsightLeftPanelSubTab.ALERTS,
+ });
const link = useMemo(
() =>
!isPreviewMode
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/alerts_findings_details_table.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/alerts_findings_details_table.tsx
index 966de68e3497f..6567fb41a93f4 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/alerts_findings_details_table.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/alerts_findings_details_table.tsx
@@ -60,7 +60,7 @@ interface AlertsDetailsFields {
}
export const AlertsDetailsTable = memo(
- ({ fieldName, queryName }: { fieldName: 'host.name' | 'user.name'; queryName: string }) => {
+ ({ field, value }: { field: 'host.name' | 'user.name'; value: string }) => {
useEffect(() => {
uiMetricService.trackUiMetric(
METRIC_TYPE.COUNT,
@@ -90,7 +90,7 @@ export const AlertsDetailsTable = memo(
const { to, from } = useGlobalTime();
const { signalIndexName } = useSignalIndex();
const { data } = useQueryAlerts({
- query: buildEntityAlertsQuery(fieldName, to, from, queryName, 500),
+ query: buildEntityAlertsQuery(field, to, from, value, 500),
queryName: ALERTS_QUERY_NAMES.BY_RULE_BY_STATUS,
indexName: signalIndexName,
});
@@ -216,11 +216,11 @@ export const AlertsDetailsTable = memo(
[
{
title:
- fieldName === 'host.name'
+ field === 'host.name'
? OPEN_IN_ALERTS_TITLE_HOSTNAME
: OPEN_IN_ALERTS_TITLE_USERNAME,
- selectedOptions: [queryName],
- fieldName,
+ selectedOptions: [value],
+ fieldName: field,
},
{
title: OPEN_IN_ALERTS_TITLE_STATUS,
@@ -230,7 +230,7 @@ export const AlertsDetailsTable = memo(
],
true
),
- [fieldName, openAlertsPageWithFilters, queryName]
+ [field, openAlertsPageWithFilters, value]
);
return (
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx
index 2e7b4171fd023..84e3ee4faee99 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx
@@ -42,7 +42,7 @@ function isCspFlyoutPanelProps(
}
export const InsightsTabCsp = memo(
- ({ name, fieldName }: { name: string; fieldName: 'host.name' | 'user.name' }) => {
+ ({ value, field }: { value: string; field: 'host.name' | 'user.name' }) => {
const panels = useExpandableFlyoutState();
let hasMisconfigurationFindings = false;
@@ -150,11 +150,11 @@ export const InsightsTabCsp = memo(
/>
{activeInsightsId === CspInsightLeftPanelSubTab.MISCONFIGURATIONS ? (
-
+
) : activeInsightsId === CspInsightLeftPanelSubTab.VULNERABILITIES ? (
-
+
) : (
-
+
)}
>
);
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx
index 69912c58e4e15..00430c2b87262 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx
@@ -59,7 +59,7 @@ const getFindingsStats = (passedFindingsStats: number, failedFindingsStats: numb
* Insights view displayed in the document details expandable flyout left section
*/
export const MisconfigurationFindingsDetailsTable = memo(
- ({ fieldName, queryName }: { fieldName: 'host.name' | 'user.name'; queryName: string }) => {
+ ({ field, value }: { field: 'host.name' | 'user.name'; value: string }) => {
useEffect(() => {
uiMetricService.trackUiMetric(
METRIC_TYPE.COUNT,
@@ -68,7 +68,7 @@ export const MisconfigurationFindingsDetailsTable = memo(
}, []);
const { data } = useMisconfigurationFindings({
- query: buildEntityFlyoutPreviewQuery(fieldName, queryName),
+ query: buildEntityFlyoutPreviewQuery(field, value),
sort: [],
enabled: true,
pageSize: 1,
@@ -183,7 +183,7 @@ export const MisconfigurationFindingsDetailsTable = memo(
{
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/vulnerabilities_findings_details_table.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/vulnerabilities_findings_details_table.tsx
index 82c5f91bf4250..155946a791f79 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/vulnerabilities_findings_details_table.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/vulnerabilities_findings_details_table.tsx
@@ -44,7 +44,7 @@ interface VulnerabilitiesPackage extends Vulnerability {
};
}
-export const VulnerabilitiesFindingsDetailsTable = memo(({ queryName }: { queryName: string }) => {
+export const VulnerabilitiesFindingsDetailsTable = memo(({ value }: { value: string }) => {
useEffect(() => {
uiMetricService.trackUiMetric(
METRIC_TYPE.COUNT,
@@ -53,7 +53,7 @@ export const VulnerabilitiesFindingsDetailsTable = memo(({ queryName }: { queryN
}, []);
const { data } = useVulnerabilitiesFindings({
- query: buildEntityFlyoutPreviewQuery('host.name', queryName),
+ query: buildEntityFlyoutPreviewQuery('host.name', value),
sort: [],
enabled: true,
pageSize: 1,
@@ -204,7 +204,7 @@ export const VulnerabilitiesFindingsDetailsTable = memo(({ queryName }: { queryN
{
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/entity_insight.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/entity_insight.tsx
index 7139994f7e972..eec66e765371b 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/entity_insight.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/entity_insight.tsx
@@ -7,97 +7,56 @@
import { EuiAccordion, EuiHorizontalRule, EuiSpacer, EuiTitle, useEuiTheme } from '@elastic/eui';
-import React, { useMemo } from 'react';
+import React from 'react';
import { css } from '@emotion/react';
import { FormattedMessage } from '@kbn/i18n-react';
-import { useMisconfigurationPreview } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_preview';
-import { buildEntityFlyoutPreviewQuery } from '@kbn/cloud-security-posture-common';
-import { useVulnerabilitiesPreview } from '@kbn/cloud-security-posture/src/hooks/use_vulnerabilities_preview';
-import { hasVulnerabilitiesData } from '@kbn/cloud-security-posture';
-import { FILTER_CLOSED } from '../../../common/types';
+import { useHasVulnerabilities } from '@kbn/cloud-security-posture/src/hooks/use_has_vulnerabilities';
+import { useHasMisconfigurations } from '@kbn/cloud-security-posture/src/hooks/use_has_misconfigurations';
import { MisconfigurationsPreview } from './misconfiguration/misconfiguration_preview';
import { VulnerabilitiesPreview } from './vulnerabilities/vulnerabilities_preview';
import { AlertsPreview } from './alerts/alerts_preview';
import { useGlobalTime } from '../../common/containers/use_global_time';
-import type { ParsedAlertsData } from '../../overview/components/detection_response/alerts_by_status/types';
import { DETECTION_RESPONSE_ALERTS_BY_STATUS_ID } from '../../overview/components/detection_response/alerts_by_status/types';
-import { useAlertsByStatus } from '../../overview/components/detection_response/alerts_by_status/use_alerts_by_status';
-import { useSignalIndex } from '../../detections/containers/detection_engine/alerts/use_signal_index';
+import { useNonClosedAlerts } from '../hooks/use_non_closed_alerts';
export const EntityInsight = ({
- name,
- fieldName,
+ value,
+ field,
isPreviewMode,
}: {
- name: string;
- fieldName: 'host.name' | 'user.name';
+ value: string;
+ field: 'host.name' | 'user.name';
isPreviewMode?: boolean;
}) => {
const { euiTheme } = useEuiTheme();
const insightContent: React.ReactElement[] = [];
- const { data: dataMisconfiguration } = useMisconfigurationPreview({
- query: buildEntityFlyoutPreviewQuery(fieldName, name),
- sort: [],
- enabled: true,
- pageSize: 1,
- });
-
- const passedFindings = dataMisconfiguration?.count.passed || 0;
- const failedFindings = dataMisconfiguration?.count.failed || 0;
-
- const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0;
-
- const { data } = useVulnerabilitiesPreview({
- query: buildEntityFlyoutPreviewQuery(fieldName, name),
- sort: [],
- enabled: true,
- pageSize: 1,
- });
-
- const { CRITICAL = 0, HIGH = 0, MEDIUM = 0, LOW = 0, NONE = 0 } = data?.count || {};
-
- const hasVulnerabilitiesFindings = hasVulnerabilitiesData({
- critical: CRITICAL,
- high: HIGH,
- medium: MEDIUM,
- low: LOW,
- none: NONE,
- });
-
- const isVulnerabilitiesFindingForHost = hasVulnerabilitiesFindings && fieldName === 'host.name';
+ const { hasMisconfigurationFindings: showMisconfigurationsPreview } = useHasMisconfigurations(
+ field,
+ value
+ );
- const { signalIndexName } = useSignalIndex();
+ const { hasVulnerabilitiesFindings } = useHasVulnerabilities(field, value);
- const entityFilter = useMemo(() => ({ field: fieldName, value: name }), [fieldName, name]);
+ const showVulnerabilitiesPreview = hasVulnerabilitiesFindings && field === 'host.name';
const { to, from } = useGlobalTime();
- const { items: alertsData } = useAlertsByStatus({
- entityFilter,
- signalIndexName,
- queryId: DETECTION_RESPONSE_ALERTS_BY_STATUS_ID,
+ const { hasNonClosedAlerts: showAlertsPreview, filteredAlertsData } = useNonClosedAlerts({
+ field,
+ value,
to,
from,
+ queryId: DETECTION_RESPONSE_ALERTS_BY_STATUS_ID,
});
- const filteredAlertsData: ParsedAlertsData = alertsData
- ? Object.fromEntries(Object.entries(alertsData).filter(([key]) => key !== FILTER_CLOSED))
- : {};
-
- const alertsOpenCount = filteredAlertsData?.open?.total || 0;
-
- const alertsAcknowledgedCount = filteredAlertsData?.acknowledged?.total || 0;
-
- const alertsCount = alertsOpenCount + alertsAcknowledgedCount;
-
- if (alertsCount > 0) {
+ if (showAlertsPreview) {
insightContent.push(
<>
@@ -105,34 +64,23 @@ export const EntityInsight = ({
);
}
- if (hasMisconfigurationFindings)
+ if (showMisconfigurationsPreview)
insightContent.push(
<>
- 0}
- isPreviewMode={isPreviewMode}
- />
+
>
);
- if (isVulnerabilitiesFindingForHost && hasVulnerabilitiesFindings)
+ if (showVulnerabilitiesPreview)
insightContent.push(
<>
- 0}
- />
+
>
);
return (
<>
- {(insightContent.length > 0 ||
- hasMisconfigurationFindings ||
- (isVulnerabilitiesFindingForHost && hasVulnerabilitiesFindings)) && (
+ {insightContent.length > 0 && (
<>
{
it('renders', () => {
const { getByTestId } = render(
-
+
);
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx
index 42a5906ce4e36..c7c1889a5838b 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx
@@ -5,39 +5,23 @@
* 2.0.
*/
-import React, { useCallback, useEffect, useMemo } from 'react';
+import React, { useEffect, useMemo } from 'react';
import { css } from '@emotion/react';
import type { EuiThemeComputed } from '@elastic/eui';
import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiText, useEuiTheme, EuiTitle } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n-react';
import { DistributionBar } from '@kbn/security-solution-distribution-bar';
-import { useMisconfigurationPreview } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_preview';
+import { useHasMisconfigurations } from '@kbn/cloud-security-posture/src/hooks/use_has_misconfigurations';
import { i18n } from '@kbn/i18n';
-import { buildEntityFlyoutPreviewQuery } from '@kbn/cloud-security-posture-common';
-import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
-import { useVulnerabilitiesPreview } from '@kbn/cloud-security-posture/src/hooks/use_vulnerabilities_preview';
-import { hasVulnerabilitiesData, statusColors } from '@kbn/cloud-security-posture';
+import { statusColors } from '@kbn/cloud-security-posture';
import { METRIC_TYPE } from '@kbn/analytics';
import {
ENTITY_FLYOUT_WITH_MISCONFIGURATION_VISIT,
uiMetricService,
} from '@kbn/cloud-security-posture-common/utils/ui_metrics';
import { ExpandablePanel } from '../../../flyout/shared/components/expandable_panel';
-import {
- CspInsightLeftPanelSubTab,
- EntityDetailsLeftPanelTab,
-} from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
-import { UserDetailsPanelKey } from '../../../flyout/entity_details/user_details_left';
-import { HostDetailsPanelKey } from '../../../flyout/entity_details/host_details_left';
-import { useRiskScore } from '../../../entity_analytics/api/hooks/use_risk_score';
-import { RiskScoreEntity } from '../../../../common/entity_analytics/risk_engine';
-import type { HostRiskScore, UserRiskScore } from '../../../../common/search_strategy';
-import { buildHostNamesFilter, buildUserNamesFilter } from '../../../../common/search_strategy';
-
-const FIRST_RECORD_PAGINATION = {
- cursorStart: 0,
- querySize: 1,
-};
+import { CspInsightLeftPanelSubTab } from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
+import { useNavigateEntityInsight } from '../../hooks/use_entity_insight';
export const getFindingsStats = (passedFindingsStats: number, failedFindingsStats: number) => {
if (passedFindingsStats === 0 && failedFindingsStats === 0) return [];
@@ -101,113 +85,30 @@ const MisconfigurationPreviewScore = ({
};
export const MisconfigurationsPreview = ({
- name,
- fieldName,
- hasNonClosedAlerts = false,
+ value,
+ field,
isPreviewMode,
}: {
- name: string;
- fieldName: 'host.name' | 'user.name';
- hasNonClosedAlerts?: boolean;
+ value: string;
+ field: 'host.name' | 'user.name';
isPreviewMode?: boolean;
}) => {
- const { data } = useMisconfigurationPreview({
- query: buildEntityFlyoutPreviewQuery(fieldName, name),
- sort: [],
- enabled: true,
- pageSize: 1,
- ignore_unavailable: true,
- });
- const isUsingHostName = fieldName === 'host.name';
- const passedFindings = data?.count.passed || 0;
- const failedFindings = data?.count.failed || 0;
+ const { hasMisconfigurationFindings, passedFindings, failedFindings } = useHasMisconfigurations(
+ field,
+ value
+ );
useEffect(() => {
uiMetricService.trackUiMetric(METRIC_TYPE.CLICK, ENTITY_FLYOUT_WITH_MISCONFIGURATION_VISIT);
}, []);
const { euiTheme } = useEuiTheme();
- const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0;
- const { data: vulnerabilitiesData } = useVulnerabilitiesPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', name),
- sort: [],
- enabled: true,
- pageSize: 1,
+ const { goToEntityInsightTab } = useNavigateEntityInsight({
+ field,
+ value,
+ queryIdExtension: 'MISCONFIGURATION_PREVIEW',
+ subTab: CspInsightLeftPanelSubTab.MISCONFIGURATIONS,
});
-
- const {
- CRITICAL = 0,
- HIGH = 0,
- MEDIUM = 0,
- LOW = 0,
- NONE = 0,
- } = vulnerabilitiesData?.count || {};
-
- const hasVulnerabilitiesFindings = hasVulnerabilitiesData({
- critical: CRITICAL,
- high: HIGH,
- medium: MEDIUM,
- low: LOW,
- none: NONE,
- });
-
- const buildFilterQuery = useMemo(
- () => (isUsingHostName ? buildHostNamesFilter([name]) : buildUserNamesFilter([name])),
- [isUsingHostName, name]
- );
-
- const riskScoreState = useRiskScore({
- riskEntity: isUsingHostName ? RiskScoreEntity.host : RiskScoreEntity.user,
- filterQuery: buildFilterQuery,
- onlyLatest: false,
- pagination: FIRST_RECORD_PAGINATION,
- });
-
- const { data: hostRisk } = riskScoreState;
-
- const riskData = hostRisk?.[0];
-
- const isRiskScoreExist = isUsingHostName
- ? !!(riskData as HostRiskScore)?.host.risk
- : !!(riskData as UserRiskScore)?.user.risk;
-
- const { openLeftPanel } = useExpandableFlyoutApi();
-
- const goToEntityInsightTab = useCallback(() => {
- openLeftPanel({
- id: isUsingHostName ? HostDetailsPanelKey : UserDetailsPanelKey,
- params: isUsingHostName
- ? {
- name,
- isRiskScoreExist,
- hasMisconfigurationFindings,
- hasVulnerabilitiesFindings,
- hasNonClosedAlerts,
- path: {
- tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
- subTab: CspInsightLeftPanelSubTab.MISCONFIGURATIONS,
- },
- }
- : {
- user: { name },
- isRiskScoreExist,
- hasMisconfigurationFindings,
- hasNonClosedAlerts,
- path: {
- tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
- subTab: CspInsightLeftPanelSubTab.MISCONFIGURATIONS,
- },
- },
- });
- }, [
- hasMisconfigurationFindings,
- hasNonClosedAlerts,
- hasVulnerabilitiesFindings,
- isRiskScoreExist,
- isUsingHostName,
- name,
- openLeftPanel,
- ]);
const link = useMemo(
() =>
!isPreviewMode
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.test.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.test.tsx
index cc71d1be2158d..14a6366fd4baa 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.test.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.test.tsx
@@ -37,7 +37,7 @@ describe('VulnerabilitiesPreview', () => {
it('renders', () => {
const { getByTestId } = render(
-
+
);
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.tsx
index c4335d921e371..5a5b638abafa3 100644
--- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.tsx
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/vulnerabilities/vulnerabilities_preview.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import React, { useCallback, useEffect, useMemo } from 'react';
+import React, { useEffect, useMemo } from 'react';
import { css } from '@emotion/react';
import type { EuiThemeComputed } from '@elastic/eui';
import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiText, useEuiTheme, EuiTitle } from '@elastic/eui';
@@ -17,24 +17,14 @@ import {
getAbbreviatedNumber,
} from '@kbn/cloud-security-posture-common';
import { getVulnerabilityStats, hasVulnerabilitiesData } from '@kbn/cloud-security-posture';
-import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
-import { useMisconfigurationPreview } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_preview';
import {
ENTITY_FLYOUT_WITH_VULNERABILITY_PREVIEW,
uiMetricService,
} from '@kbn/cloud-security-posture-common/utils/ui_metrics';
import { METRIC_TYPE } from '@kbn/analytics';
import { ExpandablePanel } from '../../../flyout/shared/components/expandable_panel';
-import { EntityDetailsLeftPanelTab } from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
-import { HostDetailsPanelKey } from '../../../flyout/entity_details/host_details_left';
-import { useRiskScore } from '../../../entity_analytics/api/hooks/use_risk_score';
-import { RiskScoreEntity } from '../../../../common/entity_analytics/risk_engine';
-import { buildHostNamesFilter } from '../../../../common/search_strategy';
-
-const FIRST_RECORD_PAGINATION = {
- cursorStart: 0,
- querySize: 1,
-};
+import { CspInsightLeftPanelSubTab } from '../../../flyout/entity_details/shared/components/left_panel/left_panel_header';
+import { useNavigateEntityInsight } from '../../hooks/use_entity_insight';
const VulnerabilitiesCount = ({
vulnerabilitiesTotal,
@@ -70,20 +60,20 @@ const VulnerabilitiesCount = ({
};
export const VulnerabilitiesPreview = ({
- name,
+ value,
+ field,
isPreviewMode,
- hasNonClosedAlerts = false,
}: {
- name: string;
+ value: string;
+ field: 'host.name' | 'user.name';
isPreviewMode?: boolean;
- hasNonClosedAlerts?: boolean;
}) => {
useEffect(() => {
uiMetricService.trackUiMetric(METRIC_TYPE.CLICK, ENTITY_FLYOUT_WITH_VULNERABILITY_PREVIEW);
}, []);
const { data } = useVulnerabilitiesPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', name),
+ query: buildEntityFlyoutPreviewQuery(field, value),
sort: [],
enabled: true,
pageSize: 1,
@@ -103,49 +93,12 @@ export const VulnerabilitiesPreview = ({
const { euiTheme } = useEuiTheme();
- const { data: dataMisconfiguration } = useMisconfigurationPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', name),
- sort: [],
- enabled: true,
- pageSize: 1,
- });
-
- const passedFindings = dataMisconfiguration?.count.passed || 0;
- const failedFindings = dataMisconfiguration?.count.failed || 0;
-
- const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0;
-
- const buildFilterQuery = useMemo(() => buildHostNamesFilter([name]), [name]);
- const riskScoreState = useRiskScore({
- riskEntity: RiskScoreEntity.host,
- filterQuery: buildFilterQuery,
- onlyLatest: false,
- pagination: FIRST_RECORD_PAGINATION,
+ const { goToEntityInsightTab } = useNavigateEntityInsight({
+ field,
+ value,
+ queryIdExtension: 'VULNERABILITIES_PREVIEW',
+ subTab: CspInsightLeftPanelSubTab.VULNERABILITIES,
});
- const { data: hostRisk } = riskScoreState;
- const riskData = hostRisk?.[0];
- const isRiskScoreExist = riskData?.host.risk;
- const { openLeftPanel } = useExpandableFlyoutApi();
- const goToEntityInsightTab = useCallback(() => {
- openLeftPanel({
- id: HostDetailsPanelKey,
- params: {
- name,
- isRiskScoreExist,
- hasMisconfigurationFindings,
- hasVulnerabilitiesFindings,
- hasNonClosedAlerts,
- path: { tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS, subTab: 'vulnerabilitiesTabId' },
- },
- });
- }, [
- hasMisconfigurationFindings,
- hasNonClosedAlerts,
- hasVulnerabilitiesFindings,
- isRiskScoreExist,
- name,
- openLeftPanel,
- ]);
const link = useMemo(
() =>
!isPreviewMode
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_entity_insight.ts b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_entity_insight.ts
new file mode 100644
index 0000000000000..fc35474ffdef0
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_entity_insight.ts
@@ -0,0 +1,89 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
+import { useCallback } from 'react';
+import { useHasVulnerabilities } from '@kbn/cloud-security-posture/src/hooks/use_has_vulnerabilities';
+import { useHasMisconfigurations } from '@kbn/cloud-security-posture/src/hooks/use_has_misconfigurations';
+import { UserDetailsPanelKey } from '../../flyout/entity_details/user_details_left';
+import { HostDetailsPanelKey } from '../../flyout/entity_details/host_details_left';
+import { EntityDetailsLeftPanelTab } from '../../flyout/entity_details/shared/components/left_panel/left_panel_header';
+import { useGlobalTime } from '../../common/containers/use_global_time';
+import { DETECTION_RESPONSE_ALERTS_BY_STATUS_ID } from '../../overview/components/detection_response/alerts_by_status/types';
+import { useNonClosedAlerts } from './use_non_closed_alerts';
+import { useHasRiskScore } from './use_risk_score_data';
+
+export const useNavigateEntityInsight = ({
+ field,
+ value,
+ subTab,
+ queryIdExtension,
+}: {
+ field: 'host.name' | 'user.name';
+ value: string;
+ subTab: string;
+ queryIdExtension: string;
+}) => {
+ const isHostNameField = field === 'host.name';
+ const { to, from } = useGlobalTime();
+
+ const { hasNonClosedAlerts } = useNonClosedAlerts({
+ field,
+ value,
+ to,
+ from,
+ queryId: `${DETECTION_RESPONSE_ALERTS_BY_STATUS_ID}${queryIdExtension}`,
+ });
+
+ const { hasVulnerabilitiesFindings } = useHasVulnerabilities(field, value);
+
+ const { hasRiskScore } = useHasRiskScore({
+ field,
+ value,
+ });
+ const { hasMisconfigurationFindings } = useHasMisconfigurations(field, value);
+ const { openLeftPanel } = useExpandableFlyoutApi();
+
+ const goToEntityInsightTab = useCallback(() => {
+ openLeftPanel({
+ id: isHostNameField ? HostDetailsPanelKey : UserDetailsPanelKey,
+ params: isHostNameField
+ ? {
+ name: value,
+ isRiskScoreExist: hasRiskScore,
+ hasMisconfigurationFindings,
+ hasVulnerabilitiesFindings,
+ hasNonClosedAlerts,
+ path: {
+ tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
+ subTab,
+ },
+ }
+ : {
+ user: { name: value },
+ isRiskScoreExist: hasRiskScore,
+ hasMisconfigurationFindings,
+ hasNonClosedAlerts,
+ path: {
+ tab: EntityDetailsLeftPanelTab.CSP_INSIGHTS,
+ subTab,
+ },
+ },
+ });
+ }, [
+ openLeftPanel,
+ isHostNameField,
+ value,
+ hasRiskScore,
+ hasMisconfigurationFindings,
+ hasVulnerabilitiesFindings,
+ hasNonClosedAlerts,
+ subTab,
+ ]);
+
+ return { goToEntityInsightTab };
+};
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_non_closed_alerts.ts b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_non_closed_alerts.ts
new file mode 100644
index 0000000000000..598f78cd68402
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_non_closed_alerts.ts
@@ -0,0 +1,47 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { useMemo } from 'react';
+import { FILTER_CLOSED } from '@kbn/securitysolution-data-table/common/types';
+import { useSignalIndex } from '../../detections/containers/detection_engine/alerts/use_signal_index';
+import { useAlertsByStatus } from '../../overview/components/detection_response/alerts_by_status/use_alerts_by_status';
+import type { ParsedAlertsData } from '../../overview/components/detection_response/alerts_by_status/types';
+
+export const useNonClosedAlerts = ({
+ field,
+ value,
+ to,
+ from,
+ queryId,
+}: {
+ field: 'host.name' | 'user.name';
+ value: string;
+ to: string;
+ from: string;
+ queryId: string;
+}) => {
+ const { signalIndexName } = useSignalIndex();
+
+ const entityFilter = useMemo(() => ({ field, value }), [field, value]);
+
+ const { items: alertsData } = useAlertsByStatus({
+ entityFilter,
+ signalIndexName,
+ queryId,
+ to,
+ from,
+ });
+
+ const filteredAlertsData: ParsedAlertsData = alertsData
+ ? Object.fromEntries(Object.entries(alertsData).filter(([key]) => key !== FILTER_CLOSED))
+ : {};
+
+ const hasNonClosedAlerts =
+ (filteredAlertsData?.acknowledged?.total || 0) + (filteredAlertsData?.open?.total || 0) > 0;
+
+ return { hasNonClosedAlerts, filteredAlertsData };
+};
diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_risk_score_data.ts b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_risk_score_data.ts
new file mode 100644
index 0000000000000..b100fe30b105b
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/cloud_security_posture/hooks/use_risk_score_data.ts
@@ -0,0 +1,45 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { useMemo } from 'react';
+import {
+ RiskScoreEntity,
+ type HostRiskScore,
+ type UserRiskScore,
+ buildHostNamesFilter,
+ buildUserNamesFilter,
+} from '../../../common/search_strategy';
+import { useRiskScore } from '../../entity_analytics/api/hooks/use_risk_score';
+import { FIRST_RECORD_PAGINATION } from '../../entity_analytics/common';
+
+export const useHasRiskScore = ({
+ field,
+ value,
+}: {
+ field: 'host.name' | 'user.name';
+ value: string;
+}) => {
+ const isHostNameField = field === 'host.name';
+ const buildFilterQuery = useMemo(
+ () => (isHostNameField ? buildHostNamesFilter([value]) : buildUserNamesFilter([value])),
+ [isHostNameField, value]
+ );
+ const { data } = useRiskScore({
+ riskEntity: isHostNameField ? RiskScoreEntity.host : RiskScoreEntity.user,
+ filterQuery: buildFilterQuery,
+ onlyLatest: false,
+ pagination: FIRST_RECORD_PAGINATION,
+ });
+
+ const riskData = data?.[0];
+
+ const hasRiskScore = isHostNameField
+ ? !!(riskData as HostRiskScore)?.host.risk
+ : !!(riskData as UserRiskScore)?.user.risk;
+
+ return { hasRiskScore };
+};
diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/entity_details_flyout/index.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/entity_details_flyout/index.tsx
index 6f728d7653783..1073be375b093 100644
--- a/x-pack/plugins/security_solution/public/entity_analytics/components/entity_details_flyout/index.tsx
+++ b/x-pack/plugins/security_solution/public/entity_analytics/components/entity_details_flyout/index.tsx
@@ -44,6 +44,6 @@ export const getInsightsInputTab = ({
defaultMessage="Insights"
/>
),
- content: ,
+ content: ,
};
};
diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx
index 2e7c14fc38027..9c2ce61dea7fc 100644
--- a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx
+++ b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx
@@ -64,7 +64,7 @@ export const HostPanelContent = ({
entity={{ name: hostName, type: 'host' }}
onChange={onAssetCriticalityChange}
/>
-
+
{
@@ -101,43 +98,18 @@ export const HostPanel = ({
{ onSuccess: refetchRiskScore }
);
- const { data } = useMisconfigurationPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', hostName),
- sort: [],
- enabled: true,
- pageSize: 1,
- ignore_unavailable: true,
- });
-
- const passedFindings = data?.count.passed || 0;
- const failedFindings = data?.count.failed || 0;
-
- const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0;
-
- const { data: vulnerabilitiesData } = useVulnerabilitiesPreview({
- query: buildEntityFlyoutPreviewQuery('host.name', hostName),
- sort: [],
- enabled: true,
- pageSize: 1,
- });
+ const { hasMisconfigurationFindings } = useHasMisconfigurations('host.name', hostName);
- const hasVulnerabilitiesFindings = sum(Object.values(vulnerabilitiesData?.count || {})) > 0;
+ const { hasVulnerabilitiesFindings } = useHasVulnerabilities('host.name', hostName);
- const { signalIndexName } = useSignalIndex();
-
- const entityFilter = useMemo(() => ({ field: 'host.name', value: hostName }), [hostName]);
-
- const { items: alertsData } = useAlertsByStatus({
- entityFilter,
- signalIndexName,
- queryId: `${DETECTION_RESPONSE_ALERTS_BY_STATUS_ID}HOST_NAME_RIGHT`,
+ const { hasNonClosedAlerts } = useNonClosedAlerts({
+ field: 'host.name',
+ value: hostName,
to,
from,
+ queryId: `${DETECTION_RESPONSE_ALERTS_BY_STATUS_ID}HOST_NAME_RIGHT`,
});
- const hasNonClosedAlerts =
- (alertsData?.acknowledged?.total || 0) + (alertsData?.open?.total || 0) > 0;
-
useQueryInspector({
deleteQuery,
inspect: inspectRiskScore,
diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/content.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/content.tsx
index 0dbc1faa5cb42..08295038a1bd8 100644
--- a/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/content.tsx
+++ b/x-pack/plugins/security_solution/public/flyout/entity_details/user_right/content.tsx
@@ -73,7 +73,7 @@ export const UserPanelContent = ({
entity={{ name: userName, type: 'user' }}
onChange={onAssetCriticalityChange}
/>
-
+
0 || failedFindings > 0;
-
- const { signalIndexName } = useSignalIndex();
+ const { hasMisconfigurationFindings } = useHasMisconfigurations('user.name', userName);
- const entityFilter = useMemo(() => ({ field: 'user.name', value: userName }), [userName]);
-
- const { items: alertsData } = useAlertsByStatus({
- entityFilter,
- signalIndexName,
- queryId: `${DETECTION_RESPONSE_ALERTS_BY_STATUS_ID}USER_NAME_RIGHT`,
+ const { hasNonClosedAlerts } = useNonClosedAlerts({
+ field: 'user.name',
+ value: userName,
to,
from,
+ queryId: `${DETECTION_RESPONSE_ALERTS_BY_STATUS_ID}USER_NAME_RIGHT`,
});
- const hasNonClosedAlerts =
- (alertsData?.acknowledged?.total || 0) + (alertsData?.open?.total || 0) > 0;
-
useQueryInspector({
deleteQuery,
inspect,
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac.cy.ts
index 64779bb2ba27e..b108cb8985b80 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac.cy.ts
@@ -9,7 +9,8 @@ import { closeAllToasts } from '../../tasks/toasts';
import { login, ROLE } from '../../tasks/login';
import { loadPage } from '../../tasks/common';
-describe('When defining a kibana role for Endpoint security access', { tags: '@ess' }, () => {
+// FLAKY: https://github.com/elastic/kibana/issues/200967
+describe.skip('When defining a kibana role for Endpoint security access', { tags: '@ess' }, () => {
const getAllSubFeatureRows = (): Cypress.Chainable> => {
return cy
.get('#featurePrivilegeControls_siem')
diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac_with_space_awareness.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac_with_space_awareness.cy.ts
index 424b3fc954c57..d2a86e7899aee 100644
--- a/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac_with_space_awareness.cy.ts
+++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/rbac/endpoint_role_rbac_with_space_awareness.cy.ts
@@ -23,7 +23,8 @@ import {
setSecuritySolutionEndpointGroupPrivilege,
} from '../../screens/stack_management/role_page';
-describe(
+// Failing: See https://github.com/elastic/kibana/issues/200962
+describe.skip(
'When defining a kibana role for Endpoint security access with space awareness enabled',
{
// TODO:PR Remove `'@skipInServerlessMKI` once PR merges to `main`
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/multi_line_string_diff_algorithm.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/multi_line_string_diff_algorithm.test.ts
index 72e87fde6ca2f..8f0b3586066fa 100644
--- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/multi_line_string_diff_algorithm.test.ts
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/multi_line_string_diff_algorithm.test.ts
@@ -174,9 +174,11 @@ describe('multiLineStringDiffAlgorithm', () => {
const result = multiLineStringDiffAlgorithm(mockVersions);
const endTime = performance.now();
- // If the regex merge in this function takes over 500ms, this test fails
+ // If the regex merge in this function takes over 1 sec, this test fails
// Performance measurements: https://github.com/elastic/kibana/pull/199388
- expect(endTime - startTime).toBeLessThan(500);
+ // NOTE: despite the fact that this test runs in ~50ms locally, on CI it
+ // runs slower and can be flaky even with a 500ms threshold.
+ expect(endTime - startTime).toBeLessThan(1000);
expect(result).toEqual(
expect.objectContaining({
diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts
index b4d7e2f492eb8..760fec7f58f3b 100644
--- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts
+++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts
@@ -97,7 +97,7 @@ export class AssetCriticalityDataClient {
query,
size = DEFAULT_CRITICALITY_RESPONSE_SIZE,
from,
- sort,
+ sort = ['@timestamp'], // without a default sort order the results are not deterministic which makes testing hard
}: {
query: ESFilter;
size?: number;
@@ -301,7 +301,7 @@ export class AssetCriticalityDataClient {
index: this.getIndex(),
flushBytes,
retries,
- refreshOnCompletion: true, // refresh the index after all records are processed
+ refreshOnCompletion: this.getIndex(),
onDocument: ({ record }) => [
{ update: { _id: createId(record) } },
{
diff --git a/x-pack/plugins/spaces/public/management/components/solution_view/solution_view.tsx b/x-pack/plugins/spaces/public/management/components/solution_view/solution_view.tsx
index 701490be4c4c4..350e9151d8ea9 100644
--- a/x-pack/plugins/spaces/public/management/components/solution_view/solution_view.tsx
+++ b/x-pack/plugins/spaces/public/management/components/solution_view/solution_view.tsx
@@ -8,7 +8,6 @@
import type { EuiSuperSelectOption, EuiThemeComputed } from '@elastic/eui';
import {
EuiBetaBadge,
- EuiCallOut,
EuiFlexGroup,
EuiFlexItem,
EuiFormRow,
@@ -43,7 +42,7 @@ const getOptions = ({ size }: EuiThemeComputed): Array
{i18n.translate(
'xpack.spaces.management.manageSpacePage.solutionViewSelect.searchOptionLabel',
- { defaultMessage: 'Search' }
+ { defaultMessage: 'Elasticsearch' }
)}
>
),
@@ -181,21 +180,6 @@ export const SolutionView: FunctionComponent = ({
isInvalid={validator.validateSolutionView(space, isEditing).isInvalid}
/>
-
- {showClassicDefaultViewCallout && (
- <>
-
-
- >
- )}
diff --git a/x-pack/plugins/spaces/public/management/edit_space/edit_space_roles_tab.tsx b/x-pack/plugins/spaces/public/management/edit_space/edit_space_roles_tab.tsx
index 2e3d40527dbd7..18e11110d7564 100644
--- a/x-pack/plugins/spaces/public/management/edit_space/edit_space_roles_tab.tsx
+++ b/x-pack/plugins/spaces/public/management/edit_space/edit_space_roles_tab.tsx
@@ -5,9 +5,9 @@
* 2.0.
*/
-import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui';
+import { EuiConfirmModal, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui';
import type { FC } from 'react';
-import React, { useCallback, useEffect } from 'react';
+import React, { useCallback, useEffect, useState } from 'react';
import type { KibanaFeature } from '@kbn/features-plugin/common';
import { i18n } from '@kbn/i18n';
@@ -40,6 +40,8 @@ export const EditSpaceAssignedRolesTab: FC = ({ space, features, isReadOn
invokeClient,
} = services;
+ const [removeRoleConfirm, setRemoveRoleConfirm] = useState(null);
+
// Roles are already loaded in app state, refresh them when user navigates to this tab
useEffect(() => {
const getRoles = async () => {
@@ -175,7 +177,7 @@ export const EditSpaceAssignedRolesTab: FC = ({ space, features, isReadOn
);
return (
-
+ <>
@@ -194,8 +196,8 @@ export const EditSpaceAssignedRolesTab: FC = ({ space, features, isReadOn
onClickBulkRemove={async (selectedRoles) => {
await removeRole(selectedRoles);
}}
- onClickRowRemoveAction={async (rowRecord) => {
- await removeRole([rowRecord]);
+ onClickRemoveRoleConfirm={async (rowRecord) => {
+ setRemoveRoleConfirm(rowRecord);
}}
onClickAssignNewRole={async () => {
showRolesPrivilegeEditor();
@@ -203,6 +205,36 @@ export const EditSpaceAssignedRolesTab: FC = ({ space, features, isReadOn
/>
-
+ {removeRoleConfirm && (
+ setRemoveRoleConfirm(null)}
+ onConfirm={() => {
+ removeRole([removeRoleConfirm]);
+ setRemoveRoleConfirm(null);
+ }}
+ >
+
+
+
+
+ )}
+ >
);
};
diff --git a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assign_role_privilege_form.tsx b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assign_role_privilege_form.tsx
index 74f2b2fde4667..84859631cdb77 100644
--- a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assign_role_privilege_form.tsx
+++ b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assign_role_privilege_form.tsx
@@ -20,7 +20,6 @@ import {
EuiFormRow,
EuiLink,
EuiLoadingSpinner,
- EuiSpacer,
EuiText,
EuiTitle,
useGeneratedHtmlId,
@@ -31,7 +30,6 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import type { KibanaFeature, KibanaFeatureConfig } from '@kbn/features-plugin/common';
import { i18n } from '@kbn/i18n';
-import { FormattedMessage } from '@kbn/i18n-react';
import type {
RawKibanaPrivileges,
Role,
@@ -157,7 +155,7 @@ export const PrivilegesRolesForm: FC = (props) => {
const [roleSpacePrivilege, setRoleSpacePrivilege] = useState(
!selectedRoles.length || !selectedRolesCombinedPrivileges.length
- ? FEATURE_PRIVILEGES_ALL
+ ? FEATURE_PRIVILEGES_CUSTOM
: selectedRolesCombinedPrivileges[0]
);
@@ -378,17 +376,19 @@ export const PrivilegesRolesForm: FC = (props) => {
{ defaultMessage: 'Select roles' }
)}
labelAppend={
-
- {i18n.translate(
- 'xpack.spaces.management.spaceDetails.roles.selectRolesFormRowLabelAnchor',
- { defaultMessage: 'Manage roles' }
- )}
-
+
+
+ {i18n.translate(
+ 'xpack.spaces.management.spaceDetails.roles.selectRolesFormRowLabelAnchor',
+ { defaultMessage: 'Manage roles' }
+ )}
+
+
}
helpText={i18n.translate(
'xpack.spaces.management.spaceDetails.roles.selectRolesHelp',
@@ -409,7 +409,7 @@ export const PrivilegesRolesForm: FC = (props) => {
)}
placeholder={i18n.translate(
'xpack.spaces.management.spaceDetails.roles.selectRolesPlaceholder',
- { defaultMessage: 'Add a role...' }
+ { defaultMessage: 'Add roles...' }
)}
isLoading={fetchingDataDeps}
options={createRolesComboBoxOptions(spaceUnallocatedRoles)}
@@ -452,9 +452,9 @@ export const PrivilegesRolesForm: FC = (props) => {
iconType="iInCircle"
data-test-subj="privilege-info-callout"
title={i18n.translate(
- 'xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.title',
+ 'xpack.spaces.management.spaceDetails.roles.assign.privilegeCombinationMsg.title',
{
- defaultMessage: 'Privileges will apply only to this space.',
+ defaultMessage: `The user's resulting access depends on a combination of their role's global space privileges and specific privileges applied to this space.`,
}
)}
/>
@@ -464,7 +464,14 @@ export const PrivilegesRolesForm: FC = (props) => {
label={i18n.translate(
'xpack.spaces.management.spaceDetails.roles.assign.privilegesLabelText',
{
- defaultMessage: 'Define role privileges',
+ defaultMessage: 'Define privileges',
+ }
+ )}
+ helpText={i18n.translate(
+ 'xpack.spaces.management.spaceDetails.roles.assign.privilegesHelpText',
+ {
+ defaultMessage:
+ 'Assign the privilege level you wish to grant to all present and future features across this space.',
}
)}
>
@@ -518,7 +525,6 @@ export const PrivilegesRolesForm: FC = (props) => {
) : (
= (props) => {
canCustomizeSubFeaturePrivileges={
license?.getFeatures().allowSubFeaturePrivileges ?? false
}
+ showAdditionalPermissionsMessage={false}
/>
)}
@@ -643,10 +650,10 @@ export const PrivilegesRolesForm: FC = (props) => {
>
{isEditOperation.current
? i18n.translate('xpack.spaces.management.spaceDetails.roles.updateRoleButton', {
- defaultMessage: 'Update',
+ defaultMessage: 'Update role privileges',
})
: i18n.translate('xpack.spaces.management.spaceDetails.roles.assignRoleButton', {
- defaultMessage: 'Assign',
+ defaultMessage: 'Assign roles',
})}
);
@@ -659,7 +666,7 @@ export const PrivilegesRolesForm: FC = (props) => {
{isEditOperation.current
? i18n.translate('xpack.spaces.management.spaceDetails.roles.assignRoleButton', {
- defaultMessage: 'Edit role privileges',
+ defaultMessage: 'Edit role privileges for space',
})
: i18n.translate(
'xpack.spaces.management.spaceDetails.roles.assign.privileges.custom',
@@ -669,15 +676,6 @@ export const PrivilegesRolesForm: FC = (props) => {
)}
-
-
-
-
-
-
{getForm()}
diff --git a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.test.tsx b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.test.tsx
index f909dba415c41..0ddb633cd1f5c 100644
--- a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.test.tsx
+++ b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.test.tsx
@@ -18,7 +18,7 @@ const defaultProps: Pick<
| 'onClickAssignNewRole'
| 'onClickBulkRemove'
| 'onClickRowEditAction'
- | 'onClickRowRemoveAction'
+ | 'onClickRemoveRoleConfirm'
| 'currentSpace'
> = {
currentSpace: {
@@ -29,7 +29,7 @@ const defaultProps: Pick<
onClickBulkRemove: jest.fn(),
onClickRowEditAction: jest.fn(),
onClickAssignNewRole: jest.fn(),
- onClickRowRemoveAction: jest.fn(),
+ onClickRemoveRoleConfirm: jest.fn(),
};
const renderTestComponent = (
diff --git a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.tsx b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.tsx
index ffe7ecba85ec0..f59bd00561671 100644
--- a/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.tsx
+++ b/x-pack/plugins/spaces/public/management/edit_space/roles/component/space_assigned_roles_table.tsx
@@ -41,7 +41,7 @@ interface ISpaceAssignedRolesTableProps {
assignedRoles: Map;
onClickAssignNewRole: () => Promise;
onClickRowEditAction: (role: Role) => void;
- onClickRowRemoveAction: (role: Role) => void;
+ onClickRemoveRoleConfirm: (role: Role) => void;
supportsBulkAction?: boolean;
onClickBulkRemove?: (selectedRoles: Role[]) => void;
}
@@ -67,10 +67,10 @@ const getTableColumns = ({
isReadOnly,
currentSpace,
onClickRowEditAction,
- onClickRowRemoveAction,
+ onClickRemoveRoleConfirm,
}: Pick<
ISpaceAssignedRolesTableProps,
- 'isReadOnly' | 'onClickRowEditAction' | 'onClickRowRemoveAction' | 'currentSpace'
+ 'isReadOnly' | 'onClickRowEditAction' | 'onClickRemoveRoleConfirm' | 'currentSpace'
>) => {
const columns: Array> = [
{
@@ -205,7 +205,7 @@ const getTableColumns = ({
{ defaultMessage: 'Click this action to remove the user from this space.' }
),
available: (rowRecord) => isEditableRole(rowRecord),
- onClick: onClickRowRemoveAction,
+ onClick: onClickRemoveRoleConfirm,
},
],
});
@@ -237,14 +237,19 @@ export const SpaceAssignedRolesTable = ({
onClickAssignNewRole,
onClickBulkRemove,
onClickRowEditAction,
- onClickRowRemoveAction,
+ onClickRemoveRoleConfirm,
isReadOnly = false,
supportsBulkAction = false,
}: ISpaceAssignedRolesTableProps) => {
const tableColumns = useMemo(
() =>
- getTableColumns({ isReadOnly, onClickRowEditAction, onClickRowRemoveAction, currentSpace }),
- [currentSpace, isReadOnly, onClickRowEditAction, onClickRowRemoveAction]
+ getTableColumns({
+ isReadOnly,
+ onClickRowEditAction,
+ onClickRemoveRoleConfirm,
+ currentSpace,
+ }),
+ [currentSpace, isReadOnly, onClickRowEditAction, onClickRemoveRoleConfirm]
);
const [rolesInView, setRolesInView] = useState([]);
const [selectedRoles, setSelectedRoles] = useState([]);
@@ -262,14 +267,17 @@ export const SpaceAssignedRolesTable = ({
const onSearchQueryChange = useCallback>>(
({ query }) => {
- const _assignedRolesTransformed = Array.from(assignedRoles.values());
+ const assignedRolesTransformed = Array.from(assignedRoles.values());
+ const sortedAssignedRolesTransformed = assignedRolesTransformed.sort(sortRolesForListing);
if (query?.text) {
setRolesInView(
- _assignedRolesTransformed.filter((role) => role.name.includes(query.text.toLowerCase()))
+ sortedAssignedRolesTransformed.filter((role) =>
+ role.name.includes(query.text.toLowerCase())
+ )
);
} else {
- setRolesInView(_assignedRolesTransformed);
+ setRolesInView(sortedAssignedRolesTransformed);
}
},
[assignedRoles]
diff --git a/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.test.tsx b/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.test.tsx
index 169f12c3487c4..7a9cf421d02c9 100644
--- a/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.test.tsx
+++ b/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.test.tsx
@@ -154,12 +154,21 @@ describe('SpacesGridPage', () => {
wrapper.update();
expect(wrapper.find('EuiInMemoryTable').prop('items')).toBe(spacesWithSolution);
- expect(wrapper.find('EuiInMemoryTable').prop('columns')).toContainEqual({
- field: 'solution',
- name: 'Solution view',
- sortable: true,
- render: expect.any(Function),
- });
+ expect(wrapper.find('EuiInMemoryTable').prop('columns')).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({ name: '', field: 'initials' }),
+ expect.objectContaining({ name: 'Space', field: 'name' }),
+ expect.objectContaining({ name: 'Description', field: 'description' }),
+ expect.objectContaining({ name: 'Solution view', field: 'solution' }),
+ expect.objectContaining({
+ actions: expect.arrayContaining([
+ expect.objectContaining({ name: 'Edit', icon: 'pencil' }),
+ expect.objectContaining({ name: 'Switch', icon: 'merge' }),
+ expect.objectContaining({ name: 'Delete', icon: 'trash' }),
+ ]),
+ }),
+ ])
+ );
});
it('renders a "current" badge for the current space', async () => {
@@ -413,44 +422,6 @@ describe('SpacesGridPage', () => {
});
});
- it(`renders the 'Features visible' column when not serverless`, async () => {
- const httpStart = httpServiceMock.createStartContract();
- httpStart.get.mockResolvedValue([]);
-
- const error = new Error('something awful happened');
-
- const notifications = notificationServiceMock.createStartContract();
-
- const wrapper = shallowWithIntl(
- Promise.reject(error)}
- notifications={notifications}
- getUrlForApp={getUrlForApp}
- history={history}
- capabilities={{
- navLinks: {},
- management: {},
- catalogue: {},
- spaces: { manage: true },
- }}
- allowSolutionVisibility
- {...spacesGridCommonProps}
- />
- );
-
- // allow spacesManager to load spaces and lazy-load SpaceAvatar
- await act(async () => {});
- wrapper.update();
-
- expect(wrapper.find('EuiInMemoryTable').prop('columns')).toContainEqual(
- expect.objectContaining({
- field: 'disabledFeatures',
- name: 'Features visible',
- })
- );
- });
-
it(`does not render the 'Features visible' column when serverless`, async () => {
const httpStart = httpServiceMock.createStartContract();
httpStart.get.mockResolvedValue([]);
diff --git a/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.tsx b/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.tsx
index 586992c1b6b48..10bbde47a106f 100644
--- a/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.tsx
+++ b/x-pack/plugins/spaces/public/management/spaces_grid/spaces_grid_page.tsx
@@ -18,8 +18,6 @@ import {
EuiPageHeader,
EuiPageSection,
EuiSpacer,
- EuiText,
- useIsWithinBreakpoints,
} from '@elastic/eui';
import React, { Component, lazy, Suspense } from 'react';
@@ -36,17 +34,12 @@ import { reactRouterNavigate } from '@kbn/kibana-react-plugin/public';
import { addSpaceIdToPath, type Space } from '../../../common';
import { isReservedSpace } from '../../../common';
-import {
- DEFAULT_SPACE_ID,
- ENTER_SPACE_PATH,
- SOLUTION_VIEW_CLASSIC,
-} from '../../../common/constants';
+import { DEFAULT_SPACE_ID, ENTER_SPACE_PATH } from '../../../common/constants';
import { getSpacesFeatureDescription } from '../../constants';
import { getSpaceAvatarComponent } from '../../space_avatar';
import { SpaceSolutionBadge } from '../../space_solution_badge';
import type { SpacesManager } from '../../spaces_manager';
import { ConfirmDeleteModal, UnauthorizedPrompt } from '../components';
-import { getEnabledFeatures } from '../lib/feature_utils';
// No need to wrap LazySpaceAvatar in an error boundary, because it is one of the first chunks loaded when opening Kibana.
const LazySpaceAvatar = lazy(() =>
@@ -255,8 +248,7 @@ export class SpacesGridPage extends Component {
};
public getColumnConfig() {
- const { activeSpace, features } = this.state;
- const { solution: activeSolution } = activeSpace ?? {};
+ const { activeSpace } = this.state;
const config: Array> = [
{
@@ -284,15 +276,8 @@ export class SpacesGridPage extends Component {
render: (value: string, rowRecord: Space) => {
const SpaceName = () => {
const isCurrent = this.state.activeSpace?.id === rowRecord.id;
- const isWide = useIsWithinBreakpoints(['xl']);
- const gridColumns = isCurrent && isWide ? 2 : 1;
return (
-
+
{
return ;
},
'data-test-subj': 'spacesListTableRowNameCell',
- width: '15%',
+ width: '20%',
},
{
field: 'description',
@@ -332,55 +317,10 @@ export class SpacesGridPage extends Component {
}),
sortable: true,
truncateText: true,
- width: '45%',
+ width: '40%',
},
];
- const shouldShowFeaturesColumn =
- !this.props.isServerless && (!activeSolution || activeSolution === SOLUTION_VIEW_CLASSIC);
- if (shouldShowFeaturesColumn) {
- config.push({
- field: 'disabledFeatures',
- name: i18n.translate('xpack.spaces.management.spacesGridPage.featuresColumnName', {
- defaultMessage: 'Features visible',
- }),
- sortable: (space: Space) => {
- return getEnabledFeatures(features, space).length;
- },
- render: (_disabledFeatures: string[], rowRecord: Space) => {
- const enabledFeatureCount = getEnabledFeatures(features, rowRecord).length;
- if (enabledFeatureCount === features.length) {
- return (
-
- );
- }
- if (enabledFeatureCount === 0) {
- return (
-
-
-
- );
- }
- return (
-
- );
- },
- });
- }
-
config.push({
field: 'id',
name: i18n.translate('xpack.spaces.management.spacesGridPage.identifierColumnName', {
@@ -405,6 +345,7 @@ export class SpacesGridPage extends Component {
render: (solution: Space['solution'], record: Space) => (
),
+ width: '10%',
});
}
diff --git a/x-pack/plugins/spaces/public/nav_control/solution_view_tour/solution_view_tour.tsx b/x-pack/plugins/spaces/public/nav_control/solution_view_tour/solution_view_tour.tsx
index caa9cc17b053c..eda87809c66b3 100644
--- a/x-pack/plugins/spaces/public/nav_control/solution_view_tour/solution_view_tour.tsx
+++ b/x-pack/plugins/spaces/public/nav_control/solution_view_tour/solution_view_tour.tsx
@@ -28,7 +28,7 @@ const LearnMoreLink = () => (
const solutionMap: Record = {
es: i18n.translate('xpack.spaces.navControl.tour.esSolution', {
- defaultMessage: 'Search',
+ defaultMessage: 'Elasticsearch',
}),
security: i18n.translate('xpack.spaces.navControl.tour.securitySolution', {
defaultMessage: 'Security',
diff --git a/x-pack/plugins/spaces/public/space_selector/__snapshots__/space_selector.test.tsx.snap b/x-pack/plugins/spaces/public/space_selector/__snapshots__/space_selector.test.tsx.snap
index 4419707ab45f4..2b088f54f3535 100644
--- a/x-pack/plugins/spaces/public/space_selector/__snapshots__/space_selector.test.tsx.snap
+++ b/x-pack/plugins/spaces/public/space_selector/__snapshots__/space_selector.test.tsx.snap
@@ -4,7 +4,6 @@ exports[`it renders with custom logo 1`] = `
<_KibanaPageTemplate
className="spcSpaceSelector"
data-test-subj="kibanaSpaceSelector"
- panelled={true}
>
{
}
return (
-
+
{/* Portal the fixed background graphic so it doesn't affect page positioning or overlap on top of global banners */}
),
},
diff --git a/x-pack/plugins/stack_connectors/common/bedrock/constants.ts b/x-pack/plugins/stack_connectors/common/bedrock/constants.ts
index d2ffa0b116bda..de6c10246298a 100644
--- a/x-pack/plugins/stack_connectors/common/bedrock/constants.ts
+++ b/x-pack/plugins/stack_connectors/common/bedrock/constants.ts
@@ -21,8 +21,7 @@ export enum SUB_ACTION {
INVOKE_STREAM = 'invokeStream',
DASHBOARD = 'getDashboard',
TEST = 'test',
- CONVERSE = 'converse',
- CONVERSE_STREAM = 'converseStream',
+ BEDROCK_CLIENT_SEND = 'bedrockClientSend',
}
export const DEFAULT_TIMEOUT_MS = 120000;
diff --git a/x-pack/plugins/stack_connectors/common/bedrock/schema.ts b/x-pack/plugins/stack_connectors/common/bedrock/schema.ts
index c444159c010b2..e9194a752300c 100644
--- a/x-pack/plugins/stack_connectors/common/bedrock/schema.ts
+++ b/x-pack/plugins/stack_connectors/common/bedrock/schema.ts
@@ -26,11 +26,6 @@ export const RunActionParamsSchema = schema.object({
signal: schema.maybe(schema.any()),
timeout: schema.maybe(schema.number()),
raw: schema.maybe(schema.boolean()),
- apiType: schema.maybe(
- schema.oneOf([schema.literal('converse'), schema.literal('invoke')], {
- defaultValue: 'invoke',
- })
- ),
});
export const BedrockMessageSchema = schema.object(
@@ -154,53 +149,11 @@ export const DashboardActionResponseSchema = schema.object({
available: schema.boolean(),
});
-export const ConverseActionParamsSchema = schema.object({
- // Bedrock API Properties
- modelId: schema.maybe(schema.string()),
- messages: schema.arrayOf(
- schema.object({
- role: schema.string(),
- content: schema.any(),
- })
- ),
- system: schema.arrayOf(
- schema.object({
- text: schema.string(),
- })
- ),
- inferenceConfig: schema.object({
- temperature: schema.maybe(schema.number()),
- maxTokens: schema.maybe(schema.number()),
- stopSequences: schema.maybe(schema.arrayOf(schema.string())),
- topP: schema.maybe(schema.number()),
- }),
- toolConfig: schema.maybe(
- schema.object({
- tools: schema.arrayOf(
- schema.object({
- toolSpec: schema.object({
- name: schema.string(),
- description: schema.string(),
- inputSchema: schema.object({
- json: schema.object({
- type: schema.string(),
- properties: schema.object({}, { unknowns: 'allow' }),
- required: schema.maybe(schema.arrayOf(schema.string())),
- additionalProperties: schema.boolean(),
- $schema: schema.maybe(schema.string()),
- }),
- }),
- }),
- })
- ),
- toolChoice: schema.maybe(schema.object({}, { unknowns: 'allow' })),
- })
- ),
- additionalModelRequestFields: schema.maybe(schema.any()),
- additionalModelResponseFieldPaths: schema.maybe(schema.any()),
- guardrailConfig: schema.maybe(schema.any()),
+export const BedrockClientSendParamsSchema = schema.object({
+ // ConverseCommand | ConverseStreamCommand from @aws-sdk/client-bedrock-runtime
+ command: schema.any(),
// Kibana related properties
signal: schema.maybe(schema.any()),
});
-export const ConverseActionResponseSchema = schema.object({}, { unknowns: 'allow' });
+export const BedrockClientSendResponseSchema = schema.object({}, { unknowns: 'allow' });
diff --git a/x-pack/plugins/stack_connectors/common/bedrock/types.ts b/x-pack/plugins/stack_connectors/common/bedrock/types.ts
index e3dd49538176f..2e716a52547cd 100644
--- a/x-pack/plugins/stack_connectors/common/bedrock/types.ts
+++ b/x-pack/plugins/stack_connectors/common/bedrock/types.ts
@@ -21,8 +21,8 @@ import {
RunApiLatestResponseSchema,
BedrockMessageSchema,
BedrockToolChoiceSchema,
- ConverseActionParamsSchema,
- ConverseActionResponseSchema,
+ BedrockClientSendParamsSchema,
+ BedrockClientSendResponseSchema,
} from './schema';
export type Config = TypeOf;
@@ -39,5 +39,5 @@ export type DashboardActionParams = TypeOf;
export type DashboardActionResponse = TypeOf;
export type BedrockMessage = TypeOf;
export type BedrockToolChoice = TypeOf;
-export type ConverseActionParams = TypeOf;
-export type ConverseActionResponse = TypeOf;
+export type ConverseActionParams = TypeOf;
+export type ConverseActionResponse = TypeOf;
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
index 2a4d91a07f1d3..ce3dd90942cf5 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
@@ -30,6 +30,7 @@ jest.mock('../lib/gen_ai/create_gen_ai_dashboard');
// @ts-ignore
const mockSigner = jest.spyOn(aws, 'sign').mockReturnValue({ signed: true });
+const mockSend = jest.fn();
describe('BedrockConnector', () => {
let mockRequest: jest.Mock;
let mockError: jest.Mock;
@@ -89,6 +90,8 @@ describe('BedrockConnector', () => {
beforeEach(() => {
// @ts-ignore
connector.request = mockRequest;
+ // @ts-ignore
+ connector.bedrockClient.send = mockSend;
});
describe('runApi', () => {
@@ -630,6 +633,57 @@ describe('BedrockConnector', () => {
);
});
});
+
+ describe('bedrockClientSend', () => {
+ it('should send the command and return the response', async () => {
+ const command = { input: 'test' };
+ const response = { result: 'success' };
+ mockSend.mockResolvedValue(response);
+
+ const result = await connector.bedrockClientSend(
+ { signal: undefined, command },
+ connectorUsageCollector
+ );
+
+ expect(mockSend).toHaveBeenCalledWith(command, { abortSignal: undefined });
+ expect(result).toEqual(response);
+ });
+
+ it('should handle and split streaming response', async () => {
+ const command = { input: 'test' };
+ const stream = new PassThrough();
+ const response = { stream };
+ mockSend.mockResolvedValue(response);
+
+ const result = (await connector.bedrockClientSend(
+ { signal: undefined, command },
+ connectorUsageCollector
+ )) as unknown as {
+ stream?: unknown;
+ tokenStream?: unknown;
+ };
+
+ expect(mockSend).toHaveBeenCalledWith(command, { abortSignal: undefined });
+ expect(result.stream).toBeDefined();
+ expect(result.tokenStream).toBeDefined();
+ });
+
+ it('should handle non-streaming response', async () => {
+ const command = { input: 'test' };
+ const usage = { stats: 0 };
+ const response = { usage };
+ mockSend.mockResolvedValue(response);
+
+ const result = (await connector.bedrockClientSend(
+ { signal: undefined, command },
+ connectorUsageCollector
+ )) as unknown as {
+ usage?: unknown;
+ };
+ expect(result.usage).toBeDefined();
+ });
+ });
+
describe('getResponseErrorMessage', () => {
it('returns an unknown error message', () => {
// @ts-expect-error expects an axios error as the parameter
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
index 55b631ba9441c..339efa49f69bf 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
@@ -7,6 +7,8 @@
import { ServiceParams, SubActionConnector } from '@kbn/actions-plugin/server';
import aws from 'aws4';
+import { BedrockRuntimeClient } from '@aws-sdk/client-bedrock-runtime';
+import { SmithyMessageDecoderStream } from '@smithy/eventstream-codec';
import { AxiosError, Method } from 'axios';
import { IncomingMessage } from 'http';
import { PassThrough } from 'stream';
@@ -21,7 +23,7 @@ import {
StreamingResponseSchema,
RunActionResponseSchema,
RunApiLatestResponseSchema,
- ConverseActionParamsSchema,
+ BedrockClientSendParamsSchema,
} from '../../../common/bedrock/schema';
import {
Config,
@@ -60,13 +62,20 @@ interface SignedRequest {
export class BedrockConnector extends SubActionConnector {
private url;
private model;
+ private bedrockClient;
constructor(params: ServiceParams) {
super(params);
this.url = this.config.apiUrl;
this.model = this.config.defaultModel;
-
+ this.bedrockClient = new BedrockRuntimeClient({
+ region: extractRegionId(this.config.apiUrl),
+ credentials: {
+ accessKeyId: this.secrets.accessKey,
+ secretAccessKey: this.secrets.secret,
+ },
+ });
this.registerSubActions();
}
@@ -108,15 +117,9 @@ export class BedrockConnector extends SubActionConnector {
});
this.registerSubAction({
- name: SUB_ACTION.CONVERSE,
- method: 'converse',
- schema: ConverseActionParamsSchema,
- });
-
- this.registerSubAction({
- name: SUB_ACTION.CONVERSE_STREAM,
- method: 'converseStream',
- schema: ConverseActionParamsSchema,
+ name: SUB_ACTION.BEDROCK_CLIENT_SEND,
+ method: 'bedrockClientSend',
+ schema: BedrockClientSendParamsSchema,
});
}
@@ -240,15 +243,14 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B
* @param signal Optional signal to cancel the request.
* @param timeout Optional timeout for the request.
* @param raw Optional flag to indicate if the response should be returned as raw data.
- * @param apiType Optional type of API to be called. Defaults to 'invoke', .
*/
public async runApi(
- { body, model: reqModel, signal, timeout, raw, apiType = 'invoke' }: RunActionParams,
+ { body, model: reqModel, signal, timeout, raw }: RunActionParams,
connectorUsageCollector: ConnectorUsageCollector
): Promise {
// set model on per request basis
const currentModel = reqModel ?? this.model;
- const path = `/model/${currentModel}/${apiType}`;
+ const path = `/model/${currentModel}/invoke`;
const signed = this.signRequest(body, path, false);
const requestArgs = {
...signed,
@@ -281,22 +283,18 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B
/**
* NOT INTENDED TO BE CALLED DIRECTLY
- * call invokeStream or converseStream instead
+ * call invokeStream instead
* responsible for making a POST request to a specified URL with a given request body.
* The response is then processed based on whether it is a streaming response or a regular response.
* @param body The stringified request body to be sent in the POST request.
* @param model Optional model to be used for the API request. If not provided, the default model from the connector will be used.
*/
private async streamApi(
- { body, model: reqModel, signal, timeout, apiType = 'invoke' }: RunActionParams,
+ { body, model: reqModel, signal, timeout }: RunActionParams,
connectorUsageCollector: ConnectorUsageCollector
): Promise {
- const streamingApiRoute = {
- invoke: 'invoke-with-response-stream',
- converse: 'converse-stream',
- };
// set model on per request basis
- const path = `/model/${reqModel ?? this.model}/${streamingApiRoute[apiType]}`;
+ const path = `/model/${reqModel ?? this.model}/invoke-with-response-stream`;
const signed = this.signRequest(body, path, true);
const response = await this.request(
@@ -436,45 +434,28 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B
}
/**
- * Sends a request to the Bedrock API to perform a conversation action.
- * @param input - The parameters for the conversation action.
+ * Sends a request via the BedrockRuntimeClient to perform a conversation action.
+ * @param params - The parameters for the conversation action.
+ * @param params.signal - The signal to cancel the request.
+ * @param params.command - The command class to be sent to the API. (ConverseCommand | ConverseStreamCommand)
* @param connectorUsageCollector - The usage collector for the connector.
* @returns A promise that resolves to the response of the conversation action.
*/
- public async converse(
- { signal, ...converseApiInput }: ConverseActionParams,
+ public async bedrockClientSend(
+ { signal, command }: ConverseActionParams,
connectorUsageCollector: ConnectorUsageCollector
): Promise {
- const res = await this.runApi(
- {
- body: JSON.stringify(converseApiInput),
- raw: true,
- apiType: 'converse',
- signal,
- },
- connectorUsageCollector
- );
- return res;
- }
+ connectorUsageCollector.addRequestBodyBytes(undefined, command);
+ const res = await this.bedrockClient.send(command, {
+ abortSignal: signal,
+ });
- /**
- * Sends a request to the Bedrock API to perform a streaming conversation action.
- * @param input - The parameters for the streaming conversation action.
- * @param connectorUsageCollector - The usage collector for the connector.
- * @returns A promise that resolves to the streaming response of the conversation action.
- */
- public async converseStream(
- { signal, ...converseApiInput }: ConverseActionParams,
- connectorUsageCollector: ConnectorUsageCollector
- ): Promise {
- const res = await this.streamApi(
- {
- body: JSON.stringify(converseApiInput),
- apiType: 'converse',
- signal,
- },
- connectorUsageCollector
- );
+ if ('stream' in res) {
+ const resultStream = res.stream as SmithyMessageDecoderStream;
+ // splits the stream in two, [stream = consumer, tokenStream = token tracking]
+ const [stream, tokenStream] = tee(resultStream);
+ return { ...res, stream, tokenStream };
+ }
return res;
}
@@ -571,3 +552,91 @@ function parseContent(content: Array<{ text?: string; type: string }>): string {
}
const usesDeprecatedArguments = (body: string): boolean => JSON.parse(body)?.prompt != null;
+
+function extractRegionId(url: string) {
+ const match = (url ?? '').match(/bedrock\.(.*?)\.amazonaws\./);
+ if (match) {
+ return match[1];
+ } else {
+ // fallback to us-east-1
+ return 'us-east-1';
+ }
+}
+
+/**
+ * Splits an async iterator into two independent async iterators which can be independently read from at different speeds.
+ * @param asyncIterator The async iterator returned from Bedrock to split
+ */
+function tee(
+ asyncIterator: SmithyMessageDecoderStream
+): [SmithyMessageDecoderStream, SmithyMessageDecoderStream] {
+ // @ts-ignore options is private, but we need it to create the new streams
+ const streamOptions = asyncIterator.options;
+
+ const streamLeft = new SmithyMessageDecoderStream(streamOptions);
+ const streamRight = new SmithyMessageDecoderStream(streamOptions);
+
+ // Queues to store chunks for each stream
+ const leftQueue: T[] = [];
+ const rightQueue: T[] = [];
+
+ // Promises for managing when a chunk is available
+ let leftPending: ((chunk: T | null) => void) | null = null;
+ let rightPending: ((chunk: T | null) => void) | null = null;
+
+ const distribute = async () => {
+ for await (const chunk of asyncIterator) {
+ // Push the chunk into both queues
+ if (leftPending) {
+ leftPending(chunk);
+ leftPending = null;
+ } else {
+ leftQueue.push(chunk);
+ }
+
+ if (rightPending) {
+ rightPending(chunk);
+ rightPending = null;
+ } else {
+ rightQueue.push(chunk);
+ }
+ }
+
+ // Signal the end of the iterator
+ if (leftPending) {
+ leftPending(null);
+ }
+ if (rightPending) {
+ rightPending(null);
+ }
+ };
+
+ // Start distributing chunks from the iterator
+ distribute().catch(() => {
+ // swallow errors
+ });
+
+ // Helper to create an async iterator for each stream
+ const createIterator = (
+ queue: T[],
+ setPending: (fn: ((chunk: T | null) => void) | null) => void
+ ) => {
+ return async function* () {
+ while (true) {
+ if (queue.length > 0) {
+ yield queue.shift()!;
+ } else {
+ const chunk = await new Promise((resolve) => setPending(resolve));
+ if (chunk === null) break; // End of the stream
+ yield chunk;
+ }
+ }
+ };
+ };
+
+ // Assign independent async iterators to each stream
+ streamLeft[Symbol.asyncIterator] = createIterator(leftQueue, (fn) => (leftPending = fn));
+ streamRight[Symbol.asyncIterator] = createIterator(rightQueue, (fn) => (rightPending = fn));
+
+ return [streamLeft, streamRight];
+}
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts
index 6023d7715f4ed..628ab7adcd363 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.test.ts
@@ -101,9 +101,50 @@ describe('Azure Open AI Utils', () => {
};
[chatUrl, completionUrl, completionExtensionsUrl].forEach((url: string) => {
const sanitizedBodyString = getRequestWithStreamOption(url, JSON.stringify(body), true);
- expect(sanitizedBodyString).toEqual(
- `{\"messages\":[{\"role\":\"user\",\"content\":\"This is a test\"}],\"stream\":true}`
- );
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ stream: true,
+ stream_options: {
+ include_usage: true,
+ },
+ });
+ });
+ });
+ it('sets stream_options when stream is true', () => {
+ const body = {
+ messages: [
+ {
+ role: 'user',
+ content: 'This is a test',
+ },
+ ],
+ };
+ [chatUrl, completionUrl, completionExtensionsUrl].forEach((url: string) => {
+ const sanitizedBodyString = getRequestWithStreamOption(url, JSON.stringify(body), true);
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ stream: true,
+ stream_options: {
+ include_usage: true,
+ },
+ });
+ });
+ });
+ it('does not sets stream_options when stream is false', () => {
+ const body = {
+ messages: [
+ {
+ role: 'user',
+ content: 'This is a test',
+ },
+ ],
+ };
+ [chatUrl, completionUrl, completionExtensionsUrl].forEach((url: string) => {
+ const sanitizedBodyString = getRequestWithStreamOption(url, JSON.stringify(body), false);
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ stream: false,
+ });
});
});
it('overrides stream parameter if defined in body', () => {
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts
index 02bff6ea2f63a..8825e719f0105 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/azure_openai_utils.ts
@@ -48,6 +48,11 @@ export const getRequestWithStreamOption = (url: string, body: string, stream: bo
const jsonBody = JSON.parse(body);
if (jsonBody) {
jsonBody.stream = stream;
+ if (stream) {
+ jsonBody.stream_options = {
+ include_usage: true,
+ };
+ }
}
return JSON.stringify(jsonBody);
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.test.ts
index b480b72859183..cd65084badc92 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.test.ts
@@ -118,6 +118,31 @@ describe('Open AI Utils', () => {
],
};
+ [OPENAI_CHAT_URL, OPENAI_LEGACY_COMPLETION_URL].forEach((url: string) => {
+ const sanitizedBodyString = getRequestWithStreamOption(
+ url,
+ JSON.stringify(body),
+ false,
+ DEFAULT_OPENAI_MODEL
+ );
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ model: 'gpt-4',
+ stream: false,
+ });
+ });
+ });
+ it('sets stream_options when stream is true', () => {
+ const body = {
+ model: 'gpt-4',
+ messages: [
+ {
+ role: 'user',
+ content: 'This is a test',
+ },
+ ],
+ };
+
[OPENAI_CHAT_URL, OPENAI_LEGACY_COMPLETION_URL].forEach((url: string) => {
const sanitizedBodyString = getRequestWithStreamOption(
url,
@@ -125,9 +150,39 @@ describe('Open AI Utils', () => {
true,
DEFAULT_OPENAI_MODEL
);
- expect(sanitizedBodyString).toEqual(
- `{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"This is a test\"}],\"stream\":true}`
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ model: 'gpt-4',
+ stream: true,
+ stream_options: {
+ include_usage: true,
+ },
+ });
+ });
+ });
+ it('does not set stream_options when stream is false', () => {
+ const body = {
+ model: 'gpt-4',
+ messages: [
+ {
+ role: 'user',
+ content: 'This is a test',
+ },
+ ],
+ };
+
+ [OPENAI_CHAT_URL, OPENAI_LEGACY_COMPLETION_URL].forEach((url: string) => {
+ const sanitizedBodyString = getRequestWithStreamOption(
+ url,
+ JSON.stringify(body),
+ false,
+ DEFAULT_OPENAI_MODEL
);
+ expect(JSON.parse(sanitizedBodyString)).toEqual({
+ messages: [{ content: 'This is a test', role: 'user' }],
+ model: 'gpt-4',
+ stream: false,
+ });
});
});
@@ -182,6 +237,7 @@ describe('Open AI Utils', () => {
expect(sanitizedBodyString).toEqual(bodyString);
});
});
+
describe('removeEndpointFromUrl', () => {
test('removes "/chat/completions" from the end of the URL', () => {
const originalUrl = 'https://api.openai.com/v1/chat/completions';
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.ts
index 7dac5f4692bda..89a29105cd0ca 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/lib/openai_utils.ts
@@ -38,6 +38,11 @@ export const getRequestWithStreamOption = (
if (jsonBody) {
if (APIS_ALLOWING_STREAMING.has(url)) {
jsonBody.stream = stream;
+ if (stream) {
+ jsonBody.stream_options = {
+ include_usage: true,
+ };
+ }
}
jsonBody.model = jsonBody.model || defaultModel;
}
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
index 1362b7610e2cd..33d96451054f4 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
@@ -292,6 +292,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...sampleOpenAiBody,
stream: true,
+ stream_options: { include_usage: true },
model: DEFAULT_OPENAI_MODEL,
}),
headers: {
@@ -338,6 +339,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...body,
stream: true,
+ stream_options: { include_usage: true },
}),
headers: {
Authorization: 'Bearer 123',
@@ -397,6 +399,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...sampleOpenAiBody,
stream: true,
+ stream_options: { include_usage: true },
model: DEFAULT_OPENAI_MODEL,
}),
headers: {
@@ -422,6 +425,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...sampleOpenAiBody,
stream: true,
+ stream_options: { include_usage: true },
model: DEFAULT_OPENAI_MODEL,
}),
headers: {
@@ -448,6 +452,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...sampleOpenAiBody,
stream: true,
+ stream_options: { include_usage: true },
model: DEFAULT_OPENAI_MODEL,
}),
headers: {
@@ -1274,7 +1279,11 @@ describe('OpenAIConnector', () => {
url: 'https://My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15',
method: 'post',
responseSchema: StreamingResponseSchema,
- data: JSON.stringify({ ...sampleAzureAiBody, stream: true }),
+ data: JSON.stringify({
+ ...sampleAzureAiBody,
+ stream: true,
+ stream_options: { include_usage: true },
+ }),
headers: {
'api-key': '123',
'content-type': 'application/json',
@@ -1314,6 +1323,7 @@ describe('OpenAIConnector', () => {
data: JSON.stringify({
...body,
stream: true,
+ stream_options: { include_usage: true },
}),
headers: {
'api-key': '123',
diff --git a/x-pack/plugins/transform/public/app/common/pivot_aggs.test.ts b/x-pack/plugins/transform/public/app/common/pivot_aggs.test.ts
index 61945773faece..5f0bb251a6cb8 100644
--- a/x-pack/plugins/transform/public/app/common/pivot_aggs.test.ts
+++ b/x-pack/plugins/transform/public/app/common/pivot_aggs.test.ts
@@ -100,7 +100,7 @@ describe('getAggConfigFromEsAgg', () => {
field: 'products.base_price',
parentAgg: result,
aggConfig: {
- percents: '1,5,25,50,75,95,99',
+ percents: [1, 5, 25, 50, 75, 95, 99],
},
});
diff --git a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts
index 19a4326644736..eedaa75cb3c9e 100644
--- a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts
+++ b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts
@@ -225,6 +225,7 @@ export interface PivotAggsConfigWithExtra) => void;
selectedField: string;
isValid?: boolean;
+ errorMessages?: string[];
}>;
/** Aggregation specific configuration */
aggConfig: Partial;
@@ -238,6 +239,8 @@ export interface PivotAggsConfigWithExtra string | undefined;
/** Helper text for the aggregation reflecting some configuration info */
helperText?: () => string | undefined;
+ /** Returns validation error messages */
+ getErrorMessages?: () => string[] | undefined;
}
interface PivotAggsConfigPercentiles extends PivotAggsConfigWithUiBase {
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/aggregation_list/popover_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/aggregation_list/popover_form.tsx
index b24adddf8f159..f08746893a2b1 100644
--- a/x-pack/plugins/transform/public/app/sections/create_transform/components/aggregation_list/popover_form.tsx
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/aggregation_list/popover_form.tsx
@@ -242,6 +242,7 @@ export const PopoverForm: React.FC = ({ defaultData, otherAggNames, onCha
});
}}
isValid={aggConfigDef.isValid()}
+ errorMessages={aggConfigDef.getErrorMessages?.()}
/>
) : null}
{isUnsupportedAgg && (
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts
index 783d5d68a7438..46c71c5e149d9 100644
--- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/common.test.ts
@@ -82,7 +82,7 @@ describe('Transform: Define Pivot Common', () => {
aggName: 'the-field.percentiles',
dropDownName: 'percentiles( the-f[i]e>ld )',
AggFormComponent: PercentilesAggForm,
- aggConfig: { percents: '1,5,25,50,75,95,99' },
+ aggConfig: { percents: [1, 5, 25, 50, 75, 95, 99] },
},
'filter( the-f[i]e>ld )': {
agg: 'filter',
@@ -222,7 +222,7 @@ describe('Transform: Define Pivot Common', () => {
dropDownName: 'percentiles( the-f[i]e>ld )',
field: ' the-f[i]e>ld ',
AggFormComponent: PercentilesAggForm,
- aggConfig: { percents: '1,5,25,50,75,95,99' },
+ aggConfig: { percents: [1, 5, 25, 50, 75, 95, 99] },
},
'sum( the-f[i]e>ld )': {
agg: 'sum',
@@ -292,7 +292,7 @@ describe('Transform: Define Pivot Common', () => {
dropDownName: 'percentiles(rt_bytes_bigger)',
field: 'rt_bytes_bigger',
AggFormComponent: PercentilesAggForm,
- aggConfig: { percents: '1,5,25,50,75,95,99' },
+ aggConfig: { percents: [1, 5, 25, 50, 75, 95, 99] },
},
'sum(rt_bytes_bigger)': {
agg: 'sum',
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.test.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.test.ts
new file mode 100644
index 0000000000000..4b97357b5e032
--- /dev/null
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.test.ts
@@ -0,0 +1,146 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { getPercentilesAggConfig } from './config';
+import type { IPivotAggsConfigPercentiles } from './types';
+import { PERCENTILES_AGG_DEFAULT_PERCENTS } from '../../../../../../common';
+
+describe('percentiles agg config', () => {
+ let config: IPivotAggsConfigPercentiles;
+
+ beforeEach(() => {
+ config = getPercentilesAggConfig({
+ agg: 'percentiles',
+ aggName: 'test-agg',
+ field: ['test-field'],
+ dropDownName: 'test-agg',
+ });
+ });
+
+ describe('#setUiConfigFromEs', () => {
+ test('sets field and percents from ES config', () => {
+ // act
+ config.setUiConfigFromEs({
+ field: 'test-field',
+ percents: [10, 20, 30],
+ });
+
+ // assert
+ expect(config.field).toEqual('test-field');
+ expect(config.aggConfig).toEqual({ percents: [10, 20, 30] });
+ });
+ });
+
+ describe('#getEsAggConfig', () => {
+ test('returns null for invalid config', () => {
+ // arrange
+ config.aggConfig.percents = [150]; // invalid percentile value
+
+ // act and assert
+ expect(config.getEsAggConfig()).toBeNull();
+ });
+
+ test('returns valid config', () => {
+ // arrange
+ config.field = 'test-field';
+ config.aggConfig.percents = [10, 20, 30];
+
+ // act and assert
+ expect(config.getEsAggConfig()).toEqual({
+ field: 'test-field',
+ percents: [10, 20, 30],
+ });
+ });
+
+ test('returns default percents if none specified', () => {
+ // arrange
+ config.field = 'test-field';
+
+ // act and assert
+ expect(config.getEsAggConfig()).toEqual({
+ field: 'test-field',
+ percents: PERCENTILES_AGG_DEFAULT_PERCENTS,
+ });
+ });
+ });
+
+ describe('#isValid', () => {
+ test('returns false for percentiles out of range', () => {
+ // arrange
+ config.aggConfig.percents = [150];
+
+ // act and assert
+ expect(config.isValid()).toBeFalsy();
+ expect(config.aggConfig.errors).toContain('PERCENTILE_OUT_OF_RANGE');
+ });
+
+ test('returns false for invalid number format', () => {
+ // arrrange
+ config.aggConfig.pendingPercentileInput = 'invalid';
+
+ // act and assert
+ expect(config.isValid()).toBeFalsy();
+ expect(config.aggConfig.errors).toContain('INVALID_FORMAT');
+ });
+
+ test('returns true for valid percents', () => {
+ // arrange
+ config.aggConfig.percents = [10, 20, 30];
+
+ // act and assert
+ expect(config.isValid()).toBeTruthy();
+ expect(config.aggConfig.errors).toBeUndefined();
+ });
+
+ test('validates pending input along with existing percents', () => {
+ // arrange
+ config.aggConfig.percents = [10, 20, 30];
+ config.aggConfig.pendingPercentileInput = '50';
+
+ // act and assert
+ expect(config.isValid()).toBeTruthy();
+ expect(config.aggConfig.errors).toBeUndefined();
+ });
+ });
+
+ describe('#getErrorMessages', () => {
+ test('returns undefined when there are no errors', () => {
+ // arrange
+ config.aggConfig.errors = undefined;
+
+ // act and assert
+ expect(config.getErrorMessages?.()).toBeUndefined();
+ });
+
+ test('returns undefined when errors array is empty', () => {
+ // arrange
+ config.aggConfig.errors = [];
+
+ // act and assert
+ expect(config.getErrorMessages?.()).toBeUndefined();
+ });
+
+ test('returns translated messages for single error', () => {
+ // arrange
+ config.aggConfig.errors = ['PERCENTILE_OUT_OF_RANGE'];
+
+ // act and assert
+ expect(config.getErrorMessages?.()).toEqual(['Percentiles must be between 0 and 100']);
+ });
+
+ test('returns translated messages for multiple errors', () => {
+ // arrange
+ config.aggConfig.errors = ['PERCENTILE_OUT_OF_RANGE', 'INVALID_FORMAT'];
+
+ // act and assert
+ expect(config.getErrorMessages?.()).toEqual([
+ 'Percentiles must be between 0 and 100',
+ 'Percentile must be a valid number',
+ ]);
+ });
+ });
+});
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.ts
index 34a1602259515..85260e18463ec 100644
--- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.ts
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/config.ts
@@ -5,43 +5,60 @@
* 2.0.
*/
+import { i18n } from '@kbn/i18n';
import { PercentilesAggForm } from './percentiles_form_component';
-import type { IPivotAggsConfigPercentiles } from './types';
+import type {
+ IPivotAggsConfigPercentiles,
+ PercentilesAggConfig,
+ ValidationResult,
+ ValidationResultErrorType,
+} from './types';
import type { PivotAggsConfigBase } from '../../../../../../common';
import {
isPivotAggsConfigWithUiBase,
PERCENTILES_AGG_DEFAULT_PERCENTS,
} from '../../../../../../common';
import type { PivotAggsConfigWithUiBase } from '../../../../../../common/pivot_aggs';
+import { MAX_PERCENTILE_PRECISION, MAX_PERCENTILE_VALUE, MIN_PERCENTILE_VALUE } from './constants';
-/**
- * TODO this callback has been moved.
- * The logic of parsing the string should be improved.
- */
-function parsePercentsInput(inputValue: string | undefined) {
- if (inputValue !== undefined) {
- const strVals: string[] = inputValue.split(',');
- const percents: number[] = [];
- for (const str of strVals) {
- if (str.trim().length > 0 && isNaN(str as any) === false) {
- const val = Number(str);
- if (val >= 0 && val <= 100) {
- percents.push(val);
- } else {
- return [];
- }
- }
+function validatePercentsInput(config: Partial): ValidationResult {
+ const allValues = [...(config.percents ?? [])];
+ const errors: ValidationResultErrorType[] = [];
+ // Combine existing percents with pending input for validation
+ if (config.pendingPercentileInput) {
+ // Replace comma with dot before converting to number
+ const normalizedInput = config.pendingPercentileInput.replace(',', '.');
+ const pendingValue = Number(normalizedInput);
+
+ if (allValues.includes(pendingValue)) {
+ errors.push('DUPLICATE_VALUE');
+ }
+
+ if (normalizedInput.replace('.', '').length > MAX_PERCENTILE_PRECISION) {
+ errors.push('NUMBER_TOO_PRECISE');
}
- return percents;
+ allValues.push(pendingValue);
}
- return [];
-}
+ if (allValues.length === 0) {
+ return {
+ isValid: false,
+ errors: [],
+ };
+ }
+
+ if (allValues.some((value) => isNaN(value))) {
+ errors.push('INVALID_FORMAT');
+ }
+ if (allValues.some((value) => value < MIN_PERCENTILE_VALUE || value > MAX_PERCENTILE_VALUE)) {
+ errors.push('PERCENTILE_OUT_OF_RANGE');
+ }
-// Input string should only include comma separated numbers
-function isValidPercentsInput(inputValue: string) {
- return /^[0-9]+(,[0-9]+)*$/.test(inputValue);
+ return {
+ isValid: errors.length === 0,
+ errors: errors.length > 0 ? errors : undefined,
+ };
}
export function getPercentilesAggConfig(
@@ -56,13 +73,13 @@ export function getPercentilesAggConfig(
AggFormComponent: PercentilesAggForm,
field,
aggConfig: {
- percents: PERCENTILES_AGG_DEFAULT_PERCENTS.toString(),
+ percents: PERCENTILES_AGG_DEFAULT_PERCENTS,
},
setUiConfigFromEs(esAggDefinition) {
const { field: esField, percents } = esAggDefinition;
this.field = esField;
- this.aggConfig.percents = percents.join(',');
+ this.aggConfig.percents = percents;
},
getEsAggConfig() {
if (!this.isValid()) {
@@ -71,13 +88,36 @@ export function getPercentilesAggConfig(
return {
field: this.field as string,
- percents: parsePercentsInput(this.aggConfig.percents),
+ percents: this.aggConfig.percents ?? [],
};
},
isValid() {
- return (
- typeof this.aggConfig.percents === 'string' && isValidPercentsInput(this.aggConfig.percents)
- );
+ const validationResult = validatePercentsInput(this.aggConfig);
+ this.aggConfig.errors = validationResult.errors;
+ return validationResult.isValid;
+ },
+ getErrorMessages() {
+ if (!this.aggConfig.errors?.length) return;
+
+ return this.aggConfig.errors.map((error) => ERROR_MESSAGES[error]);
},
};
}
+
+const ERROR_MESSAGES: Record = {
+ INVALID_FORMAT: i18n.translate('xpack.transform.agg.popoverForm.invalidFormatError', {
+ defaultMessage: 'Percentile must be a valid number',
+ }),
+ PERCENTILE_OUT_OF_RANGE: i18n.translate(
+ 'xpack.transform.agg.popoverForm.percentileOutOfRangeError',
+ {
+ defaultMessage: 'Percentiles must be between 0 and 100',
+ }
+ ),
+ NUMBER_TOO_PRECISE: i18n.translate('xpack.transform.agg.popoverForm.numberTooPreciseError', {
+ defaultMessage: 'Value is too precise. Use fewer decimal places.',
+ }),
+ DUPLICATE_VALUE: i18n.translate('xpack.transform.agg.popoverForm.duplicateValueError', {
+ defaultMessage: 'Value already exists',
+ }),
+};
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/constants.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/constants.ts
new file mode 100644
index 0000000000000..4942d3b2f2d1e
--- /dev/null
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/constants.ts
@@ -0,0 +1,10 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export const MAX_PERCENTILE_PRECISION = 17;
+export const MAX_PERCENTILE_VALUE = 100;
+export const MIN_PERCENTILE_VALUE = 0;
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/percentiles_form_component.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/percentiles_form_component.tsx
index 18f619351c46f..d8b32cd8311f1 100644
--- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/percentiles_form_component.tsx
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/percentiles_form_component.tsx
@@ -5,38 +5,84 @@
* 2.0.
*/
-import React from 'react';
+import React, { useCallback, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
-import { EuiFieldText, EuiFormRow } from '@elastic/eui';
+import type { EuiComboBoxOptionOption } from '@elastic/eui';
+import { EuiComboBox, EuiFormRow } from '@elastic/eui';
import type { IPivotAggsConfigPercentiles } from './types';
export const PercentilesAggForm: IPivotAggsConfigPercentiles['AggFormComponent'] = ({
aggConfig,
onChange,
isValid,
+ errorMessages,
}) => {
+ const selectedOptions = useMemo(
+ () => aggConfig.percents?.map((p) => ({ label: p.toString() })) ?? [],
+ [aggConfig.percents]
+ );
+
+ const handleCreateOption = useCallback(
+ (inputValue: string) => {
+ if (!isValid) return false;
+
+ const newValue = Number(inputValue.replace(',', '.'));
+
+ const newOption = {
+ label: newValue.toString(),
+ };
+ const updatedOptions = [...selectedOptions, newOption];
+
+ onChange({
+ percents: updatedOptions.map((option) => Number(option.label)),
+ });
+ },
+ [isValid, onChange, selectedOptions]
+ );
+
+ const handleOptionsChange = useCallback(
+ (newOptions: Array>) => {
+ onChange({ percents: newOptions.map((option) => Number(option.label)) });
+ },
+ [onChange]
+ );
+
+ const handleSearchChange = useCallback(
+ (searchValue: string) => {
+ // If we're clearing the input after a valid creation,
+ // this is the post-creation cleanup
+ if (searchValue === '' && aggConfig.pendingPercentileInput && isValid) return;
+
+ onChange({
+ ...aggConfig,
+ pendingPercentileInput: searchValue,
+ });
+ },
+ [aggConfig, onChange, isValid]
+ );
+
+ // Get the last error message if there are any
+ const lastErrorMessage = errorMessages?.length
+ ? errorMessages[errorMessages.length - 1]
+ : undefined;
+
return (
<>
- {
- onChange({
- percents: e.target.value,
- });
- }}
+
>
diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/types.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/types.ts
index fc16ba89a88ca..d4dbe83425cd5 100644
--- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/types.ts
+++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/percentiles_agg/types.ts
@@ -8,10 +8,23 @@
import type { PivotAggsConfigWithExtra } from '../../../../../../common/pivot_aggs';
export interface PercentilesAggConfig {
- /** Comma separated list */
- percents: string;
+ percents: number[];
+ pendingPercentileInput?: string;
+ errors?: ValidationResultErrorType[];
}
+
+export type ValidationResultErrorType =
+ | 'INVALID_FORMAT'
+ | 'PERCENTILE_OUT_OF_RANGE'
+ | 'NUMBER_TOO_PRECISE'
+ | 'DUPLICATE_VALUE';
+
export type IPivotAggsConfigPercentiles = PivotAggsConfigWithExtra<
PercentilesAggConfig,
{ field: string; percents: number[] }
>;
+
+export interface ValidationResult {
+ isValid: boolean;
+ errors?: ValidationResultErrorType[];
+}
diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json
index 6d1ba23a5f6c4..2da357aa68461 100644
--- a/x-pack/plugins/translations/translations/fr-FR.json
+++ b/x-pack/plugins/translations/translations/fr-FR.json
@@ -406,9 +406,6 @@
"cellActions.extraActionsAriaLabel": "Actions supplémentaires",
"cellActions.showMoreActionsLabel": "Plus d'actions",
"cellActions.youAreInADialogContainingOptionsScreenReaderOnly": "Vous êtes dans une boîte de dialogue contenant des options pour le champ {fieldName}. Appuyez sur Tab pour naviguer entre les options. Appuyez sur Échap pour quitter.",
- "charts.advancedSettings.visualization.colorMappingText": "Mappe des valeurs à des couleurs spécifiques dans les graphiques avec la palette Compatibilité.",
- "charts.advancedSettings.visualization.colorMappingTextDeprecation": "Ce paramètre est déclassé et ne sera plus compatible avec les futures versions.",
- "charts.advancedSettings.visualization.colorMappingTitle": "Mapping des couleurs",
"charts.advancedSettings.visualization.useLegacyTimeAxis.deprecation": "Ce paramètre est déclassé et ne sera plus compatible avec les futures versions.",
"charts.advancedSettings.visualization.useLegacyTimeAxis.description": "Active l'axe de temps hérité pour les graphiques dans Lens, Discover, Visualize et TSVB",
"charts.advancedSettings.visualization.useLegacyTimeAxis.name": "Axe de temps hérité pour les graphiques",
@@ -3145,6 +3142,8 @@
"esqlEditor.query.EnableWordWrapLabel": "Ajouter des sauts de ligne aux barres verticales",
"esqlEditor.query.errorCount": "{count} {count, plural, one {erreur} other {erreurs}}",
"esqlEditor.query.errorsTitle": "Erreurs",
+ "esqlEditor.query.esqlQueriesCopy": "Copier la requête dans le presse-papier",
+ "esqlEditor.query.esqlQueriesListRun": "Exécuter la requête",
"esqlEditor.query.expandLabel": "Développer",
"esqlEditor.query.feedback": "Commentaires",
"esqlEditor.query.hideQueriesLabel": "Masquer les recherches récentes",
@@ -3154,8 +3153,6 @@
"esqlEditor.query.lineNumber": "Ligne {lineNumber}",
"esqlEditor.query.querieshistory.error": "La requête a échouée",
"esqlEditor.query.querieshistory.success": "La requête a été exécuté avec succès",
- "esqlEditor.query.esqlQueriesCopy": "Copier la requête dans le presse-papier",
- "esqlEditor.query.esqlQueriesListRun": "Exécuter la requête",
"esqlEditor.query.querieshistoryTable": "Tableau d'historique des recherches",
"esqlEditor.query.recentQueriesColumnLabel": "Recherches récentes",
"esqlEditor.query.refreshLabel": "Actualiser",
@@ -11021,12 +11018,6 @@
"xpack.apm.dependencyOperationDistributionChart.allSpansLegendLabel": "Tous les intervalles",
"xpack.apm.dependencyOperationDistributionChart.failedSpansLegendLabel": "Intervalles ayant échoué",
"xpack.apm.dependencyThroughputChart.chartTitle": "Rendement",
- "xpack.apm.deprecations.legacyModeTitle": "Le serveur APM fonctionne en mode hérité",
- "xpack.apm.deprecations.message": "L'exécution directe du binaire du serveur APM est considérée comme une option héritée et sera déclassée et retirée à l'avenir.",
- "xpack.apm.deprecations.steps.apm": "Naviguer vers Observabilité/APM",
- "xpack.apm.deprecations.steps.schema": "Sélectionner l'onglet \"Schema\"",
- "xpack.apm.deprecations.steps.settings": "Cliquer sur \"Settings\"",
- "xpack.apm.deprecations.steps.switch": "Cliquez sur \"Passer à Elastic Agent\". Vous serez guidé tout au long du processus",
"xpack.apm.diagnostics.loading": "Chargement des diagnostics",
"xpack.apm.diagnostics.tab.apmEvents": "Documents",
"xpack.apm.diagnostics.tab.datastreams": "Flux de données",
@@ -12507,7 +12498,6 @@
"xpack.banners.settings.textContent.title": "Texte de la bannière",
"xpack.canvas.addCanvasElementTrigger.description": "Une nouvelle action apparaît dans le menu du panneau d'ajout Canvas",
"xpack.canvas.addCanvasElementTrigger.title": "Menu Ajouter un panneau",
- "xpack.canvas.appDescription": "Vos données méritent une présentation irréprochable.",
"xpack.canvas.argAddPopover.addAriaLabel": "Ajouter un argument",
"xpack.canvas.argFormAdvancedFailure.applyButtonLabel": "Appliquer",
"xpack.canvas.argFormAdvancedFailure.resetButtonLabel": "Réinitialiser",
@@ -12696,7 +12686,6 @@
"xpack.canvas.expressionTypes.argTypes.seriesStyle.styleLabel": "Style",
"xpack.canvas.expressionTypes.argTypes.seriesStyleLabel": "Définir le style d'une série nommée sélectionnée",
"xpack.canvas.expressionTypes.argTypes.seriesStyleTitle": "Style de la série",
- "xpack.canvas.featureCatalogue.canvasSubtitle": "Concevez des présentations irréprochables.",
"xpack.canvas.features.reporting.pdf": "Générer des rapports PDF",
"xpack.canvas.features.reporting.pdfFeatureName": "Reporting",
"xpack.canvas.formatMsg.toaster.errorStatusMessage": "Erreur {errStatus} {errStatusText} : {errMessage}.",
@@ -18599,7 +18588,6 @@
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.description": "Envoyez une requête de test pour confirmer que votre client de langage et votre instance Elasticsearch sont opérationnels.",
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.title": "Tester votre connexion",
"xpack.enterpriseSearch.overview.navTitle": "Aperçu",
- "xpack.enterpriseSearch.overview.setupCta.description": "Ajoutez des fonctions de recherche à votre application ou à votre organisation interne avec Elastic App Search et Workplace Search. Regardez la vidéo pour savoir ce qu'il est possible de faire lorsque la recherche est facilitée.",
"xpack.enterpriseSearch.pageTemplate.endpointsButtonLabel": "Points de terminaison et clés d'API",
"xpack.enterpriseSearch.passwordLabel": "Mot de passe",
"xpack.enterpriseSearch.pipeline.title": "Transformer et enrichir vos données",
@@ -18922,7 +18910,6 @@
"xpack.enterpriseSearch.searchNav.otherTools": "Autres outils",
"xpack.enterpriseSearch.searchNav.relevance": "Pertinence",
"xpack.enterpriseSearch.searchProvider.aiSearch.name": "Intelligence artificielle de recherche",
- "xpack.enterpriseSearch.searchProvider.type.name": "Recherche",
"xpack.enterpriseSearch.searchProvider.webCrawler.name": "Robot d'indexation d'Elastic",
"xpack.enterpriseSearch.selectConnector.badgeOnClick.ariaLabel": "Cliquer pour ouvrir la fenêtre contextuelle d'explication du connecteur",
"xpack.enterpriseSearch.selectConnector.connectorClientBadgeLabel": "Autogéré",
@@ -36555,7 +36542,6 @@
"xpack.security.management.editRole.featureTable.cannotCustomizeSubFeaturesTooltip": "La personnalisation des privilèges de sous-fonctionnalité est une fonctionnalité soumise à abonnement.",
"xpack.security.management.editRole.featureTable.customizeSubFeaturePrivilegesSwitchLabel": "Personnaliser les privilèges des sous-fonctionnalités",
"xpack.security.management.editRole.featureTable.featureAccordionSwitchLabel": "{grantedCount}/{featureCount} {featureCount, plural, one {fonctionnalité accordée} other {fonctionnalités accordées}}",
- "xpack.security.management.editRole.featureTable.featureVisibilityTitle": "Personnaliser les privilèges des fonctionnalités",
"xpack.security.management.editRole.featureTable.managementCategoryHelpText": "Des autorisations de gestion de suite supplémentaires sont disponibles en dehors de ce menu, dans les privilèges d'index et de cluster.",
"xpack.security.management.editRole.featureTable.privilegeCustomizationTooltip": "La fonctionnalité possède des privilèges de sous-fonctionnalités personnalisés. Développez cette ligne pour en savoir plus.",
"xpack.security.management.editRole.indexPrivilegeForm.clustersFormRowLabel": "Clusters distants",
@@ -36615,18 +36601,10 @@
"xpack.security.management.editRole.spaceAwarePrivilegeForm.kibanaAdminTitle": "kibana_admin",
"xpack.security.management.editRole.spacePrivilegeForm.basePrivilegeControlLegend": "Privilèges pour toutes les fonctionnalités",
"xpack.security.management.editRole.spacePrivilegeForm.cancelButton": "Annuler",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivilegeDescription": "Augmentez les niveaux de privilèges sur la base de chaque fonctionnalité. Certaines fonctionnalités peuvent être masquées par l'espace ou concernées par un privilège d'espace global.",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivileges": "Personnaliser par fonctionnalité",
- "xpack.security.management.editRole.spacePrivilegeForm.featurePrivilegeSummaryDescription": "Certaines fonctionnalités peuvent être masquées par l'espace ou concernées par un privilège d'espace global.",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeNotice": "Ces privilèges s'appliqueront à tous les espaces, actuels et futurs.",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeWarning": "La création d'un privilège global peut impacter vos autres privilèges liés aux espaces.",
- "xpack.security.management.editRole.spacePrivilegeForm.modalHeadline": "Ce rôle aura accès aux espaces suivants",
- "xpack.security.management.editRole.spacePrivilegeForm.modalTitle": "Affecter un rôle à l'espace",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormHelpText": "Affectez le niveau de privilège que vous souhaitez accorder à toutes les fonctionnalités présentes et futures de cet espace.",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormLabel": "Privilèges pour toutes les fonctionnalités",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormHelpText": "Sélectionnez un ou plusieurs espaces Kibana auxquels vous souhaitez affecter des privilèges.",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormLabel": "Espaces",
- "xpack.security.management.editRole.spacePrivilegeForm.summaryOfFeaturePrivileges": "Résumé des privilèges des fonctionnalités",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarning": "Les privilèges déclarés sont moins flexibles que les privilèges globaux configurés. Affichez le résumé des privilèges pour voir les privilèges effectifs.",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarningTitle": "Remplacé par les privilèges globaux",
"xpack.security.management.editRole.spacePrivilegeMatrix.globalSpaceName": "Tous les espaces",
@@ -36759,9 +36737,7 @@
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowHelpText": "Si aucun champ n'est accordé, les utilisateurs affectés à ce rôle ne pourront voir aucune donnée pour cet index.",
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowLabel": "Champs accordés",
"xpack.security.management.editRoles.indexPrivilegeForm.grantFieldPrivilegesLabel": "Accorder l'accès aux champs spécifiques",
- "xpack.security.management.editRolespacePrivilegeForm.createGlobalPrivilegeButton": "Créer un privilège global",
"xpack.security.management.editRolespacePrivilegeForm.createPrivilegeButton": "Ajouter un privilège Kibana",
- "xpack.security.management.editRolespacePrivilegeForm.updateGlobalPrivilegeButton": "Mettre à jour le privilège global",
"xpack.security.management.editRolespacePrivilegeForm.updatePrivilegeButton": "Mettre à jour le privilège d'espace",
"xpack.security.management.enabledBadge": "Activé",
"xpack.security.management.readonlyBadge.text": "Lecture seule",
@@ -44876,7 +44852,6 @@
"xpack.spaces.management.spaceDetails.footerActions.updateSpace": "Appliquer les modifications",
"xpack.spaces.management.spaceDetails.keepEditingButton": "Enregistrer avant de quitter",
"xpack.spaces.management.spaceDetails.leavePageButton": "Quitter",
- "xpack.spaces.management.spaceDetails.privilegeForm.heading": "Définissez les privilèges qu'un rôle donné devrait avoir dans cet espace.",
"xpack.spaces.management.spaceDetails.roles.assign": "Attribuer de nouveaux rôles",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.description": "La mise à jour en groupe des paramètres ici remplacera les paramètres individuels actuels.",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.title": "Les privilèges s'appliqueront uniquement à cet espace.",
@@ -44927,7 +44902,6 @@
"xpack.spaces.management.spaceIdentifier.kibanaURLForSpaceIdentifierDescription": "Vous ne pouvez pas modifier l'identifiant d'URL après sa création.",
"xpack.spaces.management.spaceIdentifier.urlIdentifierTitle": "Identifiant d'URL",
"xpack.spaces.management.spacesGridPage.actionsColumnName": "Actions",
- "xpack.spaces.management.spacesGridPage.allFeaturesEnabled": "Toutes les fonctionnalités",
"xpack.spaces.management.spacesGridPage.createSpaceButtonLabel": "Créer l'espace",
"xpack.spaces.management.spacesGridPage.currentSpaceMarkerText": "actuel",
"xpack.spaces.management.spacesGridPage.deleteActionDescription": "Supprimer {spaceName}",
@@ -44937,13 +44911,10 @@
"xpack.spaces.management.spacesGridPage.editSpaceActionDescription": "Modifier {spaceName}.",
"xpack.spaces.management.spacesGridPage.editSpaceActionName": "Modifier",
"xpack.spaces.management.spacesGridPage.errorTitle": "Erreur lors du chargement des espaces",
- "xpack.spaces.management.spacesGridPage.featuresColumnName": "Fonctionnalités visibles",
"xpack.spaces.management.spacesGridPage.identifierColumnName": "Identificateur",
"xpack.spaces.management.spacesGridPage.loadingTitle": "chargement…",
- "xpack.spaces.management.spacesGridPage.noFeaturesEnabled": "Aucune fonctionnalité visible",
"xpack.spaces.management.spacesGridPage.searchPlaceholder": "Recherche",
"xpack.spaces.management.spacesGridPage.solutionColumnName": "Afficher la solution",
- "xpack.spaces.management.spacesGridPage.someFeaturesEnabled": "{enabledFeatureCount}/{totalFeatureCount}",
"xpack.spaces.management.spacesGridPage.spaceColumnName": "Espace",
"xpack.spaces.management.spacesGridPage.spacesTitle": "Espaces",
"xpack.spaces.management.spacesGridPage.switchSpaceActionDescription": "Basculer vers {spaceName}",
@@ -47513,7 +47484,6 @@
"xpack.transform.groupBy.popoverForm.fieldLabel": "Champ",
"xpack.transform.groupBy.popoverForm.intervalError": "Intervalle non valide.",
"xpack.transform.groupBy.popoverForm.intervalLabel": "Intervalle",
- "xpack.transform.groupBy.popoverForm.intervalPercents": "Entrer une liste de centiles séparés par des virgules",
"xpack.transform.groupBy.popoverForm.invalidSizeErrorMessage": "Entrer un nombre positif valide",
"xpack.transform.groupBy.popoverForm.missingBucketCheckboxHelpText": "Cochez cette case pour inclure les documents sans valeur.",
"xpack.transform.groupby.popoverForm.missingBucketCheckboxLabel": "Inclure les compartiments manquants",
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index 04bc03184b777..b564cac6e8c13 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -406,9 +406,6 @@
"cellActions.extraActionsAriaLabel": "追加のアクション",
"cellActions.showMoreActionsLabel": "さらにアクションを表示",
"cellActions.youAreInADialogContainingOptionsScreenReaderOnly": "フィールド {fieldName} のオプションを含む、ダイアログを表示しています。Tab を押すと、オプションを操作します。Escapeを押すと、終了します。",
- "charts.advancedSettings.visualization.colorMappingText": "互換性パレットを使用して、グラフで値を特定の色にマッピングします。",
- "charts.advancedSettings.visualization.colorMappingTextDeprecation": "この設定はサポートが終了し、将来のバージョンではサポートされません。",
- "charts.advancedSettings.visualization.colorMappingTitle": "カラーマッピング",
"charts.advancedSettings.visualization.useLegacyTimeAxis.deprecation": "この設定はサポートが終了し、将来のバージョンではサポートされません。",
"charts.advancedSettings.visualization.useLegacyTimeAxis.description": "Lens、Discover、Visualize、およびTSVBでグラフのレガシー時間軸を有効にします",
"charts.advancedSettings.visualization.useLegacyTimeAxis.name": "レガシーグラフ時間軸",
@@ -3139,6 +3136,8 @@
"esqlEditor.query.EnableWordWrapLabel": "パイプの改行を追加",
"esqlEditor.query.errorCount": "{count} {count, plural, other {# 件のエラー}}",
"esqlEditor.query.errorsTitle": "エラー",
+ "esqlEditor.query.esqlQueriesCopy": "クエリをクリップボードにコピー",
+ "esqlEditor.query.esqlQueriesListRun": "クエリーを実行",
"esqlEditor.query.expandLabel": "拡張",
"esqlEditor.query.feedback": "フィードバック",
"esqlEditor.query.hideQueriesLabel": "最近のクエリーを非表示",
@@ -3148,8 +3147,6 @@
"esqlEditor.query.lineNumber": "行{lineNumber}",
"esqlEditor.query.querieshistory.error": "クエリ失敗",
"esqlEditor.query.querieshistory.success": "クエリは正常に実行されました",
- "esqlEditor.query.esqlQueriesCopy": "クエリをクリップボードにコピー",
- "esqlEditor.query.esqlQueriesListRun": "クエリーを実行",
"esqlEditor.query.querieshistoryTable": "クエリ履歴テーブル",
"esqlEditor.query.recentQueriesColumnLabel": "最近のクエリー",
"esqlEditor.query.refreshLabel": "更新",
@@ -11005,12 +11002,6 @@
"xpack.apm.dependencyOperationDistributionChart.allSpansLegendLabel": "すべてのスパン",
"xpack.apm.dependencyOperationDistributionChart.failedSpansLegendLabel": "失敗したスパン",
"xpack.apm.dependencyThroughputChart.chartTitle": "スループット",
- "xpack.apm.deprecations.legacyModeTitle": "APMサーバーはレガシーモードで実行されています",
- "xpack.apm.deprecations.message": "APMサーバーバイナリの直接実行はレガシーオプションと見なされるため、廃止予定であり、将来は削除されます。",
- "xpack.apm.deprecations.steps.apm": "Observability/APMに移動",
- "xpack.apm.deprecations.steps.schema": "[スキーマ]タブを選択します",
- "xpack.apm.deprecations.steps.settings": "[設定]をクリックします",
- "xpack.apm.deprecations.steps.switch": "[Elasticエージェントに切り替える]をクリックします。手順が案内されます。",
"xpack.apm.diagnostics.loading": "診断を読み込んでいます",
"xpack.apm.diagnostics.tab.apmEvents": "ドキュメント",
"xpack.apm.diagnostics.tab.datastreams": "データストリーム",
@@ -12491,7 +12482,6 @@
"xpack.banners.settings.textContent.title": "バナーテキスト",
"xpack.canvas.addCanvasElementTrigger.description": "新しいアクションは、キャンバスのパネルの追加メニューに表示されます",
"xpack.canvas.addCanvasElementTrigger.title": "パネルの追加メニュー",
- "xpack.canvas.appDescription": "データを完璧に美しく表現します。",
"xpack.canvas.argAddPopover.addAriaLabel": "引数を追加",
"xpack.canvas.argFormAdvancedFailure.applyButtonLabel": "適用",
"xpack.canvas.argFormAdvancedFailure.resetButtonLabel": "リセット",
@@ -12680,7 +12670,6 @@
"xpack.canvas.expressionTypes.argTypes.seriesStyle.styleLabel": "スタイル",
"xpack.canvas.expressionTypes.argTypes.seriesStyleLabel": "選択された名前付きの数列のスタイルを設定",
"xpack.canvas.expressionTypes.argTypes.seriesStyleTitle": "数列スタイル",
- "xpack.canvas.featureCatalogue.canvasSubtitle": "詳細まで正確な表示を設計します。",
"xpack.canvas.features.reporting.pdf": "PDFレポートを生成",
"xpack.canvas.features.reporting.pdfFeatureName": "レポート",
"xpack.canvas.formatMsg.toaster.errorStatusMessage": "エラー {errStatus} {errStatusText}: {errMessage}",
@@ -18571,7 +18560,6 @@
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.description": "テストリクエストを送信して、言語クライアントとElasticsearchインスタンスが起動し、実行中であることを確認してください。",
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.title": "接続をテスト",
"xpack.enterpriseSearch.overview.navTitle": "概要",
- "xpack.enterpriseSearch.overview.setupCta.description": "Elastic App Search および Workplace Search を使用して、アプリまたは社内組織に検索を追加できます。検索が簡単になるとどのような利点があるのかについては、動画をご覧ください。",
"xpack.enterpriseSearch.pageTemplate.endpointsButtonLabel": "エンドポイントとAPIキー",
"xpack.enterpriseSearch.passwordLabel": "パスワード",
"xpack.enterpriseSearch.pipeline.title": "データの変換とエンリッチ",
@@ -18892,7 +18880,6 @@
"xpack.enterpriseSearch.searchNav.mngt": "スタック管理",
"xpack.enterpriseSearch.searchNav.otherTools": "その他のツール",
"xpack.enterpriseSearch.searchProvider.aiSearch.name": "検索AI",
- "xpack.enterpriseSearch.searchProvider.type.name": "検索",
"xpack.enterpriseSearch.searchProvider.webCrawler.name": "Elastic Webクローラー",
"xpack.enterpriseSearch.selectConnector.badgeOnClick.ariaLabel": "クリックすると、コネクター説明ポップオーバーが開きます",
"xpack.enterpriseSearch.selectConnector.connectorClientBadgeLabel": "セルフマネージド",
@@ -36523,7 +36510,6 @@
"xpack.security.management.editRole.featureTable.cannotCustomizeSubFeaturesTooltip": "サブ機能権限のカスタマイズはサブスクリプション機能です。",
"xpack.security.management.editRole.featureTable.customizeSubFeaturePrivilegesSwitchLabel": "サブ機能権限をカスタマイズする",
"xpack.security.management.editRole.featureTable.featureAccordionSwitchLabel": "{grantedCount} / {featureCount} {featureCount, plural, other {機能}}が付与されました",
- "xpack.security.management.editRole.featureTable.featureVisibilityTitle": "機能権限をカスタマイズ",
"xpack.security.management.editRole.featureTable.managementCategoryHelpText": "追加のスタック管理権限は、このメニューの外にあるインデックス権限とクラスター権限をご覧ください。",
"xpack.security.management.editRole.featureTable.privilegeCustomizationTooltip": "機能でサブ機能の権限がカスタマイズされています。この行を展開すると詳細が表示されます。",
"xpack.security.management.editRole.indexPrivilegeForm.clustersFormRowLabel": "リモートクラスター",
@@ -36583,18 +36569,10 @@
"xpack.security.management.editRole.spaceAwarePrivilegeForm.kibanaAdminTitle": "kibana_admin",
"xpack.security.management.editRole.spacePrivilegeForm.basePrivilegeControlLegend": "すべての機能の権限",
"xpack.security.management.editRole.spacePrivilegeForm.cancelButton": "キャンセル",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivilegeDescription": "機能ごとに権限のレベルを上げます。機能によってはスペースごとに非表示になっているか、グローバルスペース権限による影響を受けているものもあります。",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivileges": "機能ごとにカスタマイズ",
- "xpack.security.management.editRole.spacePrivilegeForm.featurePrivilegeSummaryDescription": "機能によってはスペースごとに非表示になっているか、グローバルスペース権限による影響を受けているものもあります。",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeNotice": "これらの権限はすべての現在および未来のスペースに適用されます。",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeWarning": "グローバル権限の作成は他のスペース権限に影響を与える可能性があります。",
- "xpack.security.management.editRole.spacePrivilegeForm.modalHeadline": "このロールには、次のスペースへのアクセス権が付与されます",
- "xpack.security.management.editRole.spacePrivilegeForm.modalTitle": "ロールをスペースに割り当て",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormHelpText": "このスペース全体の現在と将来のすべての機能に対して、付与する権限レベルを割り当てます。",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormLabel": "すべての機能の権限",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormHelpText": "権限を割り当てる1つ以上のKibanaスペースを選択します。",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormLabel": "スペース",
- "xpack.security.management.editRole.spacePrivilegeForm.summaryOfFeaturePrivileges": "機能権限のサマリー",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarning": "宣言された権限は、構成済みグローバル権限よりも許容度が低くなります。権限サマリーを表示すると有効な権限がわかります。",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarningTitle": "グローバル権限に置き換え",
"xpack.security.management.editRole.spacePrivilegeMatrix.globalSpaceName": "すべてのスペース",
@@ -36727,9 +36705,7 @@
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowHelpText": "フィールドが提供されていない場合、このロールのユーザーはこのインデックスのデータを表示できません。",
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowLabel": "許可されたフィールド",
"xpack.security.management.editRoles.indexPrivilegeForm.grantFieldPrivilegesLabel": "特定のフィールドへのアクセスを許可",
- "xpack.security.management.editRolespacePrivilegeForm.createGlobalPrivilegeButton": "グローバル権限を作成",
"xpack.security.management.editRolespacePrivilegeForm.createPrivilegeButton": "Kibanaの権限を追加",
- "xpack.security.management.editRolespacePrivilegeForm.updateGlobalPrivilegeButton": "グローバル特権を更新",
"xpack.security.management.editRolespacePrivilegeForm.updatePrivilegeButton": "スペース権限を更新",
"xpack.security.management.enabledBadge": "有効",
"xpack.security.management.readonlyBadge.text": "読み取り専用",
@@ -44836,7 +44812,6 @@
"xpack.spaces.management.spaceDetails.footerActions.updateSpace": "変更を適用",
"xpack.spaces.management.spaceDetails.keepEditingButton": "移動する前に保存",
"xpack.spaces.management.spaceDetails.leavePageButton": "移動",
- "xpack.spaces.management.spaceDetails.privilegeForm.heading": "このスペースで特定のロールに割り当てる権限を定義します。",
"xpack.spaces.management.spaceDetails.roles.assign": "新しいロールを割り当て",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.description": "ここで設定を一括更新すると、現在の個別の設定が上書きされます。",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.title": "権限はこのスペースにのみ適用されます。",
@@ -44887,7 +44862,6 @@
"xpack.spaces.management.spaceIdentifier.kibanaURLForSpaceIdentifierDescription": "作成した後はURL識別子を変更できません。",
"xpack.spaces.management.spaceIdentifier.urlIdentifierTitle": "URL 識別子",
"xpack.spaces.management.spacesGridPage.actionsColumnName": "アクション",
- "xpack.spaces.management.spacesGridPage.allFeaturesEnabled": "すべての機能",
"xpack.spaces.management.spacesGridPage.createSpaceButtonLabel": "スペースを作成",
"xpack.spaces.management.spacesGridPage.currentSpaceMarkerText": "現在",
"xpack.spaces.management.spacesGridPage.deleteActionDescription": "{spaceName}を削除",
@@ -44897,13 +44871,10 @@
"xpack.spaces.management.spacesGridPage.editSpaceActionDescription": "{spaceName} を編集。",
"xpack.spaces.management.spacesGridPage.editSpaceActionName": "編集",
"xpack.spaces.management.spacesGridPage.errorTitle": "スペースの読み込みエラー",
- "xpack.spaces.management.spacesGridPage.featuresColumnName": "表示される機能",
"xpack.spaces.management.spacesGridPage.identifierColumnName": "識別子",
"xpack.spaces.management.spacesGridPage.loadingTitle": "読み込み中…",
- "xpack.spaces.management.spacesGridPage.noFeaturesEnabled": "表示されている機能がありません",
"xpack.spaces.management.spacesGridPage.searchPlaceholder": "検索",
"xpack.spaces.management.spacesGridPage.solutionColumnName": "ソリューションビュー",
- "xpack.spaces.management.spacesGridPage.someFeaturesEnabled": "{enabledFeatureCount} / {totalFeatureCount}",
"xpack.spaces.management.spacesGridPage.spaceColumnName": "スペース",
"xpack.spaces.management.spacesGridPage.spacesTitle": "スペース",
"xpack.spaces.management.spacesGridPage.switchSpaceActionDescription": "{spaceName}に切り替える",
@@ -47473,7 +47444,6 @@
"xpack.transform.groupBy.popoverForm.fieldLabel": "フィールド",
"xpack.transform.groupBy.popoverForm.intervalError": "無効な間隔。",
"xpack.transform.groupBy.popoverForm.intervalLabel": "間隔",
- "xpack.transform.groupBy.popoverForm.intervalPercents": "パーセンタイルをコンマで区切って列記します。",
"xpack.transform.groupBy.popoverForm.invalidSizeErrorMessage": "有効な正の数値を入力してください",
"xpack.transform.groupBy.popoverForm.missingBucketCheckboxHelpText": "選択すると、値がないドキュメントを含めます。",
"xpack.transform.groupby.popoverForm.missingBucketCheckboxLabel": "不足しているバケットを含める",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 1d48e398dfd0c..06b1b01869f63 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -402,9 +402,6 @@
"cellActions.extraActionsAriaLabel": "附加操作",
"cellActions.showMoreActionsLabel": "更多操作",
"cellActions.youAreInADialogContainingOptionsScreenReaderOnly": "您在对话框中,其中包含 {fieldName} 字段的选项。按 tab 键导航选项。按 escape 退出。",
- "charts.advancedSettings.visualization.colorMappingText": "使用兼容性调色板将值映射到图表中的特定颜色。",
- "charts.advancedSettings.visualization.colorMappingTextDeprecation": "此设置已过时,在未来版本中将不受支持。",
- "charts.advancedSettings.visualization.colorMappingTitle": "颜色映射",
"charts.advancedSettings.visualization.useLegacyTimeAxis.deprecation": "此设置已过时,在未来版本中将不受支持。",
"charts.advancedSettings.visualization.useLegacyTimeAxis.description": "在 Lens、Discover、Visualize 和 TSVB 中为图表启用旧版时间轴",
"charts.advancedSettings.visualization.useLegacyTimeAxis.name": "旧版图表时间轴",
@@ -3095,6 +3092,8 @@
"esqlEditor.query.EnableWordWrapLabel": "在管道符上添加换行符",
"esqlEditor.query.errorCount": "{count} 个{count, plural, other {错误}}",
"esqlEditor.query.errorsTitle": "错误",
+ "esqlEditor.query.esqlQueriesCopy": "复制查询到剪贴板",
+ "esqlEditor.query.esqlQueriesListRun": "运行查询",
"esqlEditor.query.expandLabel": "展开",
"esqlEditor.query.feedback": "反馈",
"esqlEditor.query.hideQueriesLabel": "隐藏最近查询",
@@ -3104,8 +3103,6 @@
"esqlEditor.query.lineNumber": "第 {lineNumber} 行",
"esqlEditor.query.querieshistory.error": "查询失败",
"esqlEditor.query.querieshistory.success": "已成功运行查询",
- "esqlEditor.query.esqlQueriesCopy": "复制查询到剪贴板",
- "esqlEditor.query.esqlQueriesListRun": "运行查询",
"esqlEditor.query.querieshistoryTable": "查询历史记录表",
"esqlEditor.query.recentQueriesColumnLabel": "最近查询",
"esqlEditor.query.refreshLabel": "刷新",
@@ -10786,12 +10783,6 @@
"xpack.apm.dependencyOperationDistributionChart.allSpansLegendLabel": "所有跨度",
"xpack.apm.dependencyOperationDistributionChart.failedSpansLegendLabel": "失败的跨度",
"xpack.apm.dependencyThroughputChart.chartTitle": "吞吐量",
- "xpack.apm.deprecations.legacyModeTitle": "APM Server 正以旧版模式运行",
- "xpack.apm.deprecations.message": "直接运行 APM Server 二进制被视为是旧版选项,将被弃用并会在未来删除。",
- "xpack.apm.deprecations.steps.apm": "导航到 Observability/APM",
- "xpack.apm.deprecations.steps.schema": "选择'架构'选项卡",
- "xpack.apm.deprecations.steps.settings": "单击'设置'",
- "xpack.apm.deprecations.steps.switch": "单击'切换到 Elastic 代理'。将指导您完成此过程",
"xpack.apm.diagnostics.loading": "正在加载诊断",
"xpack.apm.diagnostics.tab.apmEvents": "文档",
"xpack.apm.diagnostics.tab.datastreams": "数据流",
@@ -12256,7 +12247,6 @@
"xpack.banners.settings.textContent.title": "横幅广告文本",
"xpack.canvas.addCanvasElementTrigger.description": "一项新操作将在 Canvas 添加面板菜单中显示出来",
"xpack.canvas.addCanvasElementTrigger.title": "添加面板菜单",
- "xpack.canvas.appDescription": "以最佳像素展示您的数据。",
"xpack.canvas.argAddPopover.addAriaLabel": "添加参数",
"xpack.canvas.argFormAdvancedFailure.applyButtonLabel": "应用",
"xpack.canvas.argFormAdvancedFailure.resetButtonLabel": "重置",
@@ -12441,7 +12431,6 @@
"xpack.canvas.expressionTypes.argTypes.seriesStyle.styleLabel": "样式",
"xpack.canvas.expressionTypes.argTypes.seriesStyleLabel": "设置选定已命名序列的样式",
"xpack.canvas.expressionTypes.argTypes.seriesStyleTitle": "序列样式",
- "xpack.canvas.featureCatalogue.canvasSubtitle": "设计像素级完美的演示文稿。",
"xpack.canvas.features.reporting.pdf": "生成 PDF 报告",
"xpack.canvas.features.reporting.pdfFeatureName": "Reporting",
"xpack.canvas.formatMsg.toaster.errorStatusMessage": "错误 {errStatus} {errStatusText}:{errMessage}",
@@ -18235,7 +18224,6 @@
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.description": "发送测试请求,以确认您的语言客户端和 Elasticsearch 实例已启动并正在运行。",
"xpack.enterpriseSearch.overview.gettingStarted.testConnection.title": "测试您的连接",
"xpack.enterpriseSearch.overview.navTitle": "概览",
- "xpack.enterpriseSearch.overview.setupCta.description": "通过 Elastic App Search 和 Workplace Search,将搜索添加到您的应用或内部组织中。观看视频,了解方便易用的搜索功能可以帮您做些什么。",
"xpack.enterpriseSearch.pageTemplate.endpointsButtonLabel": "终端和 API 密钥",
"xpack.enterpriseSearch.passwordLabel": "密码",
"xpack.enterpriseSearch.pipeline.title": "转换和扩充数据",
@@ -18558,7 +18546,6 @@
"xpack.enterpriseSearch.searchNav.otherTools": "其他工具",
"xpack.enterpriseSearch.searchNav.relevance": "相关性",
"xpack.enterpriseSearch.searchProvider.aiSearch.name": "搜索 AI",
- "xpack.enterpriseSearch.searchProvider.type.name": "搜索",
"xpack.enterpriseSearch.searchProvider.webCrawler.name": "Elastic 网络爬虫",
"xpack.enterpriseSearch.selectConnector.badgeOnClick.ariaLabel": "单击以打开连接器说明弹出框",
"xpack.enterpriseSearch.selectConnector.connectorClientBadgeLabel": "自管型",
@@ -35949,7 +35936,6 @@
"xpack.security.management.editRole.featureTable.cannotCustomizeSubFeaturesTooltip": "定制子功能权限为订阅功能。",
"xpack.security.management.editRole.featureTable.customizeSubFeaturePrivilegesSwitchLabel": "定制子功能权限",
"xpack.security.management.editRole.featureTable.featureAccordionSwitchLabel": "{grantedCount} / {featureCount} 项{featureCount, plural, other {功能}}已授予",
- "xpack.security.management.editRole.featureTable.featureVisibilityTitle": "定制功能权限",
"xpack.security.management.editRole.featureTable.managementCategoryHelpText": "可以在此菜单以外、在索引和集群权限中找到其他堆栈管理权限。",
"xpack.security.management.editRole.featureTable.privilegeCustomizationTooltip": "功能已定制子功能权限。展开此行以了解更多信息。",
"xpack.security.management.editRole.indexPrivilegeForm.clustersFormRowLabel": "远程集群",
@@ -36009,18 +35995,10 @@
"xpack.security.management.editRole.spaceAwarePrivilegeForm.kibanaAdminTitle": "kibana_admin",
"xpack.security.management.editRole.spacePrivilegeForm.basePrivilegeControlLegend": "所有功能的权限",
"xpack.security.management.editRole.spacePrivilegeForm.cancelButton": "取消",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivilegeDescription": "按功能提高权限级别。某些功能可能被工作区隐藏或受全局工作区权限影响。",
- "xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivileges": "按功能定制",
- "xpack.security.management.editRole.spacePrivilegeForm.featurePrivilegeSummaryDescription": "某些功能可能被工作区隐藏或受全局工作区权限影响。",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeNotice": "这些权限将应用到所有当前和未来工作区。",
- "xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeWarning": "创建全局权限可能会影响您的其他工作区权限。",
- "xpack.security.management.editRole.spacePrivilegeForm.modalHeadline": "必须向此角色授权以下工作区的访问权限",
- "xpack.security.management.editRole.spacePrivilegeForm.modalTitle": "将角色分配给工作区",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormHelpText": "分配您希望向此工作区的所有现有和未来功能授予的权限级别。",
"xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormLabel": "所有功能的权限",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormHelpText": "选择一个或多个希望分配权限的 Kibana 工作区。",
"xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormLabel": "工作区",
- "xpack.security.management.editRole.spacePrivilegeForm.summaryOfFeaturePrivileges": "功能权限的摘要",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarning": "声明的权限相对配置的全局权限有较小的宽容度。查看权限摘要以查看有效的权限。",
"xpack.security.management.editRole.spacePrivilegeForm.supersededWarningTitle": "已由全局权限取代",
"xpack.security.management.editRole.spacePrivilegeMatrix.globalSpaceName": "所有工作区",
@@ -36152,9 +36130,7 @@
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowHelpText": "如果未授权任何字段,则分配到此角色的用户将无法查看此索引的任何数据。",
"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowLabel": "已授权字段",
"xpack.security.management.editRoles.indexPrivilegeForm.grantFieldPrivilegesLabel": "授予对特定字段的访问权限",
- "xpack.security.management.editRolespacePrivilegeForm.createGlobalPrivilegeButton": "创建全局权限",
"xpack.security.management.editRolespacePrivilegeForm.createPrivilegeButton": "添加 Kibana 权限",
- "xpack.security.management.editRolespacePrivilegeForm.updateGlobalPrivilegeButton": "更新全局权限",
"xpack.security.management.editRolespacePrivilegeForm.updatePrivilegeButton": "更新工作区权限",
"xpack.security.management.enabledBadge": "已启用",
"xpack.security.management.readonlyBadge.text": "只读",
@@ -44152,7 +44128,6 @@
"xpack.spaces.management.spaceDetails.footerActions.updateSpace": "应用更改",
"xpack.spaces.management.spaceDetails.keepEditingButton": "保存然后离开",
"xpack.spaces.management.spaceDetails.leavePageButton": "离开",
- "xpack.spaces.management.spaceDetails.privilegeForm.heading": "定义给定角色在此工作区中应具有的权限。",
"xpack.spaces.management.spaceDetails.roles.assign": "分配新角色",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.description": "在此批量更新设置会覆盖当前的单个设置。",
"xpack.spaces.management.spaceDetails.roles.assign.privilegeConflictMsg.title": "权限将仅适用于此工作区。",
@@ -44199,7 +44174,6 @@
"xpack.spaces.management.spaceIdentifier.kibanaURLForSpaceIdentifierDescription": "创建后,将无法更改 URL 标识符。",
"xpack.spaces.management.spaceIdentifier.urlIdentifierTitle": "URL 标识符",
"xpack.spaces.management.spacesGridPage.actionsColumnName": "操作",
- "xpack.spaces.management.spacesGridPage.allFeaturesEnabled": "所有功能",
"xpack.spaces.management.spacesGridPage.createSpaceButtonLabel": "创建工作区",
"xpack.spaces.management.spacesGridPage.currentSpaceMarkerText": "当前",
"xpack.spaces.management.spacesGridPage.deleteActionDescription": "删除 {spaceName}",
@@ -44209,13 +44183,10 @@
"xpack.spaces.management.spacesGridPage.editSpaceActionDescription": "编辑 {spaceName}。",
"xpack.spaces.management.spacesGridPage.editSpaceActionName": "编辑",
"xpack.spaces.management.spacesGridPage.errorTitle": "加载工作区时出错",
- "xpack.spaces.management.spacesGridPage.featuresColumnName": "功能可见",
"xpack.spaces.management.spacesGridPage.identifierColumnName": "标识符",
"xpack.spaces.management.spacesGridPage.loadingTitle": "正在加载……",
- "xpack.spaces.management.spacesGridPage.noFeaturesEnabled": "没有可见功能",
"xpack.spaces.management.spacesGridPage.searchPlaceholder": "搜索",
"xpack.spaces.management.spacesGridPage.solutionColumnName": "解决方案视图",
- "xpack.spaces.management.spacesGridPage.someFeaturesEnabled": "{enabledFeatureCount}/{totalFeatureCount}",
"xpack.spaces.management.spacesGridPage.spaceColumnName": "工作区",
"xpack.spaces.management.spacesGridPage.spacesTitle": "工作区",
"xpack.spaces.management.spacesGridPage.switchSpaceActionDescription": "切换到 {spaceName}",
@@ -46747,7 +46718,6 @@
"xpack.transform.groupBy.popoverForm.fieldLabel": "字段",
"xpack.transform.groupBy.popoverForm.intervalError": "时间间隔无效。",
"xpack.transform.groupBy.popoverForm.intervalLabel": "时间间隔",
- "xpack.transform.groupBy.popoverForm.intervalPercents": "输入百分位数的逗号分隔列表",
"xpack.transform.groupBy.popoverForm.invalidSizeErrorMessage": "输入有效的正数",
"xpack.transform.groupBy.popoverForm.missingBucketCheckboxHelpText": "选择包括没有值的文档。",
"xpack.transform.groupby.popoverForm.missingBucketCheckboxLabel": "包括缺失的存储桶",
diff --git a/x-pack/plugins/upgrade_assistant/README.md b/x-pack/plugins/upgrade_assistant/README.md
index 531d4c1702c04..145f49baf0323 100644
--- a/x-pack/plugins/upgrade_assistant/README.md
+++ b/x-pack/plugins/upgrade_assistant/README.md
@@ -28,7 +28,7 @@ These surface runtime deprecations, e.g. a Painless script that uses a deprecate
request to a deprecated API. These are also generally surfaced as deprecation headers within the
response. Even if the cluster state is good, app maintainers need to watch the logs in case
deprecations are discovered as data is migrated. Starting in 7.x, deprecation logs can be written to a file or a data stream ([#58924](https://github.com/elastic/elasticsearch/pull/58924)). When the data stream exists, the Upgrade Assistant provides a way to analyze the logs through Observability or Discover ([#106521](https://github.com/elastic/kibana/pull/106521)).
-* [**Kibana deprecations API.**](https://github.com/elastic/kibana/blob/main/src/core/server/deprecations/README.mdx) This is information about deprecated features and configs in Kibana. These deprecations are only communicated to the user if the deployment is using these features. Kibana engineers are responsible for adding deprecations to the deprecations API for their respective team.
+* [**Kibana deprecations API.**](https://github.com/elastic/kibana/blob/main/src/core/server/deprecations/README.mdx) This is information about deprecated features and configs in Kibana. These deprecations are only communicated to the user if the deployment is using these features. Kibana engineers are responsible for adding deprecations to the deprecations API for their respective team.
### Fixing problems
@@ -36,14 +36,20 @@ deprecations are discovered as data is migrated. Starting in 7.x, deprecation lo
Elasticsearch deprecations can be handled in a number of ways:
-* **Reindexing.** When a user's index contains deprecations (e.g. mappings) a reindex solves them. Currently, the Upgrade Assistant only automates reindexing for old indices. For example, if you are currently on 7.x, and want to migrate to 8.0, but you still have indices that were created on 6.x. For this scenario, the user will see a "Reindex" button that they can click, which will perform the reindex.
- * Reindexing is an atomic process in Upgrade Assistant, so that ingestion is never disrupted.
- It works like this:
- * Create a new index with a "reindexed-" prefix ([#30114](https://github.com/elastic/kibana/pull/30114)).
- * Create an index alias pointing from the original index name to the prefixed index name.
- * Reindex from the original index into the prefixed index.
- * Delete the old index and rename the prefixed index.
-Currently reindexing deprecations are only enabled for major version upgrades by setting the config `featureSet.reindexCorrectiveActions` to `true` on the `x.last` version of the stack.
+* **Reindexing.** When a user's index contains deprecations (e.g. mappings) a reindex solves them. The Upgrade Assistant only automates reindexing for indices. For example, if you are currently on 7.x, and want to migrate to 8.0, but you still have indices that were created on 6.x. For this scenario, the user will see a "Reindex" button that they can click, which will perform the reindex.
+ * Reindexing is an idempotent action in Upgrade Assistant. It works like this ([overview in code](https://github.com/elastic/kibana/blob/b320a37d8b703b2fa101a93b6971b36ee2c37f06/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#L498-L540)):
+ 1. Set a write-block on the original index, no new data can be written during reindexing.
+ 2. Create a target index with the following name `reindexed-v{majorVersion}-{originalIndex}`. E.g., if `my-index` is the original, the target will be named `reindexed-v8-my-index`.
+ 3. [Reindex](https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html) from the original index to the target index. Kibana will continuously report reindexing status.
+ 4. Once reindexing is done, in one atomic operation via the aliases API:
+ 1. Create an alias from the original index to the target index. All existing aliases referencing the original index will be re-pointed to the target index. E.g., `my-index` will be an alias referencing `reindexed-v8-my-index`.
+ 2. Delete the original index.
+ 3. **NOTE:** writing/indexing will effectively be re-enabled at this point via the alias, unless the original was write-blocked by users. This and other index settings are inherited from the original.
+ 5. The Upgrade Assistant's reindex action is complete at this point.
+ 1. If the original index was closed before reindexing, the new target will also be closed at this point.
+
+ Currently reindexing deprecations are only enabled for major version upgrades by setting the config `featureSet.reindexCorrectiveActions` to `true` on the `x.last` version of the stack.
+
Reindexing at the moment includes some logic that is specific to the [8.0 upgrade](https://github.com/elastic/kibana/blob/main/x-pack/plugins/upgrade_assistant/server/lib/reindexing/index_settings.ts). End users could get into a bad situation if this is enabled before this logic is fixed.
* **Removing settings.** Some index and cluser settings are deprecated and need to be removed. The Upgrade Assistant provides a way to auto-resolve these settings via a "Remove deprecated settings" button. Migrating system indices should only be enabled for major version upgrades. This is controlled by the config `featureSet.migrateSystemIndices` which hides the second step from the UA UI for migrating system indices.
* **Upgrading or deleting snapshots**. This is specific to Machine Learning. If a user has old Machine Learning job model snapshots, they will need to be upgraded or deleted. The Upgrade Assistant provides a way to resolve this automatically for the user ([#100066](https://github.com/elastic/kibana/pull/100066)).
@@ -72,7 +78,7 @@ To test the Elasticsearch deprecations page ([#107053](https://github.com/elasti
PUT my_index
```
- Next, point to the 6.x data directory when running from a 7.x cluster.
+ Next, point to the 6.x data directory when running from a 7.x cluster.
```
yarn es snapshot -E path.data=./path_to_6.x_indices
@@ -101,7 +107,7 @@ To test the Elasticsearch deprecations page ([#107053](https://github.com/elasti
**2. Upgrading or deleting ML job model snapshots**
- Similar to the reindex action, the ML action requires setting up a cluster on the previous major version. It also requires the trial license to be enabled. Then, you will need to create a few ML jobs in order to trigger snapshots.
+ Similar to the reindex action, the ML action requires setting up a cluster on the previous major version. It also requires the trial license to be enabled. Then, you will need to create a few ML jobs in order to trigger snapshots.
- Add the Kibana sample data.
- Navigate to Machine Learning > Create new job.
@@ -111,7 +117,7 @@ To test the Elasticsearch deprecations page ([#107053](https://github.com/elasti
- Click "Create job"
- View the job created and click the "Start datafeed" action associated with it. Select a subset of time and click "Start". You should now have two snapshots created. If you want to add more, repeat the steps above.
- Next, point to the 6.x data directory when running from a 7.x cluster.
+ Next, point to the 6.x data directory when running from a 7.x cluster.
```
yarn es snapshot --license trial -E path.data=./path_to_6.x_ml_snapshots
@@ -119,8 +125,8 @@ To test the Elasticsearch deprecations page ([#107053](https://github.com/elasti
**3. Removing deprecated settings**
- The Upgrade Assistant supports removing deprecated index and cluster settings. This is determined based on the `actions` array returned from the deprecation info API. It currently does not support removing affix settings. See https://github.com/elastic/elasticsearch/pull/84246 for more details.
-
+ The Upgrade Assistant supports removing deprecated index and cluster settings. This is determined based on the `actions` array returned from the deprecation info API. It currently does not support removing affix settings. See https://github.com/elastic/elasticsearch/pull/84246 for more details.
+
Run the following Console commands to trigger deprecation issues for cluster and index settings:
```
@@ -233,7 +239,7 @@ PUT /_cluster/settings
```
PUT _template/field_names_enabled
{
- "index_patterns": ["foo"],
+ "index_patterns": ["foo"],
"mappings": {
"_field_names": {
"enabled": false
@@ -331,7 +337,7 @@ This is a non-exhaustive list of different error scenarios in Upgrade Assistant.
- **Error updating deprecation logging status.** Mock a `404` status code to `PUT /api/upgrade_assistant/deprecation_logging`. Alternatively, edit [this line](https://github.com/elastic/kibana/blob/545c1420c285af8f5eee56f414bd6eca735aea11/x-pack/plugins/upgrade_assistant/public/application/lib/api.ts#L77) locally and replace `deprecation_logging` with `fake_deprecation_logging`.
- **Unauthorized error fetching ES deprecations.** Mock a `403` status code to `GET /api/upgrade_assistant/es_deprecations` with the response payload: `{ "statusCode": 403 }`
- **Partially upgraded error fetching ES deprecations.** Mock a `426` status code to `GET /api/upgrade_assistant/es_deprecations` with the response payload: `{ "statusCode": 426, "attributes": { "allNodesUpgraded": false } }`
-- **Upgraded error fetching ES deprecations.** Mock a `426` status code to `GET /api/upgrade_assistant/es_deprecations` with the response payload: `{ "statusCode": 426, "attributes": { "allNodesUpgraded": true } }`
+- **Upgraded error fetching ES deprecations.** Mock a `426` status code to `GET /api/upgrade_assistant/es_deprecations` with the response payload: `{ "statusCode": 426, "attributes": { "allNodesUpgraded": true } }`
### Telemetry
@@ -356,4 +362,4 @@ The Upgrade Assistant tracks several triggered events in the UI, using Kibana Us
In addition to UI counters, the Upgrade Assistant has a [custom usage collector](https://github.com/elastic/kibana/blob/main/src/plugins/usage_collection/README.mdx#custom-collector). It currently is only responsible for tracking whether the user has deprecation logging enabled or not.
-For testing instructions, refer to the [Kibana Usage Collection service README](https://github.com/elastic/kibana/blob/main/src/plugins/usage_collection/README.mdx#testing).
\ No newline at end of file
+For testing instructions, refer to the [Kibana Usage Collection service README](https://github.com/elastic/kibana/blob/main/src/plugins/usage_collection/README.mdx#testing).
diff --git a/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts b/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts
index bf605ac119fda..aac7b49c609f5 100644
--- a/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts
+++ b/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts
@@ -159,8 +159,9 @@ export const reindexServiceFactory = (
// ------ Functions used to process the state machine
/**
- * Sets the original index as readonly so new data can be indexed until the reindex
- * is completed.
+ * Sets a write-block on the original index. New data cannot be indexed until
+ * the reindex is completed; there will be downtime for indexing until the
+ * reindex is completed.
* @param reindexOp
*/
const setReadonly = async (reindexOp: ReindexSavedObject) => {
@@ -330,6 +331,9 @@ export const reindexServiceFactory = (
/**
* Creates an alias that points the old index to the new index, deletes the old index.
+ * If old index was closed, the new index will also be closed.
+ *
+ * @note indexing/writing to the new index is effectively enabled after this action!
* @param reindexOp
*/
const switchAlias = async (reindexOp: ReindexSavedObject) => {
diff --git a/x-pack/test/accessibility/apps/group1/roles.ts b/x-pack/test/accessibility/apps/group1/roles.ts
index cf798bcb853f5..8a9fe187ba35b 100644
--- a/x-pack/test/accessibility/apps/group1/roles.ts
+++ b/x-pack/test/accessibility/apps/group1/roles.ts
@@ -14,6 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const a11y = getService('a11y');
const esArchiver = getService('esArchiver');
const testSubjects = getService('testSubjects');
+ const find = getService('find');
const retry = getService('retry');
const kibanaServer = getService('kibanaServer');
@@ -82,6 +83,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('a11y test for customize feature privilege', async () => {
+ await testSubjects.click('spaceSelectorComboBox');
+ const globalSpaceOption = await find.byCssSelector(`#spaceOption_\\*`);
+ await globalSpaceOption.click();
await testSubjects.click('featureCategory_kibana');
await a11y.testAppSnapshot();
await testSubjects.click('cancelSpacePrivilegeButton');
diff --git a/x-pack/test/accessibility/apps/group3/enterprise_search.ts b/x-pack/test/accessibility/apps/group3/enterprise_search.ts
index 3ef1c02c7b8a8..976f16a6c7151 100644
--- a/x-pack/test/accessibility/apps/group3/enterprise_search.ts
+++ b/x-pack/test/accessibility/apps/group3/enterprise_search.ts
@@ -46,15 +46,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
);
await a11y.testAppSnapshot();
});
-
- it('loads a setup guide', async function () {
- await testSubjects.click('setupGuideLink');
- await retry.waitFor(
- 'setup guide visible',
- async () => await testSubjects.exists('setupGuide')
- );
- await a11y.testAppSnapshot();
- });
});
describe('Content', () => {
diff --git a/x-pack/test/api_integration/apis/synthetics/add_monitor.ts b/x-pack/test/api_integration/apis/synthetics/add_monitor.ts
index aee2e1e2c7212..6be47ba8d9619 100644
--- a/x-pack/test/api_integration/apis/synthetics/add_monitor.ts
+++ b/x-pack/test/api_integration/apis/synthetics/add_monitor.ts
@@ -304,7 +304,9 @@ export default function ({ getService }: FtrProviderContext) {
.send(httpMonitorJson);
expect(apiResponse.status).eql(403);
- expect(apiResponse.body.message).eql('Forbidden');
+ expect(apiResponse.body.message).eql(
+ 'API [POST /api/synthetics/monitors] is unauthorized for user, this action is granted by the Kibana privileges [uptime-write]'
+ );
});
});
diff --git a/x-pack/test/api_integration/apis/synthetics/index.ts b/x-pack/test/api_integration/apis/synthetics/index.ts
index 15e76126e9555..27c0febf5939d 100644
--- a/x-pack/test/api_integration/apis/synthetics/index.ts
+++ b/x-pack/test/api_integration/apis/synthetics/index.ts
@@ -16,6 +16,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
await esDeleteAllIndices('synthetics*');
});
+ loadTestFile(require.resolve('./synthetics_api_security'));
loadTestFile(require.resolve('./edit_monitor_public_api'));
loadTestFile(require.resolve('./add_monitor_public_api'));
loadTestFile(require.resolve('./synthetics_enablement'));
diff --git a/x-pack/test/api_integration/apis/synthetics/services/synthetics_monitor_test_service.ts b/x-pack/test/api_integration/apis/synthetics/services/synthetics_monitor_test_service.ts
index 498da8c6b1800..d1dda60c8d7c8 100644
--- a/x-pack/test/api_integration/apis/synthetics/services/synthetics_monitor_test_service.ts
+++ b/x-pack/test/api_integration/apis/synthetics/services/synthetics_monitor_test_service.ts
@@ -175,7 +175,7 @@ export class SyntheticsMonitorTestService {
}
}
- async addsNewSpace() {
+ async addsNewSpace(uptimePermissions: string[] = ['all']) {
const username = 'admin';
const password = `${username}-password`;
const roleName = 'uptime-role';
@@ -190,7 +190,8 @@ export class SyntheticsMonitorTestService {
kibana: [
{
feature: {
- uptime: ['all'],
+ uptime: uptimePermissions,
+ slo: ['all'],
},
spaces: ['*'],
},
diff --git a/x-pack/test/api_integration/apis/synthetics/synthetics_api_security.ts b/x-pack/test/api_integration/apis/synthetics/synthetics_api_security.ts
new file mode 100644
index 0000000000000..ddd0d4b209940
--- /dev/null
+++ b/x-pack/test/api_integration/apis/synthetics/synthetics_api_security.ts
@@ -0,0 +1,161 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import {
+ syntheticsAppPublicRestApiRoutes,
+ syntheticsAppRestApiRoutes,
+} from '@kbn/synthetics-plugin/server/routes';
+import expect from '@kbn/expect';
+import { SYNTHETICS_API_URLS } from '@kbn/synthetics-plugin/common/constants';
+import { FtrProviderContext } from '../../ftr_provider_context';
+import { SyntheticsMonitorTestService } from './services/synthetics_monitor_test_service';
+
+export default function ({ getService }: FtrProviderContext) {
+ describe('SyntheticsAPISecurity', function () {
+ this.tags('skipCloud');
+
+ const supertestWithoutAuth = getService('supertestWithoutAuth');
+
+ const monitorTestService = new SyntheticsMonitorTestService(getService);
+ const kibanaServer = getService('kibanaServer');
+
+ const assertPermissions = async (
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE',
+ path: string,
+ options: {
+ statusCodes: number[];
+ SPACE_ID: string;
+ username: string;
+ password: string;
+ writeAccess?: boolean;
+ tags?: string;
+ }
+ ) => {
+ let resp;
+ const { statusCodes, SPACE_ID, username, password, writeAccess } = options;
+ const tags = !writeAccess ? '[uptime-read]' : options.tags ?? '[uptime-read,uptime-write]';
+ const getStatusMessage = (respStatus: string) =>
+ `Expected ${statusCodes?.join(
+ ','
+ )}, got ${respStatus} status code doesn't match, for path: ${path} and method ${method}`;
+
+ const getBodyMessage = (tg?: string) =>
+ `API [${method} ${path}] is unauthorized for user, this action is granted by the Kibana privileges ${
+ tg ?? tags
+ }`;
+
+ const verifyPermissionsBody = (res: any, msg: string) => {
+ if (res.status === 403 && !res.body.message.includes('MissingIndicesPrivileges:')) {
+ expect(decodeURIComponent(res.body.message)).to.eql(msg);
+ }
+ };
+
+ switch (method) {
+ case 'GET':
+ resp = await supertestWithoutAuth
+ .get(`/s/${SPACE_ID}${path}`)
+ .auth(username, password)
+ .set('kbn-xsrf', 'true')
+ .send({});
+ expect(statusCodes.includes(resp.status)).to.eql(true, getStatusMessage(resp.status));
+ verifyPermissionsBody(resp, getBodyMessage('[uptime-read]'));
+ break;
+ case 'PUT':
+ resp = await supertestWithoutAuth
+ .put(`/s/${SPACE_ID}${path}`)
+ .auth(username, password)
+ .set('kbn-xsrf', 'true')
+ .send({});
+ expect(statusCodes.includes(resp.status)).to.eql(true, getStatusMessage(resp.status));
+ verifyPermissionsBody(resp, getBodyMessage());
+ break;
+ case 'POST':
+ resp = await supertestWithoutAuth
+ .post(`/s/${SPACE_ID}${path}`)
+ .auth(username, password)
+ .set('kbn-xsrf', 'true')
+ .send({});
+ expect(statusCodes.includes(resp.status)).to.eql(true, getStatusMessage(resp.status));
+ verifyPermissionsBody(resp, getBodyMessage());
+ break;
+ case 'DELETE':
+ resp = await supertestWithoutAuth
+ .delete(`/s/${SPACE_ID}${path}`)
+ .auth(username, password)
+ .set('kbn-xsrf', 'true')
+ .send({});
+ expect(statusCodes.includes(resp.status)).to.eql(true, getStatusMessage(resp.status));
+ verifyPermissionsBody(resp, getBodyMessage());
+ break;
+ }
+
+ return resp;
+ };
+
+ before(async () => {
+ await kibanaServer.savedObjects.cleanStandardList();
+ });
+
+ const allRoutes = syntheticsAppRestApiRoutes.concat(syntheticsAppPublicRestApiRoutes);
+
+ it('throws permissions errors for un-auth user', async () => {
+ const { SPACE_ID, username, password } = await monitorTestService.addsNewSpace([]);
+
+ for (const routeFn of allRoutes) {
+ const route = routeFn();
+ await assertPermissions(route.method, route.path, {
+ statusCodes: [403],
+ SPACE_ID,
+ username,
+ password,
+ writeAccess: route.writeAccess ?? true,
+ });
+ }
+ });
+
+ it('throws permissions errors for read user', async () => {
+ const { SPACE_ID, username, password } = await monitorTestService.addsNewSpace(['read']);
+
+ for (const routeFn of allRoutes) {
+ const route = routeFn();
+ if (route.writeAccess === false) {
+ continue;
+ }
+ await assertPermissions(route.method, route.path, {
+ statusCodes: [200, 403, 500, 400, 404],
+ SPACE_ID,
+ username,
+ password,
+ writeAccess: route.writeAccess ?? true,
+ tags: '[uptime-write]',
+ });
+ }
+ });
+
+ it('no permissions errors for all user', async () => {
+ const { SPACE_ID, username, password } = await monitorTestService.addsNewSpace(['all']);
+
+ for (const routeFn of allRoutes) {
+ const route = routeFn();
+ if (
+ (route.method === 'DELETE' && route.path === SYNTHETICS_API_URLS.SYNTHETICS_ENABLEMENT) ||
+ SYNTHETICS_API_URLS.SYNTHETICS_PROJECT_APIKEY
+ ) {
+ continue;
+ }
+ await assertPermissions(route.method, route.path, {
+ statusCodes: [400, 200, 404],
+ SPACE_ID,
+ username,
+ password,
+ writeAccess: route.writeAccess ?? true,
+ tags: '[uptime-write]',
+ });
+ }
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/diagnostics/indices.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/diagnostics/indices.spec.ts
index 92976e6bce883..af0249d2a3359 100644
--- a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/diagnostics/indices.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/diagnostics/indices.spec.ts
@@ -21,9 +21,10 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
let apmSynthtraceEsClient: ApmSynthtraceEsClient;
- describe('Diagnostics: Indices', () => {
- describe.skip('When there is no data', () => {
- it('returns empty response`', async () => {
+ // Failing tests were skipped because the current solution for verifying ingest pipelines needs improvement
+ describe.skip('Diagnostics: Indices', () => {
+ describe('When there is no data', () => {
+ it('returns empty response', async () => {
const { status, body } = await apmApiClient.adminUser({
endpoint: 'GET /internal/apm/diagnostics',
});
@@ -34,7 +35,7 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
});
});
- describe.skip('When data is ingested', () => {
+ describe('When data is ingested', () => {
before(async () => {
const instance = apm
.service({ name: 'synth-go', environment: 'production', agentName: 'go' })
@@ -68,7 +69,7 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
});
});
- describe.skip('When data is ingested without the necessary index templates', () => {
+ describe('When data is ingested without the necessary index templates', () => {
before(async () => {
await es.indices.deleteDataStream({ name: 'traces-apm-*' });
await es.indices.deleteIndexTemplate({ name: ['traces-apm'] });
@@ -114,7 +115,7 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
});
});
- describe.skip('ingest pipelines', () => {
+ describe('ingest pipelines', () => {
before(async () => {
const instance = apm
.service({ name: 'synth-go', environment: 'production', agentName: 'go' })
@@ -138,7 +139,7 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
await apmSynthtraceEsClient.clean();
});
- describe.skip('an ingest pipeline is removed', () => {
+ describe('an ingest pipeline is removed', () => {
before(async () => {
const datastreamToUpdate = await es.indices.getDataStream({
name: 'metrics-apm.internal-default',
@@ -168,7 +169,7 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
});
});
- describe.skip('an ingest pipeline is changed', () => {
+ describe('an ingest pipeline is changed', () => {
before(async () => {
const datastreamToUpdate = await es.indices.getDataStream({
name: 'metrics-apm.internal-default',
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts
index ab7f9e5736392..bc209186c869c 100644
--- a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts
@@ -12,31 +12,34 @@ export default function apmApiIntegrationTests({
}: DeploymentAgnosticFtrProviderContext) {
describe('APM', function () {
loadTestFile(require.resolve('./agent_explorer'));
- loadTestFile(require.resolve('./errors'));
loadTestFile(require.resolve('./alerts'));
- loadTestFile(require.resolve('./mobile'));
+ loadTestFile(require.resolve('./cold_start'));
+ loadTestFile(require.resolve('./correlations'));
loadTestFile(require.resolve('./custom_dashboards'));
+ loadTestFile(require.resolve('./data_view'));
loadTestFile(require.resolve('./dependencies'));
+ loadTestFile(require.resolve('./diagnostics'));
+ loadTestFile(require.resolve('./entities'));
loadTestFile(require.resolve('./environment'));
loadTestFile(require.resolve('./error_rate'));
- loadTestFile(require.resolve('./data_view'));
- loadTestFile(require.resolve('./correlations'));
- loadTestFile(require.resolve('./entities'));
- loadTestFile(require.resolve('./cold_start'));
- loadTestFile(require.resolve('./metrics'));
- loadTestFile(require.resolve('./services'));
+ loadTestFile(require.resolve('./errors'));
loadTestFile(require.resolve('./historical_data'));
- loadTestFile(require.resolve('./observability_overview'));
- loadTestFile(require.resolve('./latency'));
loadTestFile(require.resolve('./infrastructure'));
- loadTestFile(require.resolve('./service_maps'));
loadTestFile(require.resolve('./inspect'));
+ loadTestFile(require.resolve('./latency'));
+ loadTestFile(require.resolve('./metrics'));
+ loadTestFile(require.resolve('./mobile'));
+ loadTestFile(require.resolve('./observability_overview'));
loadTestFile(require.resolve('./service_groups'));
- loadTestFile(require.resolve('./time_range_metadata'));
- loadTestFile(require.resolve('./diagnostics'));
+ loadTestFile(require.resolve('./service_maps'));
loadTestFile(require.resolve('./service_nodes'));
+ loadTestFile(require.resolve('./service_overview'));
+ loadTestFile(require.resolve('./services'));
+ loadTestFile(require.resolve('./settings'));
loadTestFile(require.resolve('./span_links'));
loadTestFile(require.resolve('./suggestions'));
loadTestFile(require.resolve('./throughput'));
+ loadTestFile(require.resolve('./time_range_metadata'));
+ loadTestFile(require.resolve('./transactions'));
});
}
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/dependencies/es_utils.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/es_utils.ts
similarity index 97%
rename from x-pack/test/apm_api_integration/tests/service_overview/dependencies/es_utils.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/es_utils.ts
index 3fe59f4aeaea4..453f7a50d8aa3 100644
--- a/x-pack/test/apm_api_integration/tests/service_overview/dependencies/es_utils.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/es_utils.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
+import type { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import { v4 as uuidv4 } from 'uuid';
export function createServiceDependencyDocs({
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/index.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/index.spec.ts
new file mode 100644
index 0000000000000..cb7f81304c3b0
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/dependencies/index.spec.ts
@@ -0,0 +1,304 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import { last, pick } from 'lodash';
+import type { ValuesType } from 'utility-types';
+import { type Node, NodeType } from '@kbn/apm-plugin/common/connections';
+import {
+ ENVIRONMENT_ALL,
+ ENVIRONMENT_NOT_DEFINED,
+} from '@kbn/apm-plugin/common/environment_filter_values';
+import type { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
+import { roundNumber } from '../../utils/common';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+import { apmDependenciesMapping, createServiceDependencyDocs } from './es_utils';
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const es = getService('es');
+
+ const { start, end } = {
+ start: '2021-08-03T06:50:15.910Z',
+ end: '2021-08-03T07:20:15.910Z',
+ };
+
+ function getName(node: Node) {
+ return node.type === NodeType.service ? node.serviceName : node.dependencyName;
+ }
+
+ describe('Service Overview', () => {
+ describe('Dependencies', () => {
+ describe('when data is not loaded', () => {
+ it('handles the empty state', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
+ params: {
+ path: { serviceName: 'opbeans-java' },
+ query: {
+ start,
+ end,
+ numBuckets: 20,
+ environment: ENVIRONMENT_ALL.value,
+ },
+ },
+ });
+
+ expect(response.status).to.be(200);
+ expect(response.body.serviceDependencies).to.eql([]);
+ });
+ });
+
+ describe('when specific data is loaded', () => {
+ let response: {
+ status: number;
+ body: APIReturnType<'GET /internal/apm/services/{serviceName}/dependencies'>;
+ };
+
+ const indices = {
+ metric: 'apm-dependencies-metric',
+ transaction: 'apm-dependencies-transaction',
+ span: 'apm-dependencies-span',
+ };
+
+ const startTime = new Date(start).getTime();
+ const endTime = new Date(end).getTime();
+
+ after(async () => {
+ const allIndices = Object.values(indices).join(',');
+ const indexExists = await es.indices.exists({ index: allIndices });
+ if (indexExists) {
+ await es.indices.delete({
+ index: allIndices,
+ });
+ }
+ });
+
+ before(async () => {
+ await es.indices.create({
+ index: indices.metric,
+ body: {
+ mappings: apmDependenciesMapping,
+ },
+ });
+
+ await es.indices.create({
+ index: indices.transaction,
+ body: {
+ mappings: apmDependenciesMapping,
+ },
+ });
+
+ await es.indices.create({
+ index: indices.span,
+ body: {
+ mappings: apmDependenciesMapping,
+ },
+ });
+
+ const docs = [
+ ...createServiceDependencyDocs({
+ service: {
+ name: 'opbeans-java',
+ environment: 'production',
+ },
+ agentName: 'java',
+ span: {
+ type: 'external',
+ subtype: 'http',
+ },
+ resource: 'opbeans-node:3000',
+ outcome: 'success',
+ responseTime: {
+ count: 2,
+ sum: 10,
+ },
+ time: startTime,
+ to: {
+ service: {
+ name: 'opbeans-node',
+ },
+ agentName: 'nodejs',
+ },
+ }),
+ ...createServiceDependencyDocs({
+ service: {
+ name: 'opbeans-java',
+ environment: 'production',
+ },
+ agentName: 'java',
+ span: {
+ type: 'external',
+ subtype: 'http',
+ },
+ resource: 'opbeans-node:3000',
+ outcome: 'failure',
+ responseTime: {
+ count: 1,
+ sum: 10,
+ },
+ time: startTime,
+ }),
+ ...createServiceDependencyDocs({
+ service: {
+ name: 'opbeans-java',
+ environment: 'production',
+ },
+ agentName: 'java',
+ span: {
+ type: 'external',
+ subtype: 'http',
+ },
+ resource: 'postgres',
+ outcome: 'success',
+ responseTime: {
+ count: 1,
+ sum: 3,
+ },
+ time: startTime,
+ }),
+ ...createServiceDependencyDocs({
+ service: {
+ name: 'opbeans-java',
+ environment: 'production',
+ },
+ agentName: 'java',
+ span: {
+ type: 'external',
+ subtype: 'http',
+ },
+ resource: 'opbeans-node-via-proxy',
+ outcome: 'success',
+ responseTime: {
+ count: 1,
+ sum: 1,
+ },
+ time: endTime - 1,
+ to: {
+ service: {
+ name: 'opbeans-node',
+ },
+ agentName: 'nodejs',
+ },
+ }),
+ ];
+
+ const bulkActions = docs.reduce(
+ (prev, doc) => {
+ return [...prev, { index: { _index: indices[doc.processor.event] } }, doc];
+ },
+ [] as Array<
+ | {
+ index: {
+ _index: string;
+ };
+ }
+ | ValuesType
+ >
+ );
+
+ await es.bulk({
+ body: bulkActions,
+ refresh: 'wait_for',
+ });
+
+ response = await apmApiClient.readUser({
+ endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
+ params: {
+ path: { serviceName: 'opbeans-java' },
+ query: {
+ start,
+ end,
+ numBuckets: 20,
+ environment: ENVIRONMENT_ALL.value,
+ },
+ },
+ });
+ });
+
+ it('returns a 200', () => {
+ expect(response.status).to.be(200);
+ });
+
+ it('returns two dependencies', () => {
+ expect(response.body.serviceDependencies.length).to.be(2);
+ });
+
+ it('returns opbeans-node as a dependency', () => {
+ const opbeansNode = response.body.serviceDependencies.find(
+ (item) => getName(item.location) === 'opbeans-node'
+ );
+
+ expect(opbeansNode !== undefined).to.be(true);
+
+ const values = {
+ latency: roundNumber(opbeansNode?.currentStats.latency.value),
+ throughput: roundNumber(opbeansNode?.currentStats.throughput.value),
+ errorRate: roundNumber(opbeansNode?.currentStats.errorRate.value),
+ impact: opbeansNode?.currentStats.impact,
+ ...pick(opbeansNode?.location, 'serviceName', 'type', 'agentName', 'environment'),
+ };
+
+ const count = 4;
+ const sum = 21;
+ const errors = 1;
+
+ expect(values).to.eql({
+ agentName: 'nodejs',
+ environment: ENVIRONMENT_NOT_DEFINED.value,
+ serviceName: 'opbeans-node',
+ type: 'service',
+ errorRate: roundNumber(errors / count),
+ latency: roundNumber(sum / count),
+ throughput: roundNumber(count / ((endTime - startTime) / 1000 / 60)),
+ impact: 100,
+ });
+
+ const firstValue = roundNumber(opbeansNode?.currentStats.latency.timeseries[0].y);
+ const lastValue = roundNumber(last(opbeansNode?.currentStats.latency.timeseries)?.y);
+
+ expect(firstValue).to.be(roundNumber(20 / 3));
+ expect(lastValue).to.be(1);
+ });
+
+ it('returns postgres as an external dependency', () => {
+ const postgres = response.body.serviceDependencies.find(
+ (item) => getName(item.location) === 'postgres'
+ );
+
+ expect(postgres !== undefined).to.be(true);
+
+ const values = {
+ latency: roundNumber(postgres?.currentStats.latency.value),
+ throughput: roundNumber(postgres?.currentStats.throughput.value),
+ errorRate: roundNumber(postgres?.currentStats.errorRate.value),
+ impact: postgres?.currentStats.impact,
+ ...pick(postgres?.location, 'spanType', 'spanSubtype', 'dependencyName', 'type'),
+ };
+
+ const count = 1;
+ const sum = 3;
+ const errors = 0;
+
+ expect(values).to.eql({
+ spanType: 'external',
+ spanSubtype: 'http',
+ dependencyName: 'postgres',
+ type: 'dependency',
+ errorRate: roundNumber(errors / count),
+ latency: roundNumber(sum / count),
+ throughput: roundNumber(count / ((endTime - startTime) / 1000 / 60)),
+ impact: 0,
+ });
+ });
+ });
+
+ // UNSUPPORTED TEST CASES - when data is loaded
+ // TODO: These tests should be migrated to use synthtrace: https://github.com/elastic/kibana/issues/200743
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/get_service_node_ids.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/get_service_node_ids.ts
new file mode 100644
index 0000000000000..8216c33d07140
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/get_service_node_ids.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import { take } from 'lodash';
+import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
+import type { ApmApiClient } from '../custom_dashboards/api_helper';
+
+export async function getServiceNodeIds({
+ apmApiClient,
+ start,
+ end,
+ serviceName = 'opbeans-java',
+ count = 1,
+}: {
+ apmApiClient: Awaited;
+ start: string;
+ end: string;
+ serviceName?: string;
+ count?: number;
+}) {
+ const { body } = await apmApiClient.readUser({
+ endpoint: `GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics`,
+ params: {
+ path: { serviceName },
+ query: {
+ latencyAggregationType: LatencyAggregationType.avg,
+ start,
+ end,
+ transactionType: 'request',
+ environment: 'ENVIRONMENT_ALL',
+ kuery: '',
+ sortField: 'throughput',
+ sortDirection: 'desc',
+ },
+ },
+ });
+
+ return take(body.currentPeriod.map((item) => item.serviceNodeName).sort(), count);
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/index.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/index.ts
new file mode 100644
index 0000000000000..5ab7be1ed1ec5
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/index.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) {
+ describe('service_overview', () => {
+ loadTestFile(require.resolve('./instance_details.spec.ts'));
+ loadTestFile(require.resolve('./instances_detailed_statistics.spec.ts'));
+ loadTestFile(require.resolve('./instances_main_statistics.spec.ts'));
+ loadTestFile(require.resolve('./dependencies/index.spec.ts'));
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instance_details.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instance_details.spec.ts
new file mode 100644
index 0000000000000..94ac27b90bc5f
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instance_details.spec.ts
@@ -0,0 +1,180 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import expect from '@kbn/expect';
+import { omit } from 'lodash';
+import type { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client';
+import { apm, timerange } from '@kbn/apm-synthtrace-client';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+import { getServiceNodeIds } from './get_service_node_ids';
+
+type ServiceOverviewInstanceDetails =
+ APIReturnType<'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}'>;
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
+
+ const start = '2023-08-22T00:00:00.000Z';
+ const end = '2023-08-22T01:00:00.000Z';
+
+ describe('Service Overview', () => {
+ let client: ApmSynthtraceEsClient;
+
+ before(async () => {
+ client = await synthtrace.createApmSynthtraceEsClient();
+ });
+
+ describe('Instance details', () => {
+ describe('when data is not loaded', () => {
+ it('handles empty state', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint:
+ 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
+ params: {
+ path: { serviceName: 'opbeans-java', serviceNodeName: 'foo' },
+ query: {
+ start,
+ end,
+ },
+ },
+ });
+
+ expect(response.status).to.be(200);
+ expect(response.body).to.eql({});
+ });
+ });
+
+ describe('when data is loaded', () => {
+ const range = timerange(new Date(start).getTime(), new Date(end).getTime());
+
+ const serviceInstance = apm
+ .service({ name: 'service1', environment: 'production', agentName: 'go' })
+ .instance('multiple-env-service-production');
+
+ const metricOnlyInstance = apm
+ .service({ name: 'service1', environment: 'production', agentName: 'java' })
+ .instance('multiple-env-service-production');
+
+ before(() => {
+ return client.index([
+ range
+ .interval('1s')
+ .rate(4)
+ .generator((timestamp) =>
+ serviceInstance
+ .transaction({ transactionName: 'GET /api' })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ ),
+ range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ metricOnlyInstance
+ .containerId('123')
+ .podId('234')
+ .appMetrics({
+ 'system.memory.actual.free': 1,
+ 'system.cpu.total.norm.pct': 1,
+ 'system.memory.total': 1,
+ 'system.process.cpu.total.norm.pct': 1,
+ })
+ .timestamp(timestamp)
+ ),
+ ]);
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+
+ describe('fetch instance details', () => {
+ let response: {
+ status: number;
+ body: ServiceOverviewInstanceDetails;
+ };
+
+ let serviceNodeIds: string[];
+
+ before(async () => {
+ serviceNodeIds = await getServiceNodeIds({
+ apmApiClient,
+ start,
+ end,
+ serviceName: 'service1',
+ });
+
+ response = await apmApiClient.readUser({
+ endpoint:
+ 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
+ params: {
+ path: { serviceName: 'service1', serviceNodeName: serviceNodeIds[0] },
+ query: {
+ start,
+ end,
+ },
+ },
+ });
+ });
+
+ it('returns the instance details', () => {
+ expect(response.body).to.not.eql({});
+ });
+
+ it('return the correct data', () => {
+ expect(omit(response.body, '@timestamp')).to.eql({
+ agent: {
+ name: 'java',
+ },
+ container: {
+ id: '123',
+ },
+ host: {
+ name: 'multiple-env-service-production',
+ },
+ kubernetes: {
+ container: {},
+ deployment: {},
+ pod: {
+ uid: '234',
+ },
+ replicaset: {},
+ },
+ service: {
+ environment: 'production',
+ name: 'service1',
+ node: {
+ name: 'multiple-env-service-production',
+ },
+ },
+ });
+ });
+ });
+ });
+
+ describe('when data is loaded but details not found', () => {
+ it('handles empty state when instance id not found', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint:
+ 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
+ params: {
+ path: { serviceName: 'opbeans-java', serviceNodeName: 'foo' },
+ query: {
+ start,
+ end,
+ },
+ },
+ });
+ expect(response.status).to.be(200);
+ expect(response.body).to.eql({});
+ });
+ });
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_detailed_statistics.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_detailed_statistics.spec.ts
new file mode 100644
index 0000000000000..b2596ae43c956
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_detailed_statistics.spec.ts
@@ -0,0 +1,56 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+import { getServiceNodeIds } from './get_service_node_ids';
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+
+ const serviceName = 'opbeans-java';
+
+ const { start, end } = {
+ start: '2021-08-03T06:50:15.910Z',
+ end: '2021-08-03T07:20:15.910Z',
+ };
+
+ describe('Service Overview', () => {
+ describe('Instances detailed statistics', () => {
+ describe('when data is not loaded', () => {
+ it('handles the empty state', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint:
+ 'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
+ params: {
+ path: { serviceName },
+ query: {
+ latencyAggregationType: LatencyAggregationType.avg,
+ start,
+ end,
+ numBuckets: 20,
+ transactionType: 'request',
+ serviceNodeIds: JSON.stringify(
+ await getServiceNodeIds({ apmApiClient, start, end })
+ ),
+ environment: 'ENVIRONMENT_ALL',
+ kuery: '',
+ },
+ },
+ });
+
+ expect(response.status).to.be(200);
+ expect(response.body).to.be.eql({ currentPeriod: {}, previousPeriod: {} });
+ });
+ });
+
+ // UNSUPPORTED TEST CASES - when data is loaded
+ // TODO: These tests should be migrated to use synthtrace: https://github.com/elastic/kibana/issues/200743
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_main_statistics.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_main_statistics.spec.ts
new file mode 100644
index 0000000000000..e0e3ba254924d
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/service_overview/instances_main_statistics.spec.ts
@@ -0,0 +1,695 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import expect from '@kbn/expect';
+import type { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
+import { apm, Instance, timerange } from '@kbn/apm-synthtrace-client';
+import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
+import type { InstancesSortField } from '@kbn/apm-plugin/common/instances';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace/src/lib/apm/client/apm_synthtrace_es_client';
+import { sum } from 'lodash';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+import { roundNumber } from '../utils/common';
+
+type ServiceOverviewInstancesMainStatistics =
+ APIReturnType<'GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics'>;
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
+
+ const start = new Date('2021-01-01T00:00:00.000Z').getTime();
+ const end = new Date('2021-01-01T00:10:00.000Z').getTime();
+
+ async function getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ sortField = 'throughput',
+ sortDirection = 'desc',
+ }: {
+ serviceName: string;
+ sortField?: InstancesSortField;
+ sortDirection?: 'asc' | 'desc';
+ }) {
+ const { body } = await apmApiClient.readUser({
+ endpoint: `GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics`,
+ params: {
+ path: { serviceName },
+ query: {
+ latencyAggregationType: LatencyAggregationType.avg,
+ start: new Date(start).toISOString(),
+ end: new Date(end).toISOString(),
+ transactionType: 'request',
+ environment: 'production',
+ kuery: '',
+ sortField,
+ sortDirection,
+ },
+ },
+ });
+
+ return body.currentPeriod;
+ }
+
+ describe('Service Overview', () => {
+ let client: ApmSynthtraceEsClient;
+
+ before(async () => {
+ client = await synthtrace.createApmSynthtraceEsClient();
+ });
+
+ describe('Instances main statistics', () => {
+ describe('when data is not loaded', () => {
+ it('handles empty state', async () => {
+ const response = await getServiceOverviewInstancesMainStatistics({ serviceName: 'foo' });
+ expect(response).to.eql({});
+ });
+ });
+
+ describe('when data is loaded', () => {
+ describe('Return Top 100 instances', () => {
+ const serviceName = 'synth-node-1';
+ before(async () => {
+ const range = timerange(start, end);
+ const transactionName = 'foo';
+
+ const successfulTimestamps = range.interval('1m').rate(1);
+ const failedTimestamps = range.interval('1m').rate(1);
+
+ const instances = [...Array(200).keys()].map((index) =>
+ apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance(`instance-${index}`)
+ );
+
+ const instanceSpans = (instance: Instance) => {
+ const successfulTraceEvents = successfulTimestamps.generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ .children(
+ instance
+ .span({
+ spanName: 'GET apm-*/_search',
+ spanType: 'db',
+ spanSubtype: 'elasticsearch',
+ })
+ .duration(1000)
+ .success()
+ .destination('elasticsearch')
+ .timestamp(timestamp),
+ instance
+ .span({ spanName: 'custom_operation', spanType: 'custom' })
+ .duration(100)
+ .success()
+ .timestamp(timestamp)
+ )
+ );
+
+ const failedTraceEvents = failedTimestamps.generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .failure()
+ .errors(
+ instance
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+
+ const metricsets = range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ instance
+ .appMetrics({
+ 'system.memory.actual.free': 800,
+ 'system.memory.total': 1000,
+ 'system.cpu.total.norm.pct': 0.6,
+ 'system.process.cpu.total.norm.pct': 0.7,
+ })
+ .timestamp(timestamp)
+ );
+
+ return [successfulTraceEvents, failedTraceEvents, metricsets];
+ };
+
+ return client.index(instances.flatMap((instance) => instanceSpans(instance)));
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+ describe('fetch instances', () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ });
+ });
+ it('returns top 100 instances', () => {
+ expect(instancesMainStats.length).to.be(100);
+ });
+ });
+ });
+
+ describe('Order by error rate', () => {
+ const serviceName = 'synth-node-1';
+ before(async () => {
+ const range = timerange(start, end);
+ const transactionName = 'foo';
+ /**
+ * Instance A
+ * 90 transactions = Success
+ * 10 transactions = Failure
+ * Error rate: 10%
+ */
+ const instanceA = apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance('instance-A');
+ const instanceASuccessfulTraceEvents = range
+ .interval('1m')
+ .rate(10)
+ .generator((timestamp, index) =>
+ index < 10
+ ? instanceA
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .failure()
+ .errors(
+ instanceA
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ : instanceA
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ );
+ /**
+ * Instance B
+ * 1 transactions = Success
+ * 9 transactions = Failure
+ * Error rate: 90%
+ */
+ const instanceB = apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance('instance-B');
+ const instanceBSuccessfulTraceEvents = range
+ .interval('1m')
+ .rate(1)
+ .generator((timestamp, index) =>
+ index === 0
+ ? instanceB
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ : instanceB
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .failure()
+ .errors(
+ instanceB
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+ /**
+ * Instance C
+ * 2 transactions = Success
+ * 8 transactions = Failure
+ * Error rate: 80%
+ */
+ const instanceC = apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance('instance-C');
+ const instanceCSuccessfulTraceEvents = range
+ .interval('1m')
+ .rate(1)
+ .generator((timestamp, index) =>
+ index < 2
+ ? instanceC
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ : instanceC
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .failure()
+ .errors(
+ instanceC
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+ /**
+ * Instance D
+ * 0 transactions = Success
+ * 10 transactions = Failure
+ * Error rate: 100%
+ */
+ const instanceD = apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance('instance-D');
+ const instanceDSuccessfulTraceEvents = range
+ .interval('1m')
+ .rate(1)
+ .generator((timestamp) =>
+ instanceD
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .failure()
+ .errors(
+ instanceD
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+ /**
+ * Instance E
+ * 10 transactions = Success
+ * 0 transactions = Failure
+ * Error rate: 0%
+ */
+ const instanceE = apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance('instance-E');
+ const instanceESuccessfulTraceEvents = range
+ .interval('1m')
+ .rate(1)
+ .generator((timestamp) =>
+ instanceE
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ );
+
+ return client.index([
+ instanceASuccessfulTraceEvents,
+ instanceBSuccessfulTraceEvents,
+ instanceCSuccessfulTraceEvents,
+ instanceDSuccessfulTraceEvents,
+ instanceESuccessfulTraceEvents,
+ ]);
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+ describe('sort by error rate asc', () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ sortField: 'errorRate',
+ sortDirection: 'asc',
+ });
+ });
+ it('returns instances sorted asc', () => {
+ expect(instancesMainStats.map((item) => roundNumber(item.errorRate))).to.eql([
+ 0, 0.1, 0.8, 0.9, 1,
+ ]);
+ });
+ });
+ describe('sort by error rate desc', () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ sortField: 'errorRate',
+ sortDirection: 'desc',
+ });
+ });
+ it('returns instances sorted desc', () => {
+ expect(instancesMainStats.map((item) => roundNumber(item.errorRate))).to.eql([
+ 1, 0.9, 0.8, 0.1, 0,
+ ]);
+ });
+ });
+ });
+
+ describe('with transactions and system metrics', () => {
+ const serviceName = 'synth-node-1';
+ before(async () => {
+ const range = timerange(start, end);
+ const transactionName = 'foo';
+ const instances = Array(3)
+ .fill(0)
+ .map((_, idx) => {
+ const index = idx + 1;
+ return {
+ instance: apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance(`instance-${index}`),
+ duration: index * 1000,
+ rate: index * 10,
+ errorRate: 5,
+ };
+ });
+
+ return client.index(
+ instances.flatMap(({ instance, duration, rate, errorRate }) => {
+ const successfulTraceEvents = range
+ .interval('1m')
+ .rate(rate)
+ .generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(duration)
+ .success()
+ );
+ const failedTraceEvents = range
+ .interval('1m')
+ .rate(errorRate)
+ .generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(duration)
+ .failure()
+ .errors(
+ instance
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+ const metricsets = range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ instance
+ .appMetrics({
+ 'system.memory.actual.free': 800,
+ 'system.memory.total': 1000,
+ 'system.cpu.total.norm.pct': 0.6,
+ 'system.process.cpu.total.norm.pct': 0.7,
+ })
+ .timestamp(timestamp)
+ );
+ return [successfulTraceEvents, failedTraceEvents, metricsets];
+ })
+ );
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+
+ describe('test order of items', () => {
+ (
+ [
+ {
+ field: 'throughput',
+ direction: 'asc',
+ expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
+ expectedValues: [15, 25, 35],
+ },
+ {
+ field: 'throughput',
+ direction: 'desc',
+ expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
+ expectedValues: [35, 25, 15],
+ },
+ {
+ field: 'latency',
+ direction: 'asc',
+ expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
+ expectedValues: [1000000, 2000000, 3000000],
+ },
+ {
+ field: 'latency',
+ direction: 'desc',
+ expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
+ expectedValues: [3000000, 2000000, 1000000],
+ },
+ {
+ field: 'serviceNodeName',
+ direction: 'asc',
+ expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
+ },
+ {
+ field: 'serviceNodeName',
+ direction: 'desc',
+ expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
+ },
+ ] as Array<{
+ field: InstancesSortField;
+ direction: 'asc' | 'desc';
+ expectedServiceNodeNames: string[];
+ expectedValues?: number[];
+ }>
+ ).map(({ field, direction, expectedServiceNodeNames, expectedValues }) =>
+ describe(`fetch instances main statistics ordered by ${field} ${direction}`, () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ sortField: field,
+ sortDirection: direction,
+ });
+ });
+
+ it('returns ordered instance main stats', () => {
+ expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql(
+ expectedServiceNodeNames
+ );
+ if (expectedValues) {
+ expect(
+ instancesMainStats.map((item) => {
+ const value = item[field];
+ if (typeof value === 'number') {
+ return roundNumber(value);
+ }
+ return value;
+ })
+ ).to.eql(expectedValues);
+ }
+ });
+
+ it('returns system metrics', () => {
+ expect(instancesMainStats.map((item) => roundNumber(item.cpuUsage))).to.eql([
+ 0.7, 0.7, 0.7,
+ ]);
+ expect(instancesMainStats.map((item) => roundNumber(item.memoryUsage))).to.eql([
+ 0.2, 0.2, 0.2,
+ ]);
+ });
+ })
+ );
+ });
+ });
+
+ describe('with transactions only', () => {
+ const serviceName = 'synth-node-1';
+ before(async () => {
+ const range = timerange(start, end);
+ const transactionName = 'foo';
+ const instances = Array(3)
+ .fill(0)
+ .map((_, idx) => {
+ const index = idx + 1;
+ return {
+ instance: apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance(`instance-${index}`),
+ duration: index * 1000,
+ rate: index * 10,
+ errorRate: 5,
+ };
+ });
+
+ return client.index(
+ instances.flatMap(({ instance, duration, rate, errorRate }) => {
+ const successfulTraceEvents = range
+ .interval('1m')
+ .rate(rate)
+ .generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(duration)
+ .success()
+ );
+ const failedTraceEvents = range
+ .interval('1m')
+ .rate(errorRate)
+ .generator((timestamp) =>
+ instance
+ .transaction({ transactionName })
+ .timestamp(timestamp)
+ .duration(duration)
+ .failure()
+ .errors(
+ instance
+ .error({ message: '[ResponseError] index_not_found_exception' })
+ .timestamp(timestamp + 50)
+ )
+ );
+ return [successfulTraceEvents, failedTraceEvents];
+ })
+ );
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+
+ describe(`Fetch main statistics`, () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ });
+ });
+
+ it('returns instances name', () => {
+ expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql([
+ 'instance-3',
+ 'instance-2',
+ 'instance-1',
+ ]);
+ });
+
+ it('returns throughput', () => {
+ expect(sum(instancesMainStats.map((item) => item.throughput))).to.greaterThan(0);
+ });
+
+ it('returns latency', () => {
+ expect(sum(instancesMainStats.map((item) => item.latency))).to.greaterThan(0);
+ });
+
+ it('returns errorRate', () => {
+ expect(sum(instancesMainStats.map((item) => item.errorRate))).to.greaterThan(0);
+ });
+
+ it('does not return cpu usage', () => {
+ expect(
+ instancesMainStats
+ .map((item) => item.cpuUsage)
+ .filter((value) => value !== undefined)
+ ).to.eql([]);
+ });
+
+ it('does not return memory usage', () => {
+ expect(
+ instancesMainStats
+ .map((item) => item.memoryUsage)
+ .filter((value) => value !== undefined)
+ ).to.eql([]);
+ });
+ });
+ });
+
+ describe('with system metrics only', () => {
+ const serviceName = 'synth-node-1';
+ before(async () => {
+ const range = timerange(start, end);
+ const instances = Array(3)
+ .fill(0)
+ .map((_, idx) =>
+ apm
+ .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
+ .instance(`instance-${idx + 1}`)
+ );
+
+ return client.index(
+ instances.map((instance) => {
+ const metricsets = range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ instance
+ .appMetrics({
+ 'system.memory.actual.free': 800,
+ 'system.memory.total': 1000,
+ 'system.cpu.total.norm.pct': 0.6,
+ 'system.process.cpu.total.norm.pct': 0.7,
+ })
+ .timestamp(timestamp)
+ );
+ return metricsets;
+ })
+ );
+ });
+
+ after(async () => {
+ await client.clean();
+ });
+
+ describe(`Fetch main statistics`, () => {
+ let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
+
+ before(async () => {
+ instancesMainStats = await getServiceOverviewInstancesMainStatistics({
+ serviceName,
+ });
+ });
+
+ it('returns instances name', () => {
+ expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql([
+ 'instance-1',
+ 'instance-2',
+ 'instance-3',
+ ]);
+ });
+
+ it('does not return throughput', () => {
+ expect(
+ instancesMainStats
+ .map((item) => item.throughput)
+ .filter((value) => value !== undefined)
+ ).to.eql([]);
+ });
+
+ it('does not return latency', () => {
+ expect(
+ instancesMainStats
+ .map((item) => item.latency)
+ .filter((value) => value !== undefined)
+ ).to.eql([]);
+ });
+
+ it('does not return errorRate', () => {
+ expect(
+ instancesMainStats
+ .map((item) => item.errorRate)
+ .filter((value) => value !== undefined)
+ ).to.eql([]);
+ });
+
+ it('returns cpu usage', () => {
+ expect(sum(instancesMainStats.map((item) => item.cpuUsage))).to.greaterThan(0);
+ });
+
+ it('returns memory usage', () => {
+ expect(sum(instancesMainStats.map((item) => item.memoryUsage))).to.greaterThan(0);
+ });
+ });
+ });
+ });
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/services/derived_annotations.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/services/derived_annotations.spec.ts
index 3af97dea84c72..272ddb876573f 100644
--- a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/services/derived_annotations.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/services/derived_annotations.spec.ts
@@ -118,7 +118,7 @@ export default function annotationApiTests({ getService }: DeploymentAgnosticFtr
});
response = (
- await apmApiClient.readUser({
+ await apmApiClient.publicApi({
endpoint: 'GET /api/apm/services/{serviceName}/annotation/search 2023-10-31',
params: {
path: {
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/agent_keys/agent_keys.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/agent_keys/agent_keys.spec.ts
new file mode 100644
index 0000000000000..925820c0e7c13
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/agent_keys/agent_keys.spec.ts
@@ -0,0 +1,84 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import expect from '@kbn/expect';
+import { PrivilegeType, ClusterPrivilegeType } from '@kbn/apm-plugin/common/privilege_type';
+import type { RoleCredentials } from '../../../../../services';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+import { expectToReject } from '../../../../../../../apm_api_integration/common/utils/expect_to_reject';
+import type { ApmApiError } from '../../../../../services/apm_api';
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const samlAuth = getService('samlAuth');
+
+ const agentKeyName = 'test';
+ const allApplicationPrivileges = [PrivilegeType.AGENT_CONFIG, PrivilegeType.EVENT];
+ const clusterPrivileges = [ClusterPrivilegeType.MANAGE_OWN_API_KEY];
+
+ async function createAgentKey(roleAuthc: RoleCredentials) {
+ return await apmApiClient.publicApi({
+ endpoint: 'POST /api/apm/agent_keys 2023-10-31',
+ params: {
+ body: {
+ name: agentKeyName,
+ privileges: allApplicationPrivileges,
+ },
+ },
+ roleAuthc,
+ });
+ }
+
+ async function invalidateAgentKey(id: string) {
+ return await apmApiClient.writeUser({
+ endpoint: 'POST /internal/apm/api_key/invalidate',
+ params: {
+ body: { id },
+ },
+ });
+ }
+
+ async function getAgentKeys() {
+ return await apmApiClient.writeUser({ endpoint: 'GET /internal/apm/agent_keys' });
+ }
+
+ describe('When the user does not have the required privileges', () => {
+ let roleAuthc: RoleCredentials;
+
+ before(async () => {
+ roleAuthc = await samlAuth.createM2mApiKeyWithRoleScope('editor');
+ });
+
+ after(async () => {
+ await samlAuth.invalidateM2mApiKeyWithRoleScope(roleAuthc);
+ });
+
+ describe('When the user does not have the required cluster privileges', () => {
+ it('should return an error when creating an agent key', async () => {
+ const error = await expectToReject(() => createAgentKey(roleAuthc));
+ expect(error.res.status).to.be(403);
+ expect(error.res.body.message).contain('is missing the following requested privilege');
+ expect(error.res.body.attributes).to.eql({
+ _inspect: [],
+ data: {
+ missingPrivileges: allApplicationPrivileges,
+ missingClusterPrivileges: clusterPrivileges,
+ },
+ });
+ });
+
+ it('should return an error when invalidating an agent key', async () => {
+ const error = await expectToReject(() => invalidateAgentKey(agentKeyName));
+ expect(error.res.status).to.be(500);
+ });
+
+ it('should return an error when getting a list of agent keys', async () => {
+ const error = await expectToReject(() => getAgentKeys());
+ expect(error.res.status).to.be(500);
+ });
+ });
+ });
+}
diff --git a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/basic.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/basic.spec.ts
similarity index 63%
rename from x-pack/test/apm_api_integration/tests/settings/anomaly_detection/basic.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/basic.spec.ts
index 86290fc35f124..195e4ff5e7bd2 100644
--- a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/basic.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/basic.spec.ts
@@ -6,17 +6,13 @@
*/
import expect from '@kbn/expect';
-import { FtrProviderContext } from '../../../common/ftr_provider_context';
-import { ApmApiError } from '../../../common/apm_api_supertest';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+import type { ApmApiError } from '../../../../../services/apm_api';
-export default function apiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
+export default function apiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
- type SupertestAsUser =
- | typeof apmApiClient.readUser
- | typeof apmApiClient.writeUser
- | typeof apmApiClient.noAccessUser;
+ type SupertestAsUser = typeof apmApiClient.readUser | typeof apmApiClient.writeUser;
function getJobs(user: SupertestAsUser) {
return user({ endpoint: `GET /internal/apm/settings/anomaly-detection/jobs` });
@@ -34,7 +30,6 @@ export default function apiTest({ getService }: FtrProviderContext) {
async function expectForbidden(user: SupertestAsUser) {
try {
await getJobs(user);
- expect(true).to.be(false);
} catch (e) {
const err = e as ApmApiError;
expect(err.res.status).to.be(403);
@@ -42,20 +37,14 @@ export default function apiTest({ getService }: FtrProviderContext) {
try {
await createJobs(user, ['production', 'staging']);
- expect(true).to.be(false);
} catch (e) {
const err = e as ApmApiError;
expect(err.res.status).to.be(403);
}
}
- registry.when('ML jobs return a 403 for', { config: 'basic', archives: [] }, () => {
+ describe('ML jobs return a 403 for', () => {
describe('basic', function () {
- this.tags('skipFIPS');
- it('user without access', async () => {
- await expectForbidden(apmApiClient.noAccessUser);
- });
-
it('read user', async () => {
await expectForbidden(apmApiClient.readUser);
});
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/read_user.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/read_user.spec.ts
new file mode 100644
index 0000000000000..0de23a4c27f2f
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/anomaly_detection/read_user.spec.ts
@@ -0,0 +1,52 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+import type { ApmApiError } from '../../../../../services/apm_api';
+
+export default function apiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+
+ function getJobs() {
+ return apmApiClient.readUser({ endpoint: `GET /internal/apm/settings/anomaly-detection/jobs` });
+ }
+
+ function createJobs(environments: string[]) {
+ return apmApiClient.readUser({
+ endpoint: `POST /internal/apm/settings/anomaly-detection/jobs`,
+ params: {
+ body: { environments },
+ },
+ });
+ }
+
+ describe('ML jobs', () => {
+ describe(`when readUser has read access to ML`, () => {
+ describe('when calling the endpoint for listing jobs', () => {
+ it('returns a list of jobs', async () => {
+ const { body } = await getJobs();
+
+ expect(body.jobs).not.to.be(undefined);
+ expect(body.hasLegacyJobs).to.be(false);
+ });
+ });
+
+ describe('when calling create endpoint', () => {
+ it('returns an error because the user does not have access', async () => {
+ try {
+ await createJobs(['production', 'staging']);
+ expect(true).to.be(false);
+ } catch (e) {
+ const err = e as ApmApiError;
+ expect(err.res.status).to.be(403);
+ }
+ });
+ });
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/apm_indices/apm_indices.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/apm_indices/apm_indices.spec.ts
new file mode 100644
index 0000000000000..1fe51b69fccb4
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/apm_indices/apm_indices.spec.ts
@@ -0,0 +1,75 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import {
+ APM_INDEX_SETTINGS_SAVED_OBJECT_ID,
+ APM_INDEX_SETTINGS_SAVED_OBJECT_TYPE,
+} from '@kbn/apm-data-access-plugin/server/saved_objects/apm_indices';
+import expect from '@kbn/expect';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+
+export default function apmIndicesTests({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const kibanaServer = getService('kibanaServer');
+ const apmApiClient = getService('apmApi');
+
+ async function deleteSavedObject() {
+ try {
+ return await kibanaServer.savedObjects.delete({
+ type: APM_INDEX_SETTINGS_SAVED_OBJECT_TYPE,
+ id: APM_INDEX_SETTINGS_SAVED_OBJECT_ID,
+ });
+ } catch (e) {
+ if (e.response.status !== 404) {
+ throw e;
+ }
+ }
+ }
+
+ describe('APM Indices', () => {
+ beforeEach(async () => {
+ await deleteSavedObject();
+ });
+
+ afterEach(async () => {
+ await deleteSavedObject();
+ });
+
+ it('returns APM Indices', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint: 'GET /internal/apm/settings/apm-indices',
+ });
+ expect(response.status).to.be(200);
+ expect(response.body).to.eql({
+ transaction: 'traces-apm*,apm-*,traces-*.otel-*',
+ span: 'traces-apm*,apm-*,traces-*.otel-*',
+ error: 'logs-apm*,apm-*,logs-*.otel-*',
+ metric: 'metrics-apm*,apm-*,metrics-*.otel-*',
+ onboarding: 'apm-*',
+ sourcemap: 'apm-*',
+ });
+ });
+
+ it('updates apm indices', async () => {
+ const INDEX_VALUE = 'foo-*';
+
+ const writeResponse = await apmApiClient.writeUser({
+ endpoint: 'POST /internal/apm/settings/apm-indices/save',
+ params: {
+ body: { transaction: INDEX_VALUE },
+ },
+ });
+ expect(writeResponse.status).to.be(200);
+
+ const readResponse = await apmApiClient.readUser({
+ endpoint: 'GET /internal/apm/settings/apm-indices',
+ });
+
+ expect(readResponse.status).to.be(200);
+ expect(readResponse.body.transaction).to.eql(INDEX_VALUE);
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/custom_link/custom_link.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/custom_link/custom_link.spec.ts
new file mode 100644
index 0000000000000..9924814591110
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/custom_link/custom_link.spec.ts
@@ -0,0 +1,200 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import type { CustomLink } from '@kbn/apm-plugin/common/custom_link/custom_link_types';
+import type { ApmApiError } from '../../../../../services/apm_api';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../../ftr_provider_context';
+import { ARCHIVER_ROUTES } from '../../constants/archiver';
+
+export default function customLinksTests({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const esArchiver = getService('esArchiver');
+ const apmApiClient = getService('apmApi');
+ const log = getService('log');
+
+ const archiveName = '8.0.0';
+
+ describe('Custom links with data', () => {
+ before(async () => {
+ await esArchiver.load(ARCHIVER_ROUTES[archiveName]);
+
+ const customLink = {
+ url: 'https://elastic.co',
+ label: 'with filters',
+ filters: [
+ { key: 'service.name', value: 'baz' },
+ { key: 'transaction.type', value: 'qux' },
+ ],
+ } as CustomLink;
+
+ await createCustomLink(customLink);
+ });
+
+ after(async () => {
+ await esArchiver.unload(ARCHIVER_ROUTES[archiveName]);
+ });
+
+ it('should fail if the user does not have write access', async () => {
+ const customLink = {
+ url: 'https://elastic.co',
+ label: 'with filters',
+ filters: [
+ { key: 'service.name', value: 'baz' },
+ { key: 'transaction.type', value: 'qux' },
+ ],
+ } as CustomLink;
+
+ const err = await expectToReject(() => createCustomLinkAsReadUser(customLink));
+ expect(err.res.status).to.be(403);
+ });
+
+ it('fetches a custom link', async () => {
+ const { status, body } = await searchCustomLinks({
+ 'service.name': 'baz',
+ 'transaction.type': 'qux',
+ });
+ const { label, url, filters } = body.customLinks[0];
+
+ expect(status).to.equal(200);
+ expect({ label, url, filters }).to.eql({
+ label: 'with filters',
+ url: 'https://elastic.co',
+ filters: [
+ { key: 'service.name', value: 'baz' },
+ { key: 'transaction.type', value: 'qux' },
+ ],
+ });
+ });
+
+ it(`creates a custom link as write user`, async () => {
+ const customLink = {
+ url: 'https://elastic.co',
+ label: 'with filters',
+ filters: [
+ { key: 'service.name', value: 'baz' },
+ { key: 'transaction.type', value: 'qux' },
+ ],
+ } as CustomLink;
+
+ await createCustomLink(customLink);
+ });
+
+ it(`updates a custom link as write user`, async () => {
+ const { status, body } = await searchCustomLinks({
+ 'service.name': 'baz',
+ 'transaction.type': 'qux',
+ });
+ expect(status).to.equal(200);
+
+ const id = body.customLinks[0].id!;
+ await updateCustomLink(id, {
+ label: 'foo',
+ url: 'https://elastic.co?service.name={{service.name}}',
+ filters: [
+ { key: 'service.name', value: 'quz' },
+ { key: 'transaction.name', value: 'bar' },
+ ],
+ });
+
+ const { status: newStatus, body: newBody } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
+ });
+
+ const { label, url, filters } = newBody.customLinks[0];
+ expect(newStatus).to.equal(200);
+ expect({ label, url, filters }).to.eql({
+ label: 'foo',
+ url: 'https://elastic.co?service.name={{service.name}}',
+ filters: [
+ { key: 'service.name', value: 'quz' },
+ { key: 'transaction.name', value: 'bar' },
+ ],
+ });
+ });
+
+ it(`deletes a custom link as write user`, async () => {
+ const { status, body } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
+ });
+ expect(status).to.equal(200);
+ expect(body.customLinks.length).to.be(1);
+
+ const id = body.customLinks[0].id!;
+ await deleteCustomLink(id);
+
+ const { status: newStatus, body: newBody } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
+ });
+ expect(newStatus).to.equal(200);
+ expect(newBody.customLinks.length).to.be(0);
+ });
+ });
+
+ function searchCustomLinks(filters?: any) {
+ return apmApiClient.readUser({
+ endpoint: 'GET /internal/apm/settings/custom_links',
+ params: {
+ query: filters,
+ },
+ });
+ }
+
+ async function createCustomLink(customLink: CustomLink) {
+ log.debug('creating configuration', customLink);
+
+ return apmApiClient.writeUser({
+ endpoint: 'POST /internal/apm/settings/custom_links',
+ params: {
+ body: customLink,
+ },
+ });
+ }
+
+ async function createCustomLinkAsReadUser(customLink: CustomLink) {
+ log.debug('creating configuration', customLink);
+
+ return apmApiClient.readUser({
+ endpoint: 'POST /internal/apm/settings/custom_links',
+ params: {
+ body: customLink,
+ },
+ });
+ }
+
+ async function updateCustomLink(id: string, customLink: CustomLink) {
+ log.debug('updating configuration', id, customLink);
+
+ return apmApiClient.writeUser({
+ endpoint: 'PUT /internal/apm/settings/custom_links/{id}',
+ params: {
+ path: { id },
+ body: customLink,
+ },
+ });
+ }
+
+ async function deleteCustomLink(id: string) {
+ log.debug('deleting configuration', id);
+
+ return apmApiClient.writeUser({
+ endpoint: 'DELETE /internal/apm/settings/custom_links/{id}',
+ params: { path: { id } },
+ });
+ }
+}
+
+async function expectToReject(fn: () => Promise): Promise {
+ try {
+ await fn();
+ } catch (e) {
+ return e;
+ }
+ throw new Error(`Expected fn to throw`);
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/index.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/index.ts
new file mode 100644
index 0000000000000..5690ce79690c3
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/settings/index.ts
@@ -0,0 +1,18 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) {
+ describe('settings', () => {
+ loadTestFile(require.resolve('./agent_keys/agent_keys.spec.ts'));
+ loadTestFile(require.resolve('./anomaly_detection/basic.spec.ts'));
+ loadTestFile(require.resolve('./anomaly_detection/read_user.spec.ts'));
+ loadTestFile(require.resolve('./apm_indices/apm_indices.spec.ts'));
+ loadTestFile(require.resolve('./custom_link/custom_link.spec.ts'));
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/breakdown.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/breakdown.spec.ts
new file mode 100644
index 0000000000000..73437daa08654
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/breakdown.spec.ts
@@ -0,0 +1,41 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import archives from '../constants/archives_metadata';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+
+ const archiveName = 'apm_8.0.0';
+ const { start, end } = archives[archiveName];
+ const transactionType = 'request';
+
+ describe('Breakdown', () => {
+ describe('when data is not loaded', () => {
+ it('handles the empty state', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint: 'GET /internal/apm/services/{serviceName}/transaction/charts/breakdown',
+ params: {
+ path: { serviceName: 'opbeans-node' },
+ query: {
+ start,
+ end,
+ transactionType,
+ environment: 'ENVIRONMENT_ALL',
+ kuery: '',
+ },
+ },
+ });
+
+ expect(response.status).to.be(200);
+ expect(response.body).to.eql({ timeseries: [] });
+ });
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/error_rate.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/error_rate.spec.ts
new file mode 100644
index 0000000000000..976f33a59488f
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/error_rate.spec.ts
@@ -0,0 +1,436 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import { apm, timerange } from '@kbn/apm-synthtrace-client';
+import expect from '@kbn/expect';
+import { buildQueryFromFilters } from '@kbn/es-query';
+import { first, last } from 'lodash';
+import moment from 'moment';
+import {
+ APIClientRequestParamsOf,
+ APIReturnType,
+} from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
+import { RecursivePartial } from '@kbn/apm-plugin/typings/common';
+import { ApmDocumentType } from '@kbn/apm-plugin/common/document_type';
+import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+type ErrorRate =
+ APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/charts/error_rate'>;
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
+
+ // url parameters
+ const start = new Date('2021-01-01T00:00:00.000Z').getTime();
+ const end = new Date('2021-01-01T00:15:00.000Z').getTime() - 1;
+
+ async function fetchErrorCharts(
+ overrides?: RecursivePartial<
+ APIClientRequestParamsOf<'GET /internal/apm/services/{serviceName}/transactions/charts/error_rate'>['params']
+ >
+ ) {
+ return await apmApiClient.readUser({
+ endpoint: `GET /internal/apm/services/{serviceName}/transactions/charts/error_rate`,
+ params: {
+ path: { serviceName: overrides?.path?.serviceName || 'opbeans-go' },
+ query: {
+ start: new Date(start).toISOString(),
+ end: new Date(end).toISOString(),
+ transactionType: 'request',
+ environment: 'ENVIRONMENT_ALL',
+ kuery: '',
+ documentType: ApmDocumentType.TransactionMetric,
+ rollupInterval: RollupInterval.OneMinute,
+ bucketSizeInSeconds: 60,
+ ...overrides?.query,
+ },
+ },
+ });
+ }
+
+ describe('Error rate', () => {
+ describe('Error rate when data is not loaded', () => {
+ it('handles the empty state', async () => {
+ const response = await fetchErrorCharts();
+ expect(response.status).to.be(200);
+
+ const body = response.body as ErrorRate;
+ expect(body).to.be.eql({
+ currentPeriod: { timeseries: [], average: null },
+ previousPeriod: { timeseries: [], average: null },
+ });
+ });
+
+ it('handles the empty state with comparison data', async () => {
+ const response = await fetchErrorCharts({
+ query: {
+ start: moment(end).subtract(7, 'minutes').toISOString(),
+ offset: '7m',
+ },
+ });
+ expect(response.status).to.be(200);
+
+ const body = response.body as ErrorRate;
+ expect(body).to.be.eql({
+ currentPeriod: { timeseries: [], average: null },
+ previousPeriod: { timeseries: [], average: null },
+ });
+ });
+ });
+
+ describe('Error rate when data is loaded', () => {
+ const config = {
+ firstTransaction: {
+ name: 'GET /apple 🍎 ',
+ successRate: 50,
+ failureRate: 50,
+ },
+ secondTransaction: {
+ name: 'GET /pear 🍎 ',
+ successRate: 25,
+ failureRate: 75,
+ },
+ };
+ let apmSynthtraceEsClient: ApmSynthtraceEsClient;
+
+ before(async () => {
+ apmSynthtraceEsClient = await synthtrace.createApmSynthtraceEsClient();
+ const serviceGoProdInstance = apm
+ .service({ name: 'opbeans-go', environment: 'production', agentName: 'go' })
+ .instance('instance-a');
+
+ const { firstTransaction, secondTransaction } = config;
+
+ const documents = [
+ timerange(start, end)
+ .ratePerMinute(firstTransaction.successRate)
+ .generator((timestamp) =>
+ serviceGoProdInstance
+ .transaction({ transactionName: firstTransaction.name })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ ),
+ timerange(start, end)
+ .ratePerMinute(firstTransaction.failureRate)
+ .generator((timestamp) =>
+ serviceGoProdInstance
+ .transaction({ transactionName: firstTransaction.name })
+ .duration(1000)
+ .timestamp(timestamp)
+ .failure()
+ ),
+ timerange(start, end)
+ .ratePerMinute(secondTransaction.successRate)
+ .generator((timestamp) =>
+ serviceGoProdInstance
+ .transaction({ transactionName: secondTransaction.name })
+ .timestamp(timestamp)
+ .duration(1000)
+ .success()
+ ),
+ timerange(start, end)
+ .ratePerMinute(secondTransaction.failureRate)
+ .generator((timestamp) =>
+ serviceGoProdInstance
+ .transaction({ transactionName: secondTransaction.name })
+ .duration(1000)
+ .timestamp(timestamp)
+ .failure()
+ ),
+ ];
+ await apmSynthtraceEsClient.index(documents);
+ });
+
+ after(() => apmSynthtraceEsClient.clean());
+
+ describe('returns the transaction error rate', () => {
+ let errorRateResponse: ErrorRate;
+
+ before(async () => {
+ const response = await fetchErrorCharts({
+ query: { transactionName: config.firstTransaction.name },
+ });
+ errorRateResponse = response.body;
+ });
+
+ it('returns some data', () => {
+ expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0);
+ expect(errorRateResponse.previousPeriod.average).to.be(null);
+
+ expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty();
+ expect(errorRateResponse.previousPeriod.timeseries).to.empty();
+
+ const nonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter(
+ ({ y }) => y !== null
+ );
+
+ expect(nonNullDataPoints).not.to.be.empty();
+ });
+
+ it('has the correct start date', () => {
+ expect(
+ new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:00:00.000Z');
+ });
+
+ it('has the correct end date', () => {
+ expect(
+ new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:14:00.000Z');
+ });
+
+ it('has the correct number of buckets', () => {
+ expect(errorRateResponse.currentPeriod.timeseries.length).to.be.eql(15);
+ });
+
+ it('has the correct calculation for average', () => {
+ expect(errorRateResponse.currentPeriod.average).to.eql(
+ config.firstTransaction.failureRate / 100
+ );
+ });
+ });
+
+ describe('returns the transaction error rate with comparison data per transaction name', () => {
+ let errorRateResponse: ErrorRate;
+
+ before(async () => {
+ const query = {
+ transactionName: config.firstTransaction.name,
+ start: moment(end).subtract(7, 'minutes').toISOString(),
+ offset: '7m',
+ };
+
+ const response = await fetchErrorCharts({ query });
+
+ errorRateResponse = response.body;
+ });
+
+ it('returns some data', () => {
+ expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0);
+ expect(errorRateResponse.previousPeriod.average).to.be.greaterThan(0);
+
+ expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty();
+ expect(errorRateResponse.previousPeriod.timeseries).not.to.be.empty();
+
+ const currentPeriodNonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter(
+ ({ y }) => y !== null
+ );
+
+ const previousPeriodNonNullDataPoints =
+ errorRateResponse.previousPeriod.timeseries.filter(({ y }) => y !== null);
+
+ expect(currentPeriodNonNullDataPoints).not.to.be.empty();
+ expect(previousPeriodNonNullDataPoints).not.to.be.empty();
+ });
+
+ it('has the correct start date', () => {
+ expect(
+ new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:07:00.000Z');
+ expect(
+ new Date(first(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:07:00.000Z');
+ });
+
+ it('has the correct end date', () => {
+ expect(
+ new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:14:00.000Z');
+ expect(
+ new Date(last(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString()
+ ).to.eql('2021-01-01T00:14:00.000Z');
+ });
+
+ it('has the correct number of buckets', () => {
+ expect(errorRateResponse.currentPeriod.timeseries.length).to.eql(8);
+ expect(errorRateResponse.previousPeriod.timeseries.length).to.eql(8);
+ });
+
+ it('has the correct calculation for average', () => {
+ expect(errorRateResponse.currentPeriod.average).to.eql(
+ config.firstTransaction.failureRate / 100
+ );
+ expect(errorRateResponse.previousPeriod.average).to.eql(
+ config.firstTransaction.failureRate / 100
+ );
+ });
+
+ it('matches x-axis on current period and previous period', () => {
+ expect(errorRateResponse.currentPeriod.timeseries.map(({ x }) => x)).to.be.eql(
+ errorRateResponse.previousPeriod.timeseries.map(({ x }) => x)
+ );
+ });
+ });
+
+ describe('returns the same error rate for tx metrics and service tx metrics ', () => {
+ let txMetricsErrorRateResponse: ErrorRate;
+ let serviceTxMetricsErrorRateResponse: ErrorRate;
+
+ before(async () => {
+ const [txMetricsResponse, serviceTxMetricsResponse] = await Promise.all([
+ fetchErrorCharts(),
+ fetchErrorCharts({
+ query: { documentType: ApmDocumentType.ServiceTransactionMetric },
+ }),
+ ]);
+
+ txMetricsErrorRateResponse = txMetricsResponse.body;
+ serviceTxMetricsErrorRateResponse = serviceTxMetricsResponse.body;
+ });
+
+ describe('has the correct calculation for average', () => {
+ const expectedFailureRate =
+ (config.firstTransaction.failureRate + config.secondTransaction.failureRate) / 2 / 100;
+
+ it('for tx metrics', () => {
+ expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
+ });
+
+ it('for service tx metrics', () => {
+ expect(serviceTxMetricsErrorRateResponse.currentPeriod.average).to.eql(
+ expectedFailureRate
+ );
+ });
+ });
+ });
+
+ describe('handles kuery', () => {
+ let txMetricsErrorRateResponse: ErrorRate;
+
+ before(async () => {
+ const txMetricsResponse = await fetchErrorCharts({
+ query: {
+ kuery: 'transaction.name : "GET /pear 🍎 "',
+ },
+ });
+ txMetricsErrorRateResponse = txMetricsResponse.body;
+ });
+
+ describe('has the correct calculation for average with kuery', () => {
+ const expectedFailureRate = config.secondTransaction.failureRate / 100;
+
+ it('for tx metrics', () => {
+ expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
+ });
+ });
+ });
+
+ describe('handles filters', () => {
+ const filters = [
+ {
+ meta: {
+ disabled: false,
+ negate: false,
+ alias: null,
+ key: 'transaction.name',
+ params: ['GET /api/product/list'],
+ type: 'phrases',
+ },
+ query: {
+ bool: {
+ minimum_should_match: 1,
+ should: {
+ match_phrase: {
+ 'transaction.name': 'GET /pear 🍎 ',
+ },
+ },
+ },
+ },
+ },
+ ];
+ const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined));
+ let txMetricsErrorRateResponse: ErrorRate;
+
+ before(async () => {
+ const txMetricsResponse = await fetchErrorCharts({
+ query: {
+ filters: serializedFilters,
+ },
+ });
+ txMetricsErrorRateResponse = txMetricsResponse.body;
+ });
+
+ describe('has the correct calculation for average with filter', () => {
+ const expectedFailureRate = config.secondTransaction.failureRate / 100;
+
+ it('for tx metrics', () => {
+ expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
+ });
+ });
+
+ describe('has the correct calculation for average with negate filter', () => {
+ const expectedFailureRate = config.secondTransaction.failureRate / 100;
+
+ it('for tx metrics', () => {
+ expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
+ });
+ });
+ });
+
+ describe('handles negate filters', () => {
+ const filters = [
+ {
+ meta: {
+ disabled: false,
+ negate: true,
+ alias: null,
+ key: 'transaction.name',
+ params: ['GET /api/product/list'],
+ type: 'phrases',
+ },
+ query: {
+ bool: {
+ minimum_should_match: 1,
+ should: {
+ match_phrase: {
+ 'transaction.name': 'GET /pear 🍎 ',
+ },
+ },
+ },
+ },
+ },
+ ];
+ const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined));
+ let txMetricsErrorRateResponse: ErrorRate;
+
+ before(async () => {
+ const txMetricsResponse = await fetchErrorCharts({
+ query: {
+ filters: serializedFilters,
+ },
+ });
+ txMetricsErrorRateResponse = txMetricsResponse.body;
+ });
+
+ describe('has the correct calculation for average with filter', () => {
+ const expectedFailureRate = config.firstTransaction.failureRate / 100;
+
+ it('for tx metrics', () => {
+ expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
+ });
+ });
+ });
+
+ describe('handles bad filters request', () => {
+ it('for tx metrics', async () => {
+ try {
+ await fetchErrorCharts({
+ query: {
+ filters: '{}}}',
+ },
+ });
+ } catch (e) {
+ expect(e.res.status).to.eql(400);
+ }
+ });
+ });
+ });
+ });
+}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/index.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/index.ts
new file mode 100644
index 0000000000000..30715c862c7f5
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/index.ts
@@ -0,0 +1,21 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) {
+ describe('transactions', () => {
+ loadTestFile(require.resolve('./breakdown.spec.ts'));
+ loadTestFile(require.resolve('./error_rate.spec.ts'));
+ loadTestFile(require.resolve('./latency_overall_distribution.spec.ts'));
+ loadTestFile(require.resolve('./latency.spec.ts'));
+ loadTestFile(require.resolve('./transactions_groups_alerts.spec.ts'));
+ loadTestFile(require.resolve('./transactions_groups_detailed_statistics.spec.ts'));
+ loadTestFile(require.resolve('./transactions_groups_main_statistics.spec.ts'));
+ loadTestFile(require.resolve('./trace_samples.spec.ts'));
+ });
+}
diff --git a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency.spec.ts
similarity index 96%
rename from x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency.spec.ts
index eefe5cfb0d0fe..f369bc63ca4ef 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency.spec.ts
@@ -17,15 +17,15 @@ import { RecursivePartial } from '@kbn/apm-plugin/typings/common';
import { meanBy } from 'lodash';
import { ApmDocumentType } from '@kbn/apm-plugin/common/document_type';
import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
type LatencyChartReturnType =
APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/charts/latency'>;
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const apmSynthtraceEsClient = getService('apmSynthtraceEsClient');
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
const serviceName = 'synth-go';
const start = new Date('2021-01-01T00:00:00.000Z').getTime();
@@ -57,10 +57,8 @@ export default function ApiTest({ getService }: FtrProviderContext) {
});
}
- registry.when(
- 'Latency with a basic license when data is not loaded ',
- { config: 'basic', archives: [] },
- () => {
+ describe('Latency', () => {
+ describe('when data is not loaded ', () => {
it('handles the empty state', async () => {
const response = await fetchLatencyCharts();
expect(response.status).to.be(200);
@@ -70,19 +68,17 @@ export default function ApiTest({ getService }: FtrProviderContext) {
expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be(0);
expect(latencyChartReturn.previousPeriod.latencyTimeseries.length).to.be(0);
});
- }
- );
-
- // FLAKY: https://github.com/elastic/kibana/issues/177596
- registry.when(
- 'Latency with a basic license when data is loaded',
- { config: 'basic', archives: [] },
- () => {
+ });
+
+ describe('when data is loaded', () => {
const GO_PROD_RATE = 80;
const GO_DEV_RATE = 20;
const GO_PROD_DURATION = 1000;
const GO_DEV_DURATION = 500;
+ let apmSynthtraceEsClient: ApmSynthtraceEsClient;
+
before(async () => {
+ apmSynthtraceEsClient = await synthtrace.createApmSynthtraceEsClient();
const serviceGoProdInstance = apm
.service({ name: serviceName, environment: 'production', agentName: 'go' })
.instance('instance-a');
@@ -439,6 +435,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
}
});
});
- }
- );
+ });
+ });
}
diff --git a/x-pack/test/apm_api_integration/tests/transactions/latency_overall_distribution.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency_overall_distribution.spec.ts
similarity index 68%
rename from x-pack/test/apm_api_integration/tests/transactions/latency_overall_distribution.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency_overall_distribution.spec.ts
index 0f6060517db3b..2b78a7b10088d 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/latency_overall_distribution.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/latency_overall_distribution.spec.ts
@@ -7,12 +7,12 @@
import expect from '@kbn/expect';
import { LatencyDistributionChartType } from '@kbn/apm-plugin/common/latency_distribution_chart_types';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+import { ARCHIVER_ROUTES } from '../constants/archiver';
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const esArchiver = getService('esArchiver');
const endpoint = 'POST /internal/apm/latency/overall_distribution/transactions';
// This matches the parameters used for the other tab's search strategy approach in `../correlations/*`.
@@ -29,10 +29,8 @@ export default function ApiTest({ getService }: FtrProviderContext) {
},
});
- registry.when.skip(
- 'latency overall distribution without data',
- { config: 'trial', archives: [] },
- () => {
+ describe('Latency overall distribution', () => {
+ describe('without data', () => {
it('handles the empty state', async () => {
const response = await apmApiClient.readUser({
endpoint,
@@ -43,14 +41,17 @@ export default function ApiTest({ getService }: FtrProviderContext) {
expect(response.body?.percentileThresholdValue).to.be(undefined);
expect(response.body?.overallHistogram?.length).to.be(undefined);
});
- }
- );
+ });
- registry.when.skip(
- 'latency overall distribution with data and default args',
- // This uses the same archive used for the other tab's search strategy approach in `../correlations/*`.
- { config: 'trial', archives: ['8.0.0'] },
- () => {
+ describe('with data and default args', () => {
+ before(async () => {
+ await esArchiver.load(ARCHIVER_ROUTES['8.0.0']);
+ });
+ after(async () => {
+ await esArchiver.unload(ARCHIVER_ROUTES['8.0.0']);
+ });
+
+ // This uses the same archive used for the other tab's search strategy approach in `../correlations/*`.
it('returns percentileThresholdValue and overall histogram', async () => {
const response = await apmApiClient.readUser({
endpoint,
@@ -62,6 +63,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
expect(response.body?.percentileThresholdValue).to.be(1309695.875);
expect(response.body?.overallHistogram?.length).to.be(101);
});
- }
- );
+ });
+ });
}
diff --git a/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/trace_samples.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/trace_samples.spec.ts
new file mode 100644
index 0000000000000..004165905916d
--- /dev/null
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/trace_samples.spec.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import expect from '@kbn/expect';
+import archives from '../constants/archives_metadata';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+
+ const archiveName = 'apm_8.0.0';
+ const { start, end } = archives[archiveName];
+
+ describe('Transaction trace samples', () => {
+ describe('when data is not loaded', () => {
+ it('handles empty state', async () => {
+ const response = await apmApiClient.readUser({
+ endpoint: 'GET /internal/apm/services/{serviceName}/transactions/traces/samples',
+ params: {
+ path: { serviceName: 'opbeans-java' },
+ query: {
+ start,
+ end,
+ transactionType: 'request',
+ environment: 'ENVIRONMENT_ALL',
+ transactionName: 'APIRestController#stats',
+ kuery: '',
+ },
+ },
+ });
+
+ expect(response.status).to.be(200);
+
+ expect(response.body.traceSamples.length).to.be(0);
+ });
+ });
+ });
+}
diff --git a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_alerts.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_alerts.spec.ts
similarity index 73%
rename from x-pack/test/apm_api_integration/tests/transactions/transactions_groups_alerts.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_alerts.spec.ts
index f6b2c7c3a74a7..6abefb559bc2d 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_alerts.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_alerts.spec.ts
@@ -13,26 +13,26 @@ import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
import { apm, timerange } from '@kbn/apm-synthtrace-client';
import { AggregationType } from '@kbn/apm-plugin/common/rules/apm_rule_types';
import { ApmRuleType } from '@kbn/rule-data-utils';
-import { waitForAlertsForRule } from '../alerts/helpers/wait_for_alerts_for_rule';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-import { createApmRule, runRuleSoon, ApmAlertFields } from '../alerts/helpers/alerting_api_helper';
-import { waitForActiveRule } from '../alerts/helpers/wait_for_active_rule';
-import { cleanupRuleAndAlertState } from '../alerts/helpers/cleanup_rule_and_alert_state';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace';
+import type { RoleCredentials } from '@kbn/ftr-common-functional-services';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
+import { APM_ACTION_VARIABLE_INDEX, APM_ALERTS_INDEX } from '../alerts/helpers/alerting_helper';
type TransactionsGroupsMainStatistics =
APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics'>;
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const apmSynthtraceEsClient = getService('apmSynthtraceEsClient');
- const supertest = getService('supertest');
- const es = getService('es');
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
+ const alertingApi = getService('alertingApi');
+ const samlAuth = getService('samlAuth');
+
const serviceName = 'synth-go';
const dayInMs = 24 * 60 * 60 * 1000;
const start = Date.now() - dayInMs;
const end = Date.now() + dayInMs;
- const logger = getService('log');
+
+ type Alerts = Awaited>;
async function getTransactionGroups(overrides?: {
path?: {
@@ -69,12 +69,12 @@ export default function ApiTest({ getService }: FtrProviderContext) {
},
});
expect(response.status).to.be(200);
+
return response.body as TransactionsGroupsMainStatistics;
}
- // FLAKY: https://github.com/elastic/kibana/issues/177617
- registry.when('when data is loaded', { config: 'basic', archives: [] }, () => {
- describe('Alerts', () => {
+ describe('Transaction groups alerts', () => {
+ describe('when data is loaded', () => {
const transactions = [
{
name: 'GET /api/task/avg',
@@ -102,7 +102,12 @@ export default function ApiTest({ getService }: FtrProviderContext) {
type: 'request',
},
];
+ let apmSynthtraceEsClient: ApmSynthtraceEsClient;
+ let roleAuthc: RoleCredentials;
+
before(async () => {
+ roleAuthc = await samlAuth.createM2mApiKeyWithRoleScope('admin');
+ apmSynthtraceEsClient = await synthtrace.createApmSynthtraceEsClient();
const serviceGoProdInstance = apm
.service({ name: serviceName, environment: 'production', agentName: 'go' })
.instance('instance-a');
@@ -135,16 +140,17 @@ export default function ApiTest({ getService }: FtrProviderContext) {
]);
});
- after(() => apmSynthtraceEsClient.clean());
+ after(async () => {
+ await samlAuth.invalidateM2mApiKeyWithRoleScope(roleAuthc);
+ await apmSynthtraceEsClient.clean();
+ });
- // FLAKY: https://github.com/elastic/kibana/issues/198866
- describe.skip('Transaction groups with avg transaction duration alerts', () => {
+ describe('with avg transaction duration alerts', () => {
let ruleId: string;
- let alerts: ApmAlertFields[];
+ let alerts: Alerts;
before(async () => {
- const createdRule = await createApmRule({
- supertest,
+ const createdRule = await alertingApi.createRule({
name: `Latency threshold | ${serviceName}`,
params: {
serviceName,
@@ -163,30 +169,42 @@ export default function ApiTest({ getService }: FtrProviderContext) {
],
},
ruleTypeId: ApmRuleType.TransactionDuration,
+ consumer: 'apm',
+ roleAuthc,
});
ruleId = createdRule.id;
- alerts = await waitForAlertsForRule({ es, ruleId });
+ alerts = await alertingApi.waitForAlertInIndex({
+ ruleId,
+ indexName: APM_ALERTS_INDEX,
+ });
});
after(async () => {
- await cleanupRuleAndAlertState({ es, supertest, logger });
+ await alertingApi.cleanUpAlerts({
+ ruleId,
+ alertIndexName: APM_ALERTS_INDEX,
+ connectorIndexName: APM_ACTION_VARIABLE_INDEX,
+ consumer: 'apm',
+ roleAuthc,
+ });
});
it('checks if rule is active', async () => {
- const ruleStatus = await waitForActiveRule({ ruleId, supertest });
+ const ruleStatus = await alertingApi.waitForRuleStatus({
+ ruleId,
+ expectedStatus: 'active',
+ roleAuthc,
+ });
expect(ruleStatus).to.be('active');
});
it('should successfully run the rule', async () => {
- const response = await runRuleSoon({
- ruleId,
- supertest,
- });
+ const response = await alertingApi.runRule(roleAuthc, ruleId);
expect(response.status).to.be(204);
});
it('indexes alert document', async () => {
- expect(alerts.length).to.be(1);
+ expect(alerts.hits.hits.length).to.be(1);
});
it('returns the correct number of alert counts', async () => {
@@ -210,13 +228,12 @@ export default function ApiTest({ getService }: FtrProviderContext) {
});
});
- describe('Transaction groups with p99 transaction duration alerts', () => {
+ describe('with p99 transaction duration alerts', () => {
let ruleId: string;
- let alerts: ApmAlertFields[];
+ let alerts: Alerts;
before(async () => {
- const createdRule = await createApmRule({
- supertest,
+ const createdRule = await alertingApi.createRule({
name: `Latency threshold | ${serviceName}`,
params: {
serviceName,
@@ -235,31 +252,43 @@ export default function ApiTest({ getService }: FtrProviderContext) {
],
},
ruleTypeId: ApmRuleType.TransactionDuration,
+ consumer: 'apm',
+ roleAuthc,
});
ruleId = createdRule.id;
- alerts = await waitForAlertsForRule({ es, ruleId });
+ alerts = await alertingApi.waitForAlertInIndex({
+ ruleId,
+ indexName: APM_ALERTS_INDEX,
+ });
});
after(async () => {
- await cleanupRuleAndAlertState({ es, supertest, logger });
+ await alertingApi.cleanUpAlerts({
+ ruleId,
+ alertIndexName: APM_ALERTS_INDEX,
+ connectorIndexName: APM_ACTION_VARIABLE_INDEX,
+ consumer: 'apm',
+ roleAuthc,
+ });
});
it('checks if rule is active', async () => {
- const ruleStatus = await waitForActiveRule({ ruleId, supertest });
+ const ruleStatus = await alertingApi.waitForRuleStatus({
+ ruleId,
+ expectedStatus: 'active',
+ roleAuthc,
+ });
expect(ruleStatus).to.be('active');
});
it('should successfully run the rule', async () => {
- const response = await runRuleSoon({
- ruleId,
- supertest,
- });
+ const response = await alertingApi.runRule(roleAuthc, ruleId);
expect(response.status).to.be(204);
});
it('indexes alert document', async () => {
- expect(alerts.length).to.be(1);
+ expect(alerts.hits.hits.length).to.be(1);
});
it('returns the correct number of alert counts', async () => {
@@ -286,13 +315,12 @@ export default function ApiTest({ getService }: FtrProviderContext) {
});
});
- describe('Transaction groups with error rate alerts', () => {
+ describe('with error rate alerts', () => {
let ruleId: string;
- let alerts: ApmAlertFields[];
+ let alerts: Alerts;
before(async () => {
- const createdRule = await createApmRule({
- supertest,
+ const createdRule = await alertingApi.createRule({
name: `Error rate | ${serviceName}`,
params: {
serviceName,
@@ -310,30 +338,43 @@ export default function ApiTest({ getService }: FtrProviderContext) {
],
},
ruleTypeId: ApmRuleType.TransactionErrorRate,
+ consumer: 'apm',
+ roleAuthc,
});
+
ruleId = createdRule.id;
- alerts = await waitForAlertsForRule({ es, ruleId });
+ alerts = await alertingApi.waitForAlertInIndex({
+ ruleId,
+ indexName: APM_ALERTS_INDEX,
+ });
});
after(async () => {
- await cleanupRuleAndAlertState({ es, supertest, logger });
+ await alertingApi.cleanUpAlerts({
+ ruleId,
+ alertIndexName: APM_ALERTS_INDEX,
+ connectorIndexName: APM_ACTION_VARIABLE_INDEX,
+ consumer: 'apm',
+ roleAuthc,
+ });
});
it('checks if rule is active', async () => {
- const ruleStatus = await waitForActiveRule({ ruleId, supertest });
+ const ruleStatus = await alertingApi.waitForRuleStatus({
+ ruleId,
+ expectedStatus: 'active',
+ roleAuthc,
+ });
expect(ruleStatus).to.be('active');
});
it('should successfully run the rule', async () => {
- const response = await runRuleSoon({
- ruleId,
- supertest,
- });
+ const response = await alertingApi.runRule(roleAuthc, ruleId);
expect(response.status).to.be(204);
});
it('indexes alert document', async () => {
- expect(alerts.length).to.be(1);
+ expect(alerts.hits.hits.length).to.be(1);
});
it('returns the correct number of alert counts', async () => {
@@ -360,7 +401,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
});
});
- describe('Transaction groups without alerts', () => {
+ describe('without alerts', () => {
it('returns the correct number of alert counts', async () => {
const txGroupsTypeTask = await getTransactionGroups({
query: { transactionType: 'task' },
diff --git a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_detailed_statistics.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_detailed_statistics.spec.ts
similarity index 94%
rename from x-pack/test/apm_api_integration/tests/transactions/transactions_groups_detailed_statistics.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_detailed_statistics.spec.ts
index 77a4b67b4bc4e..bc0ea9e1f501d 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_detailed_statistics.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_detailed_statistics.spec.ts
@@ -12,16 +12,16 @@ import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregati
import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
import { ApmDocumentType, ApmTransactionDocumentType } from '@kbn/apm-plugin/common/document_type';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-import { roundNumber } from '../../utils';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace';
+import { roundNumber } from '../../../../../../apm_api_integration/utils';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
type TransactionsGroupsDetailedStatistics =
APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics'>;
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const apmSynthtraceEsClient = getService('apmSynthtraceEsClient');
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
const serviceName = 'synth-go';
const start = new Date('2021-01-01T00:00:00.000Z').getTime();
@@ -71,23 +71,21 @@ export default function ApiTest({ getService }: FtrProviderContext) {
return response.body;
}
- registry.when(
- 'Transaction groups detailed statistics when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
+ describe('Transactions groups detailed statistics', () => {
+ describe('when data is not loaded', () => {
it('handles the empty state', async () => {
const response = await callApi();
expect(response).to.be.eql({ currentPeriod: {}, previousPeriod: {} });
});
- }
- );
+ });
- // FLAKY: https://github.com/elastic/kibana/issues/177619
- registry.when('data is loaded', { config: 'basic', archives: [] }, () => {
- describe('transactions groups detailed stats', () => {
+ describe('when data is loaded', () => {
const GO_PROD_RATE = 75;
const GO_PROD_ERROR_RATE = 25;
+ let apmSynthtraceEsClient: ApmSynthtraceEsClient;
+
before(async () => {
+ apmSynthtraceEsClient = await synthtrace.createApmSynthtraceEsClient();
const serviceGoProdInstance = apm
.service({ name: serviceName, environment: 'production', agentName: 'go' })
.instance('instance-a');
diff --git a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_main_statistics.spec.ts b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_main_statistics.spec.ts
similarity index 88%
rename from x-pack/test/apm_api_integration/tests/transactions/transactions_groups_main_statistics.spec.ts
rename to x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_main_statistics.spec.ts
index d7c5e78fdcd12..df86780629f4d 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/transactions_groups_main_statistics.spec.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/transactions/transactions_groups_main_statistics.spec.ts
@@ -11,12 +11,12 @@ import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregati
import { ApmDocumentType, ApmTransactionDocumentType } from '@kbn/apm-plugin/common/document_type';
import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
import { apm, timerange } from '@kbn/apm-synthtrace-client';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
+import type { ApmSynthtraceEsClient } from '@kbn/apm-synthtrace';
+import type { DeploymentAgnosticFtrProviderContext } from '../../../../ftr_provider_context';
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const apmSynthtraceEsClient = getService('apmSynthtraceEsClient');
+export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderContext) {
+ const apmApiClient = getService('apmApi');
+ const synthtrace = getService('synthtrace');
const serviceName = 'synth-go';
const start = new Date('2021-01-01T00:00:00.000Z').getTime();
@@ -45,7 +45,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
query: {
start: new Date(start).toISOString(),
end: new Date(end).toISOString(),
- latencyAggregationType: 'avg' as LatencyAggregationType,
+ latencyAggregationType: LatencyAggregationType.avg,
transactionType: 'request',
environment: 'ENVIRONMENT_ALL',
useDurationSummary: false,
@@ -60,22 +60,17 @@ export default function ApiTest({ getService }: FtrProviderContext) {
return response.body;
}
- registry.when(
- 'Transaction groups main statistics when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
+ describe('Transaction groups main statistics', () => {
+ describe('when data is not loaded', () => {
it('handles the empty state', async () => {
const transactionsGroupsPrimaryStatistics = await callApi();
expect(transactionsGroupsPrimaryStatistics.transactionGroups).to.empty();
expect(transactionsGroupsPrimaryStatistics.maxCountExceeded).to.be(false);
});
- }
- );
+ });
- // FLAKY: https://github.com/elastic/kibana/issues/177620
- registry.when('when data is loaded', { config: 'basic', archives: [] }, () => {
- describe('Transaction groups main statistics', () => {
+ describe('when data is loaded', () => {
const GO_PROD_RATE = 75;
const GO_PROD_ERROR_RATE = 25;
const transactions = [
@@ -92,7 +87,10 @@ export default function ApiTest({ getService }: FtrProviderContext) {
duration: 1000,
},
];
+ let apmSynthtraceEsClient: ApmSynthtraceEsClient;
+
before(async () => {
+ apmSynthtraceEsClient = await synthtrace.createApmSynthtraceEsClient();
const serviceGoProdInstance = apm
.service({ name: serviceName, environment: 'production', agentName: 'go' })
.instance('instance-a');
diff --git a/x-pack/test/api_integration/deployment_agnostic/services/apm_api.ts b/x-pack/test/api_integration/deployment_agnostic/services/apm_api.ts
index c3f43b57902e8..ed2c5ba7ccf1f 100644
--- a/x-pack/test/api_integration/deployment_agnostic/services/apm_api.ts
+++ b/x-pack/test/api_integration/deployment_agnostic/services/apm_api.ts
@@ -16,16 +16,7 @@ import { formatRequest } from '@kbn/server-route-repository';
import { RoleCredentials } from '@kbn/ftr-common-functional-services';
import type { DeploymentAgnosticFtrProviderContext } from '../ftr_provider_context';
-const INTERNAL_API_REGEX = /^\S+\s(\/)?internal\/[^\s]*$/;
-
-type InternalApi = `${string} /internal/${string}`;
-interface ExternalEndpointParams {
- roleAuthc: RoleCredentials;
-}
-
-type Options = (TEndpoint extends InternalApi
- ? {}
- : ExternalEndpointParams) & {
+type Options = {
type?: 'form-data';
endpoint: TEndpoint;
spaceId?: string;
@@ -33,33 +24,28 @@ type Options = (TEndpoint extends InternalApi
params?: { query?: { _inspect?: boolean } };
};
-function isPublicApi(
- options: Options
-): options is Options & ExternalEndpointParams {
- return !INTERNAL_API_REGEX.test(options.endpoint);
-}
+type InternalEndpoint = T extends `${string} /internal/${string}`
+ ? T
+ : never;
+
+type PublicEndpoint = T extends `${string} /api/${string}` ? T : never;
-function createApmApiClient({ getService }: DeploymentAgnosticFtrProviderContext, role: string) {
+function createApmApiClient({ getService }: DeploymentAgnosticFtrProviderContext) {
const supertestWithoutAuth = getService('supertestWithoutAuth');
const samlAuth = getService('samlAuth');
const logger = getService('log');
- return async (
- options: Options
- ): Promise> => {
+ async function makeApiRequest({
+ options,
+ headers,
+ }: {
+ options: Options;
+ headers: Record;
+ }): Promise> {
const { endpoint, type } = options;
const params = 'params' in options ? (options.params as Record) : {};
- const credentials = isPublicApi(options)
- ? options.roleAuthc.apiKeyHeader
- : await samlAuth.getM2MApiCookieCredentialsWithRoleScope(role);
-
- const headers: Record = {
- ...samlAuth.getInternalRequestHeader(),
- ...credentials,
- };
-
const { method, pathname, version } = formatRequest(endpoint, params.path);
const pathnameWithSpaceId = options.spaceId ? `/s/${options.spaceId}${pathname}` : pathname;
const url = format({ pathname: pathnameWithSpaceId, query: params?.query });
@@ -71,6 +57,7 @@ function createApmApiClient({ getService }: DeploymentAgnosticFtrProviderContext
}
let res: request.Response;
+
if (type === 'form-data') {
const fields: Array<[string, any]> = Object.entries(params.body);
const formDataRequest = supertestWithoutAuth[method](url)
@@ -94,6 +81,45 @@ function createApmApiClient({ getService }: DeploymentAgnosticFtrProviderContext
}
return res;
+ }
+
+ function makeInternalApiRequest(role: string) {
+ return async >(
+ options: Options
+ ): Promise> => {
+ const headers: Record = {
+ ...samlAuth.getInternalRequestHeader(),
+ ...(await samlAuth.getM2MApiCookieCredentialsWithRoleScope(role)),
+ };
+
+ return makeApiRequest({
+ options,
+ headers,
+ });
+ };
+ }
+
+ function makePublicApiRequest() {
+ return async >(
+ options: Options & {
+ roleAuthc: RoleCredentials;
+ }
+ ): Promise> => {
+ const headers: Record = {
+ ...samlAuth.getInternalRequestHeader(),
+ ...options.roleAuthc.apiKeyHeader,
+ };
+
+ return makeApiRequest({
+ options,
+ headers,
+ });
+ };
+ }
+
+ return {
+ makeInternalApiRequest,
+ makePublicApiRequest,
};
}
@@ -129,10 +155,12 @@ export interface SupertestReturnType {
}
export function ApmApiProvider(context: DeploymentAgnosticFtrProviderContext) {
+ const apmClient = createApmApiClient(context);
return {
- readUser: createApmApiClient(context, 'viewer'),
- adminUser: createApmApiClient(context, 'admin'),
- writeUser: createApmApiClient(context, 'editor'),
+ readUser: apmClient.makeInternalApiRequest('viewer'),
+ adminUser: apmClient.makeInternalApiRequest('admin'),
+ writeUser: apmClient.makeInternalApiRequest('editor'),
+ publicApi: apmClient.makePublicApiRequest(),
};
}
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/__snapshots__/instance_details.spec.snap b/x-pack/test/apm_api_integration/tests/service_overview/__snapshots__/instance_details.spec.snap
deleted file mode 100644
index f3fb16ec38b15..0000000000000
--- a/x-pack/test/apm_api_integration/tests/service_overview/__snapshots__/instance_details.spec.snap
+++ /dev/null
@@ -1,30 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`APM API tests service_overview/instance_details.spec.ts basic no archive Instance details when data is loaded fetch instance details return the correct data 1`] = `
-Object {
- "agent": Object {
- "name": "java",
- },
- "container": Object {
- "id": "123",
- },
- "host": Object {
- "name": "multiple-env-service-production",
- },
- "kubernetes": Object {
- "container": Object {},
- "deployment": Object {},
- "pod": Object {
- "uid": "234",
- },
- "replicaset": Object {},
- },
- "service": Object {
- "environment": "production",
- "name": "service1",
- "node": Object {
- "name": "multiple-env-service-production",
- },
- },
-}
-`;
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/dependencies/index.spec.ts b/x-pack/test/apm_api_integration/tests/service_overview/dependencies/index.spec.ts
index 0e841e26ddde4..fd06ee9f95266 100644
--- a/x-pack/test/apm_api_integration/tests/service_overview/dependencies/index.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/service_overview/dependencies/index.spec.ts
@@ -6,23 +6,16 @@
*/
import expect from '@kbn/expect';
-import { last, omit, pick, sortBy } from 'lodash';
-import { ValuesType } from 'utility-types';
-import { Node, NodeType } from '@kbn/apm-plugin/common/connections';
-import {
- ENVIRONMENT_ALL,
- ENVIRONMENT_NOT_DEFINED,
-} from '@kbn/apm-plugin/common/environment_filter_values';
-import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
-import { roundNumber } from '../../../utils';
+import { omit, sortBy } from 'lodash';
+import { type Node, NodeType } from '@kbn/apm-plugin/common/connections';
+import { ENVIRONMENT_ALL } from '@kbn/apm-plugin/common/environment_filter_values';
+import type { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
import archives from '../../../common/fixtures/es_archiver/archives_metadata';
-import { FtrProviderContext } from '../../../common/ftr_provider_context';
-import { apmDependenciesMapping, createServiceDependencyDocs } from './es_utils';
+import type { FtrProviderContext } from '../../../common/ftr_provider_context';
export default function ApiTest({ getService }: FtrProviderContext) {
const registry = getService('registry');
const apmApiClient = getService('apmApiClient');
- const es = getService('es');
const archiveName = 'apm_8.0.0';
const { start, end } = archives[archiveName];
@@ -31,278 +24,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
return node.type === NodeType.service ? node.serviceName : node.dependencyName;
}
- registry.when(
- 'Service overview dependencies when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
- it('handles the empty state', async () => {
- const response = await apmApiClient.readUser({
- endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
- params: {
- path: { serviceName: 'opbeans-java' },
- query: {
- start,
- end,
- numBuckets: 20,
- environment: ENVIRONMENT_ALL.value,
- },
- },
- });
-
- expect(response.status).to.be(200);
- expect(response.body.serviceDependencies).to.eql([]);
- });
- }
- );
-
- registry.when(
- 'Service overview dependencies when specific data is loaded',
- { config: 'basic', archives: [] },
- () => {
- let response: {
- status: number;
- body: APIReturnType<'GET /internal/apm/services/{serviceName}/dependencies'>;
- };
-
- const indices = {
- metric: 'apm-dependencies-metric',
- transaction: 'apm-dependencies-transaction',
- span: 'apm-dependencies-span',
- };
-
- const startTime = new Date(start).getTime();
- const endTime = new Date(end).getTime();
-
- after(async () => {
- const allIndices = Object.values(indices).join(',');
- const indexExists = await es.indices.exists({ index: allIndices });
- if (indexExists) {
- await es.indices.delete({
- index: allIndices,
- });
- }
- });
-
- before(async () => {
- await es.indices.create({
- index: indices.metric,
- body: {
- mappings: apmDependenciesMapping,
- },
- });
-
- await es.indices.create({
- index: indices.transaction,
- body: {
- mappings: apmDependenciesMapping,
- },
- });
-
- await es.indices.create({
- index: indices.span,
- body: {
- mappings: apmDependenciesMapping,
- },
- });
-
- const docs = [
- ...createServiceDependencyDocs({
- service: {
- name: 'opbeans-java',
- environment: 'production',
- },
- agentName: 'java',
- span: {
- type: 'external',
- subtype: 'http',
- },
- resource: 'opbeans-node:3000',
- outcome: 'success',
- responseTime: {
- count: 2,
- sum: 10,
- },
- time: startTime,
- to: {
- service: {
- name: 'opbeans-node',
- },
- agentName: 'nodejs',
- },
- }),
- ...createServiceDependencyDocs({
- service: {
- name: 'opbeans-java',
- environment: 'production',
- },
- agentName: 'java',
- span: {
- type: 'external',
- subtype: 'http',
- },
- resource: 'opbeans-node:3000',
- outcome: 'failure',
- responseTime: {
- count: 1,
- sum: 10,
- },
- time: startTime,
- }),
- ...createServiceDependencyDocs({
- service: {
- name: 'opbeans-java',
- environment: 'production',
- },
- agentName: 'java',
- span: {
- type: 'external',
- subtype: 'http',
- },
- resource: 'postgres',
- outcome: 'success',
- responseTime: {
- count: 1,
- sum: 3,
- },
- time: startTime,
- }),
- ...createServiceDependencyDocs({
- service: {
- name: 'opbeans-java',
- environment: 'production',
- },
- agentName: 'java',
- span: {
- type: 'external',
- subtype: 'http',
- },
- resource: 'opbeans-node-via-proxy',
- outcome: 'success',
- responseTime: {
- count: 1,
- sum: 1,
- },
- time: endTime - 1,
- to: {
- service: {
- name: 'opbeans-node',
- },
- agentName: 'nodejs',
- },
- }),
- ];
-
- const bulkActions = docs.reduce(
- (prev, doc) => {
- return [...prev, { index: { _index: indices[doc.processor.event] } }, doc];
- },
- [] as Array<
- | {
- index: {
- _index: string;
- };
- }
- | ValuesType
- >
- );
-
- await es.bulk({
- body: bulkActions,
- refresh: 'wait_for',
- });
-
- response = await apmApiClient.readUser({
- endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
- params: {
- path: { serviceName: 'opbeans-java' },
- query: {
- start,
- end,
- numBuckets: 20,
- environment: ENVIRONMENT_ALL.value,
- },
- },
- });
- });
-
- it('returns a 200', () => {
- expect(response.status).to.be(200);
- });
-
- it('returns two dependencies', () => {
- expect(response.body.serviceDependencies.length).to.be(2);
- });
-
- it('returns opbeans-node as a dependency', () => {
- const opbeansNode = response.body.serviceDependencies.find(
- (item) => getName(item.location) === 'opbeans-node'
- );
-
- expect(opbeansNode !== undefined).to.be(true);
-
- const values = {
- latency: roundNumber(opbeansNode?.currentStats.latency.value),
- throughput: roundNumber(opbeansNode?.currentStats.throughput.value),
- errorRate: roundNumber(opbeansNode?.currentStats.errorRate.value),
- impact: opbeansNode?.currentStats.impact,
- ...pick(opbeansNode?.location, 'serviceName', 'type', 'agentName', 'environment'),
- };
-
- const count = 4;
- const sum = 21;
- const errors = 1;
-
- expect(values).to.eql({
- agentName: 'nodejs',
- environment: ENVIRONMENT_NOT_DEFINED.value,
- serviceName: 'opbeans-node',
- type: 'service',
- errorRate: roundNumber(errors / count),
- latency: roundNumber(sum / count),
- throughput: roundNumber(count / ((endTime - startTime) / 1000 / 60)),
- impact: 100,
- });
-
- const firstValue = roundNumber(opbeansNode?.currentStats.latency.timeseries[0].y);
- const lastValue = roundNumber(last(opbeansNode?.currentStats.latency.timeseries)?.y);
-
- expect(firstValue).to.be(roundNumber(20 / 3));
- expect(lastValue).to.be(1);
- });
-
- it('returns postgres as an external dependency', () => {
- const postgres = response.body.serviceDependencies.find(
- (item) => getName(item.location) === 'postgres'
- );
-
- expect(postgres !== undefined).to.be(true);
-
- const values = {
- latency: roundNumber(postgres?.currentStats.latency.value),
- throughput: roundNumber(postgres?.currentStats.throughput.value),
- errorRate: roundNumber(postgres?.currentStats.errorRate.value),
- impact: postgres?.currentStats.impact,
- ...pick(postgres?.location, 'spanType', 'spanSubtype', 'dependencyName', 'type'),
- };
-
- const count = 1;
- const sum = 3;
- const errors = 0;
-
- expect(values).to.eql({
- spanType: 'external',
- spanSubtype: 'http',
- dependencyName: 'postgres',
- type: 'dependency',
- errorRate: roundNumber(errors / count),
- latency: roundNumber(sum / count),
- throughput: roundNumber(count / ((endTime - startTime) / 1000 / 60)),
- impact: 0,
- });
- });
- }
- );
-
registry.when(
'Service overview dependencies when data is loaded',
{ config: 'basic', archives: [archiveName] },
@@ -311,7 +32,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
status: number;
body: APIReturnType<'GET /internal/apm/services/{serviceName}/dependencies'>;
};
- // eslint-disable-next-line mocha/no-sibling-hooks
+
before(async () => {
response = await apmApiClient.readUser({
endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/get_service_node_ids.ts b/x-pack/test/apm_api_integration/tests/service_overview/get_service_node_ids.ts
index ad3e872bcc879..751f772fb7507 100644
--- a/x-pack/test/apm_api_integration/tests/service_overview/get_service_node_ids.ts
+++ b/x-pack/test/apm_api_integration/tests/service_overview/get_service_node_ids.ts
@@ -6,7 +6,7 @@
*/
import { take } from 'lodash';
import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
-import { ApmServices } from '../../common/config';
+import type { ApmServices } from '../../common/config';
export async function getServiceNodeIds({
apmApiClient,
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/instance_details.spec.ts b/x-pack/test/apm_api_integration/tests/service_overview/instance_details.spec.ts
deleted file mode 100644
index 013237934904f..0000000000000
--- a/x-pack/test/apm_api_integration/tests/service_overview/instance_details.spec.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-import expect from '@kbn/expect';
-import { omit } from 'lodash';
-import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
-import { apm, timerange } from '@kbn/apm-synthtrace-client';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-import { getServiceNodeIds } from './get_service_node_ids';
-
-type ServiceOverviewInstanceDetails =
- APIReturnType<'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}'>;
-
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const synthtrace = getService('apmSynthtraceEsClient');
-
- const start = '2023-08-22T00:00:00.000Z';
- const end = '2023-08-22T01:00:00.000Z';
-
- registry.when(
- 'Instance details when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
- describe('when data is not loaded', () => {
- it('handles empty state', async () => {
- const response = await apmApiClient.readUser({
- endpoint:
- 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
- params: {
- path: { serviceName: 'opbeans-java', serviceNodeName: 'foo' },
- query: {
- start,
- end,
- },
- },
- });
-
- expect(response.status).to.be(200);
- expect(response.body).to.eql({});
- });
- });
- }
- );
-
- // FLAKY: https://github.com/elastic/kibana/issues/177494
- registry.when('Instance details when data is loaded', { config: 'basic', archives: [] }, () => {
- const range = timerange(new Date(start).getTime(), new Date(end).getTime());
-
- const serviceInstance = apm
- .service({ name: 'service1', environment: 'production', agentName: 'go' })
- .instance('multiple-env-service-production');
-
- const metricOnlyInstance = apm
- .service({ name: 'service1', environment: 'production', agentName: 'java' })
- .instance('multiple-env-service-production');
-
- before(async () => {
- return synthtrace.index([
- range
- .interval('1s')
- .rate(4)
- .generator((timestamp) =>
- serviceInstance
- .transaction({ transactionName: 'GET /api' })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- ),
- range
- .interval('30s')
- .rate(1)
- .generator((timestamp) =>
- metricOnlyInstance
- .containerId('123')
- .podId('234')
- .appMetrics({
- 'system.memory.actual.free': 1,
- 'system.cpu.total.norm.pct': 1,
- 'system.memory.total': 1,
- 'system.process.cpu.total.norm.pct': 1,
- })
- .timestamp(timestamp)
- ),
- ]);
- });
-
- after(() => {
- return synthtrace.clean();
- });
-
- describe('fetch instance details', () => {
- let response: {
- status: number;
- body: ServiceOverviewInstanceDetails;
- };
-
- let serviceNodeIds: string[];
-
- before(async () => {
- serviceNodeIds = await getServiceNodeIds({
- apmApiClient,
- start,
- end,
- serviceName: 'service1',
- });
-
- response = await apmApiClient.readUser({
- endpoint:
- 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
- params: {
- path: { serviceName: 'service1', serviceNodeName: serviceNodeIds[0] },
- query: {
- start,
- end,
- },
- },
- });
- });
-
- it('returns the instance details', () => {
- expect(response.body).to.not.eql({});
- });
-
- it('return the correct data', () => {
- expectSnapshot(omit(response.body, '@timestamp')).toMatch();
- });
- });
- });
-
- registry.when(
- 'Instance details when data is loaded but details not found',
- { config: 'basic', archives: [] },
- () => {
- it('handles empty state when instance id not found', async () => {
- const response = await apmApiClient.readUser({
- endpoint:
- 'GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}',
- params: {
- path: { serviceName: 'opbeans-java', serviceNodeName: 'foo' },
- query: {
- start,
- end,
- },
- },
- });
- expect(response.status).to.be(200);
- expect(response.body).to.eql({});
- });
- }
- );
-}
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/instances_detailed_statistics.spec.ts b/x-pack/test/apm_api_integration/tests/service_overview/instances_detailed_statistics.spec.ts
index 10cd3889613ab..af28697a254c2 100644
--- a/x-pack/test/apm_api_integration/tests/service_overview/instances_detailed_statistics.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/service_overview/instances_detailed_statistics.spec.ts
@@ -7,11 +7,11 @@
import expect from '@kbn/expect';
import moment from 'moment';
-import { Coordinate } from '@kbn/apm-plugin/typings/timeseries';
+import type { Coordinate } from '@kbn/apm-plugin/typings/timeseries';
import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
import { isFiniteNumber } from '@kbn/apm-plugin/common/utils/is_finite_number';
-import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
+import type { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
+import type { FtrProviderContext } from '../../common/ftr_provider_context';
import archives from '../../common/fixtures/es_archiver/archives_metadata';
import { getServiceNodeIds } from './get_service_node_ids';
@@ -28,39 +28,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
body: APIReturnType<'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics'>;
}
- registry.when(
- 'Service overview instances detailed statistics when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
- describe('when data is not loaded', () => {
- it('handles the empty state', async () => {
- const response = await apmApiClient.readUser({
- endpoint:
- 'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
- params: {
- path: { serviceName },
- query: {
- latencyAggregationType: LatencyAggregationType.avg,
- start,
- end,
- numBuckets: 20,
- transactionType: 'request',
- serviceNodeIds: JSON.stringify(
- await getServiceNodeIds({ apmApiClient, start, end })
- ),
- environment: 'ENVIRONMENT_ALL',
- kuery: '',
- },
- },
- });
-
- expect(response.status).to.be(200);
- expect(response.body).to.be.eql({ currentPeriod: {}, previousPeriod: {} });
- });
- });
- }
- );
-
registry.when(
'Service overview instances detailed statistics when data is loaded',
{ config: 'basic', archives: [archiveName] },
diff --git a/x-pack/test/apm_api_integration/tests/service_overview/instances_main_statistics.spec.ts b/x-pack/test/apm_api_integration/tests/service_overview/instances_main_statistics.spec.ts
deleted file mode 100644
index b0a6bf51d1ccf..0000000000000
--- a/x-pack/test/apm_api_integration/tests/service_overview/instances_main_statistics.spec.ts
+++ /dev/null
@@ -1,691 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-import expect from '@kbn/expect';
-import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
-import { apm, Instance, timerange } from '@kbn/apm-synthtrace-client';
-import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types';
-import { InstancesSortField } from '@kbn/apm-plugin/common/instances';
-import { sum } from 'lodash';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-import { roundNumber } from '../../utils';
-
-type ServiceOverviewInstancesMainStatistics =
- APIReturnType<'GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics'>;
-
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const synthtrace = getService('apmSynthtraceEsClient');
-
- const start = new Date('2021-01-01T00:00:00.000Z').getTime();
- const end = new Date('2021-01-01T00:10:00.000Z').getTime();
-
- async function getServiceOverviewInstancesMainStatistics({
- serviceName,
- sortField = 'throughput',
- sortDirection = 'desc',
- }: {
- serviceName: string;
- sortField?: InstancesSortField;
- sortDirection?: 'asc' | 'desc';
- }) {
- const { body } = await apmApiClient.readUser({
- endpoint: `GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics`,
- params: {
- path: { serviceName },
- query: {
- latencyAggregationType: LatencyAggregationType.avg,
- start: new Date(start).toISOString(),
- end: new Date(end).toISOString(),
- transactionType: 'request',
- environment: 'production',
- kuery: '',
- sortField,
- sortDirection,
- },
- },
- });
-
- return body.currentPeriod;
- }
-
- registry.when(
- 'Instances main statistics when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
- describe('when data is not loaded', () => {
- it('handles empty state', async () => {
- const response = await getServiceOverviewInstancesMainStatistics({ serviceName: 'foo' });
- expect(response).to.eql({});
- });
- });
- }
- );
-
- // FLAKY: https://github.com/elastic/kibana/issues/177492
- registry.when(
- 'Instances main statistics when data is loaded',
- { config: 'basic', archives: [] },
- () => {
- describe('Return Top 100 instances', () => {
- const serviceName = 'synth-node-1';
- before(() => {
- const range = timerange(start, end);
- const transactionName = 'foo';
-
- const successfulTimestamps = range.interval('1m').rate(1);
- const failedTimestamps = range.interval('1m').rate(1);
-
- const instances = [...Array(200).keys()].map((index) =>
- apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance(`instance-${index}`)
- );
-
- const instanceSpans = (instance: Instance) => {
- const successfulTraceEvents = successfulTimestamps.generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- .children(
- instance
- .span({
- spanName: 'GET apm-*/_search',
- spanType: 'db',
- spanSubtype: 'elasticsearch',
- })
- .duration(1000)
- .success()
- .destination('elasticsearch')
- .timestamp(timestamp),
- instance
- .span({ spanName: 'custom_operation', spanType: 'custom' })
- .duration(100)
- .success()
- .timestamp(timestamp)
- )
- );
-
- const failedTraceEvents = failedTimestamps.generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .failure()
- .errors(
- instance
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
-
- const metricsets = range
- .interval('30s')
- .rate(1)
- .generator((timestamp) =>
- instance
- .appMetrics({
- 'system.memory.actual.free': 800,
- 'system.memory.total': 1000,
- 'system.cpu.total.norm.pct': 0.6,
- 'system.process.cpu.total.norm.pct': 0.7,
- })
- .timestamp(timestamp)
- );
-
- return [successfulTraceEvents, failedTraceEvents, metricsets];
- };
-
- return synthtrace.index(instances.flatMap((instance) => instanceSpans(instance)));
- });
-
- after(() => {
- return synthtrace.clean();
- });
- describe('fetch instances', () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- });
- });
- it('returns top 100 instances', () => {
- expect(instancesMainStats.length).to.be(100);
- });
- });
- });
-
- describe('Order by error rate', () => {
- const serviceName = 'synth-node-1';
- before(async () => {
- const range = timerange(start, end);
- const transactionName = 'foo';
- /**
- * Instance A
- * 90 transactions = Success
- * 10 transactions = Failure
- * Error rate: 10%
- */
- const instanceA = apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance('instance-A');
- const instanceASuccessfulTraceEvents = range
- .interval('1m')
- .rate(10)
- .generator((timestamp, index) =>
- index < 10
- ? instanceA
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .failure()
- .errors(
- instanceA
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- : instanceA
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- );
- /**
- * Instance B
- * 1 transactions = Success
- * 9 transactions = Failure
- * Error rate: 90%
- */
- const instanceB = apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance('instance-B');
- const instanceBSuccessfulTraceEvents = range
- .interval('1m')
- .rate(1)
- .generator((timestamp, index) =>
- index === 0
- ? instanceB
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- : instanceB
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .failure()
- .errors(
- instanceB
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
- /**
- * Instance C
- * 2 transactions = Success
- * 8 transactions = Failure
- * Error rate: 80%
- */
- const instanceC = apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance('instance-C');
- const instanceCSuccessfulTraceEvents = range
- .interval('1m')
- .rate(1)
- .generator((timestamp, index) =>
- index < 2
- ? instanceC
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- : instanceC
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .failure()
- .errors(
- instanceC
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
- /**
- * Instance D
- * 0 transactions = Success
- * 10 transactions = Failure
- * Error rate: 100%
- */
- const instanceD = apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance('instance-D');
- const instanceDSuccessfulTraceEvents = range
- .interval('1m')
- .rate(1)
- .generator((timestamp) =>
- instanceD
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .failure()
- .errors(
- instanceD
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
- /**
- * Instance E
- * 10 transactions = Success
- * 0 transactions = Failure
- * Error rate: 0%
- */
- const instanceE = apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance('instance-E');
- const instanceESuccessfulTraceEvents = range
- .interval('1m')
- .rate(1)
- .generator((timestamp) =>
- instanceE
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- );
- return synthtrace.index([
- instanceASuccessfulTraceEvents,
- instanceBSuccessfulTraceEvents,
- instanceCSuccessfulTraceEvents,
- instanceDSuccessfulTraceEvents,
- instanceESuccessfulTraceEvents,
- ]);
- });
-
- after(() => {
- return synthtrace.clean();
- });
- describe('sort by error rate asc', () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- sortField: 'errorRate',
- sortDirection: 'asc',
- });
- });
- it('returns instances sorted asc', () => {
- expect(instancesMainStats.map((item) => roundNumber(item.errorRate))).to.eql([
- 0, 0.1, 0.8, 0.9, 1,
- ]);
- });
- });
- describe('sort by error rate desc', () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- sortField: 'errorRate',
- sortDirection: 'desc',
- });
- });
- it('returns instances sorted desc', () => {
- expect(instancesMainStats.map((item) => roundNumber(item.errorRate))).to.eql([
- 1, 0.9, 0.8, 0.1, 0,
- ]);
- });
- });
- });
-
- describe('with transactions and system metrics', () => {
- const serviceName = 'synth-node-1';
- before(async () => {
- const range = timerange(start, end);
- const transactionName = 'foo';
- const instances = Array(3)
- .fill(0)
- .map((_, idx) => {
- const index = idx + 1;
- return {
- instance: apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance(`instance-${index}`),
- duration: index * 1000,
- rate: index * 10,
- errorRate: 5,
- };
- });
-
- return synthtrace.index(
- instances.flatMap(({ instance, duration, rate, errorRate }) => {
- const successfulTraceEvents = range
- .interval('1m')
- .rate(rate)
- .generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(duration)
- .success()
- );
- const failedTraceEvents = range
- .interval('1m')
- .rate(errorRate)
- .generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(duration)
- .failure()
- .errors(
- instance
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
- const metricsets = range
- .interval('30s')
- .rate(1)
- .generator((timestamp) =>
- instance
- .appMetrics({
- 'system.memory.actual.free': 800,
- 'system.memory.total': 1000,
- 'system.cpu.total.norm.pct': 0.6,
- 'system.process.cpu.total.norm.pct': 0.7,
- })
- .timestamp(timestamp)
- );
- return [successfulTraceEvents, failedTraceEvents, metricsets];
- })
- );
- });
-
- after(() => {
- return synthtrace.clean();
- });
-
- describe('test order of items', () => {
- (
- [
- {
- field: 'throughput',
- direction: 'asc',
- expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
- expectedValues: [15, 25, 35],
- },
- {
- field: 'throughput',
- direction: 'desc',
- expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
- expectedValues: [35, 25, 15],
- },
- {
- field: 'latency',
- direction: 'asc',
- expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
- expectedValues: [1000000, 2000000, 3000000],
- },
- {
- field: 'latency',
- direction: 'desc',
- expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
- expectedValues: [3000000, 2000000, 1000000],
- },
- {
- field: 'serviceNodeName',
- direction: 'asc',
- expectedServiceNodeNames: ['instance-1', 'instance-2', 'instance-3'],
- },
- {
- field: 'serviceNodeName',
- direction: 'desc',
- expectedServiceNodeNames: ['instance-3', 'instance-2', 'instance-1'],
- },
- ] as Array<{
- field: InstancesSortField;
- direction: 'asc' | 'desc';
- expectedServiceNodeNames: string[];
- expectedValues?: number[];
- }>
- ).map(({ field, direction, expectedServiceNodeNames, expectedValues }) =>
- describe(`fetch instances main statistics ordered by ${field} ${direction}`, () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
-
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- sortField: field,
- sortDirection: direction,
- });
- });
-
- it('returns ordered instance main stats', () => {
- expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql(
- expectedServiceNodeNames
- );
- if (expectedValues) {
- expect(
- instancesMainStats.map((item) => {
- const value = item[field];
- if (typeof value === 'number') {
- return roundNumber(value);
- }
- return value;
- })
- ).to.eql(expectedValues);
- }
- });
-
- it('returns system metrics', () => {
- expect(instancesMainStats.map((item) => roundNumber(item.cpuUsage))).to.eql([
- 0.7, 0.7, 0.7,
- ]);
- expect(instancesMainStats.map((item) => roundNumber(item.memoryUsage))).to.eql([
- 0.2, 0.2, 0.2,
- ]);
- });
- })
- );
- });
- });
-
- describe('with transactions only', () => {
- const serviceName = 'synth-node-1';
- before(async () => {
- const range = timerange(start, end);
- const transactionName = 'foo';
- const instances = Array(3)
- .fill(0)
- .map((_, idx) => {
- const index = idx + 1;
- return {
- instance: apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance(`instance-${index}`),
- duration: index * 1000,
- rate: index * 10,
- errorRate: 5,
- };
- });
-
- return synthtrace.index(
- instances.flatMap(({ instance, duration, rate, errorRate }) => {
- const successfulTraceEvents = range
- .interval('1m')
- .rate(rate)
- .generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(duration)
- .success()
- );
- const failedTraceEvents = range
- .interval('1m')
- .rate(errorRate)
- .generator((timestamp) =>
- instance
- .transaction({ transactionName })
- .timestamp(timestamp)
- .duration(duration)
- .failure()
- .errors(
- instance
- .error({ message: '[ResponseError] index_not_found_exception' })
- .timestamp(timestamp + 50)
- )
- );
- return [successfulTraceEvents, failedTraceEvents];
- })
- );
- });
-
- after(() => {
- return synthtrace.clean();
- });
-
- describe(`Fetch main statistics`, () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
-
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- });
- });
-
- it('returns instances name', () => {
- expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql([
- 'instance-3',
- 'instance-2',
- 'instance-1',
- ]);
- });
-
- it('returns throughput', () => {
- expect(sum(instancesMainStats.map((item) => item.throughput))).to.greaterThan(0);
- });
-
- it('returns latency', () => {
- expect(sum(instancesMainStats.map((item) => item.latency))).to.greaterThan(0);
- });
-
- it('returns errorRate', () => {
- expect(sum(instancesMainStats.map((item) => item.errorRate))).to.greaterThan(0);
- });
-
- it('does not return cpu usage', () => {
- expect(
- instancesMainStats.map((item) => item.cpuUsage).filter((value) => value !== undefined)
- ).to.eql([]);
- });
-
- it('does not return memory usage', () => {
- expect(
- instancesMainStats
- .map((item) => item.memoryUsage)
- .filter((value) => value !== undefined)
- ).to.eql([]);
- });
- });
- });
-
- describe('with system metrics only', () => {
- const serviceName = 'synth-node-1';
- before(async () => {
- const range = timerange(start, end);
- const instances = Array(3)
- .fill(0)
- .map((_, idx) =>
- apm
- .service({ name: serviceName, environment: 'production', agentName: 'nodejs' })
- .instance(`instance-${idx + 1}`)
- );
-
- return synthtrace.index(
- instances.map((instance) => {
- const metricsets = range
- .interval('30s')
- .rate(1)
- .generator((timestamp) =>
- instance
- .appMetrics({
- 'system.memory.actual.free': 800,
- 'system.memory.total': 1000,
- 'system.cpu.total.norm.pct': 0.6,
- 'system.process.cpu.total.norm.pct': 0.7,
- })
- .timestamp(timestamp)
- );
- return metricsets;
- })
- );
- });
-
- after(() => {
- return synthtrace.clean();
- });
-
- describe(`Fetch main statistics`, () => {
- let instancesMainStats: ServiceOverviewInstancesMainStatistics['currentPeriod'];
-
- before(async () => {
- instancesMainStats = await getServiceOverviewInstancesMainStatistics({
- serviceName,
- });
- });
-
- it('returns instances name', () => {
- expect(instancesMainStats.map((item) => item.serviceNodeName)).to.eql([
- 'instance-1',
- 'instance-2',
- 'instance-3',
- ]);
- });
-
- it('does not return throughput', () => {
- expect(
- instancesMainStats
- .map((item) => item.throughput)
- .filter((value) => value !== undefined)
- ).to.eql([]);
- });
-
- it('does not return latency', () => {
- expect(
- instancesMainStats.map((item) => item.latency).filter((value) => value !== undefined)
- ).to.eql([]);
- });
-
- it('does not return errorRate', () => {
- expect(
- instancesMainStats
- .map((item) => item.errorRate)
- .filter((value) => value !== undefined)
- ).to.eql([]);
- });
-
- it('returns cpu usage', () => {
- expect(sum(instancesMainStats.map((item) => item.cpuUsage))).to.greaterThan(0);
- });
-
- it('returns memory usage', () => {
- expect(sum(instancesMainStats.map((item) => item.memoryUsage))).to.greaterThan(0);
- });
- });
- });
- }
- );
-}
diff --git a/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts b/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts
index 82c869dd09fe2..8d8808c282a8b 100644
--- a/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts
@@ -6,7 +6,7 @@
*/
import expect from '@kbn/expect';
import { first } from 'lodash';
-import { PrivilegeType, ClusterPrivilegeType } from '@kbn/apm-plugin/common/privilege_type';
+import { PrivilegeType } from '@kbn/apm-plugin/common/privilege_type';
import { ApmUsername } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/authentication';
import { FtrProviderContext } from '../../../common/ftr_provider_context';
import { ApmApiError, ApmApiSupertest } from '../../../common/apm_api_supertest';
@@ -19,7 +19,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
const agentKeyName = 'test';
const allApplicationPrivileges = [PrivilegeType.AGENT_CONFIG, PrivilegeType.EVENT];
- const clusterPrivileges = [ClusterPrivilegeType.MANAGE_OWN_API_KEY];
async function createAgentKey(apiClient: ApmApiSupertest, privileges = allApplicationPrivileges) {
return await apiClient({
@@ -50,37 +49,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
'When the user does not have the required privileges',
{ config: 'basic', archives: [] },
() => {
- describe('When the user does not have the required cluster privileges', () => {
- it('should return an error when creating an agent key', async () => {
- const error = await expectToReject(() =>
- createAgentKey(apmApiClient.writeUser)
- );
- expect(error.res.status).to.be(403);
- expect(error.res.body.message).contain('is missing the following requested privilege');
- expect(error.res.body.attributes).to.eql({
- _inspect: [],
- data: {
- missingPrivileges: allApplicationPrivileges,
- missingClusterPrivileges: clusterPrivileges,
- },
- });
- });
-
- it('should return an error when invalidating an agent key', async () => {
- const error = await expectToReject(() =>
- invalidateAgentKey(apmApiClient.writeUser, agentKeyName)
- );
- expect(error.res.status).to.be(500);
- });
-
- it('should return an error when getting a list of agent keys', async () => {
- const error = await expectToReject(() =>
- getAgentKeys(apmApiClient.writeUser)
- );
- expect(error.res.status).to.be(500);
- });
- });
-
describe('When the user does not have the required application privileges', () => {
allApplicationPrivileges.map((privilege) => {
it(`should return an error when creating an agent key with ${privilege} privilege`, async () => {
diff --git a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/read_user.spec.ts b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/read_user.spec.ts
index cc56731fec07b..fa9bcb1d0700d 100644
--- a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/read_user.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/read_user.spec.ts
@@ -35,37 +35,35 @@ export default function apiTest({ getService }: FtrProviderContext) {
}
registry.when('ML jobs', { config: 'trial', archives: [] }, () => {
- (['readUser', 'apmAllPrivilegesWithoutWriteSettingsUser'] as ApmApiClientKey[]).forEach(
- (user) => {
- describe(`when ${user} has read access to ML`, () => {
- before(async () => {
- const res = await getJobs({ user });
- const jobIds = res.body.jobs.map((job: any) => job.jobId);
- await deleteJobs(jobIds);
- });
+ (['apmAllPrivilegesWithoutWriteSettingsUser'] as ApmApiClientKey[]).forEach((user) => {
+ describe(`when ${user} has read access to ML`, () => {
+ before(async () => {
+ const res = await getJobs({ user });
+ const jobIds = res.body.jobs.map((job: any) => job.jobId);
+ await deleteJobs(jobIds);
+ });
- describe('when calling the endpoint for listing jobs', () => {
- it('returns a list of jobs', async () => {
- const { body } = await getJobs({ user });
+ describe('when calling the endpoint for listing jobs', () => {
+ it('returns a list of jobs', async () => {
+ const { body } = await getJobs({ user });
- expect(body.jobs.length).to.be(0);
- expect(body.hasLegacyJobs).to.be(false);
- });
+ expect(body.jobs.length).to.be(0);
+ expect(body.hasLegacyJobs).to.be(false);
});
+ });
- describe('when calling create endpoint', () => {
- it('returns an error because the user does not have access', async () => {
- try {
- await createJobs(['production', 'staging'], { user });
- expect(true).to.be(false);
- } catch (e) {
- const err = e as ApmApiError;
- expect(err.res.status).to.be(403);
- }
- });
+ describe('when calling create endpoint', () => {
+ it('returns an error because the user does not have access', async () => {
+ try {
+ await createJobs(['production', 'staging'], { user });
+ expect(true).to.be(false);
+ } catch (e) {
+ const err = e as ApmApiError;
+ expect(err.res.status).to.be(403);
+ }
});
});
- }
- );
+ });
+ });
});
}
diff --git a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/write_user.spec.ts b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/write_user.spec.ts
index 652da64384dd7..40e62b1ddc969 100644
--- a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/write_user.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/write_user.spec.ts
@@ -35,59 +35,57 @@ export default function apiTest({ getService }: FtrProviderContext) {
}
registry.when('ML jobs', { config: 'trial', archives: [] }, () => {
- (['writeUser', 'apmReadPrivilegesWithWriteSettingsUser'] as ApmApiClientKey[]).forEach(
- (user) => {
- describe(`when ${user} has write access to ML`, () => {
- before(async () => {
- const res = await getJobs({ user });
- const jobIds = res.body.jobs.map((job: any) => job.jobId);
- await deleteJobs(jobIds);
- });
+ (['apmReadPrivilegesWithWriteSettingsUser'] as ApmApiClientKey[]).forEach((user) => {
+ describe(`when ${user} has write access to ML`, () => {
+ before(async () => {
+ const res = await getJobs({ user });
+ const jobIds = res.body.jobs.map((job: any) => job.jobId);
+ await deleteJobs(jobIds);
+ });
+
+ after(async () => {
+ const res = await getJobs({ user });
+ const jobIds = res.body.jobs.map((job: any) => job.jobId);
+ await deleteJobs(jobIds);
+ });
- after(async () => {
- const res = await getJobs({ user });
- const jobIds = res.body.jobs.map((job: any) => job.jobId);
- await deleteJobs(jobIds);
+ describe('when calling the endpoint for listing jobs', () => {
+ it('returns a list of jobs', async () => {
+ const { body } = await getJobs({ user });
+ expect(body.jobs.length).to.be(0);
+ expect(body.hasLegacyJobs).to.be(false);
});
+ });
- describe('when calling the endpoint for listing jobs', () => {
- it('returns a list of jobs', async () => {
- const { body } = await getJobs({ user });
- expect(body.jobs.length).to.be(0);
- expect(body.hasLegacyJobs).to.be(false);
+ describe('when calling create endpoint', () => {
+ it('creates two jobs', async () => {
+ await createJobs(['production', 'staging'], { user });
+
+ const { body } = await getJobs({ user });
+ expect(body.hasLegacyJobs).to.be(false);
+ expect(countBy(body.jobs, 'environment')).to.eql({
+ production: 1,
+ staging: 1,
});
});
- describe('when calling create endpoint', () => {
- it('creates two jobs', async () => {
+ describe('with existing ML jobs', () => {
+ before(async () => {
await createJobs(['production', 'staging'], { user });
+ });
+ it('skips duplicate job creation', async () => {
+ await createJobs(['production', 'test'], { user });
const { body } = await getJobs({ user });
- expect(body.hasLegacyJobs).to.be(false);
expect(countBy(body.jobs, 'environment')).to.eql({
production: 1,
staging: 1,
- });
- });
-
- describe('with existing ML jobs', () => {
- before(async () => {
- await createJobs(['production', 'staging'], { user });
- });
- it('skips duplicate job creation', async () => {
- await createJobs(['production', 'test'], { user });
-
- const { body } = await getJobs({ user });
- expect(countBy(body.jobs, 'environment')).to.eql({
- production: 1,
- staging: 1,
- test: 1,
- });
+ test: 1,
});
});
});
});
- }
- );
+ });
+ });
});
}
diff --git a/x-pack/test/apm_api_integration/tests/settings/apm_indices/apm_indices.spec.ts b/x-pack/test/apm_api_integration/tests/settings/apm_indices/apm_indices.spec.ts
index 41bc0448e063e..6fb5977626259 100644
--- a/x-pack/test/apm_api_integration/tests/settings/apm_indices/apm_indices.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/settings/apm_indices/apm_indices.spec.ts
@@ -107,40 +107,6 @@ export default function apmIndicesTests({ getService }: FtrProviderContext) {
await deleteSavedObject();
});
- it('[trial] returns APM Indices', async () => {
- const response = await apmApiClient.readUser({
- endpoint: 'GET /internal/apm/settings/apm-indices',
- });
- expect(response.status).to.be(200);
- expect(response.body).to.eql({
- transaction: 'traces-apm*,apm-*,traces-*.otel-*',
- span: 'traces-apm*,apm-*,traces-*.otel-*',
- error: 'logs-apm*,apm-*,logs-*.otel-*',
- metric: 'metrics-apm*,apm-*,metrics-*.otel-*',
- onboarding: 'apm-*',
- sourcemap: 'apm-*',
- });
- });
-
- it('[trial] updates apm indices', async () => {
- const INDEX_VALUE = 'foo-*';
-
- const writeResponse = await apmApiClient.writeUser({
- endpoint: 'POST /internal/apm/settings/apm-indices/save',
- params: {
- body: { transaction: INDEX_VALUE },
- },
- });
- expect(writeResponse.status).to.be(200);
-
- const readResponse = await apmApiClient.readUser({
- endpoint: 'GET /internal/apm/settings/apm-indices',
- });
-
- expect(readResponse.status).to.be(200);
- expect(readResponse.body.transaction).to.eql(INDEX_VALUE);
- });
-
it('[trial] updates apm indices as read privileges with modify settings user', async () => {
const INDEX_VALUE = 'foo-*';
diff --git a/x-pack/test/apm_api_integration/tests/settings/custom_link/custom_link.spec.ts b/x-pack/test/apm_api_integration/tests/settings/custom_link/custom_link.spec.ts
index 490a2fc768688..e6b565cde2b34 100644
--- a/x-pack/test/apm_api_integration/tests/settings/custom_link/custom_link.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/settings/custom_link/custom_link.spec.ts
@@ -91,79 +91,77 @@ export default function customLinksTests({ getService }: FtrProviderContext) {
});
});
- (['writeUser', 'apmReadPrivilegesWithWriteSettingsUser'] as ApmApiClientKey[]).forEach(
- (user) => {
- it(`creates a custom link as ${user}`, async () => {
- const customLink = {
- url: 'https://elastic.co',
- label: 'with filters',
- filters: [
- { key: 'service.name', value: 'baz' },
- { key: 'transaction.type', value: 'qux' },
- ],
- } as CustomLink;
+ (['apmReadPrivilegesWithWriteSettingsUser'] as ApmApiClientKey[]).forEach((user) => {
+ it(`creates a custom link as ${user}`, async () => {
+ const customLink = {
+ url: 'https://elastic.co',
+ label: 'with filters',
+ filters: [
+ { key: 'service.name', value: 'baz' },
+ { key: 'transaction.type', value: 'qux' },
+ ],
+ } as CustomLink;
+
+ await createCustomLink(customLink, { user });
+ });
- await createCustomLink(customLink, { user });
+ it(`updates a custom link as ${user}`, async () => {
+ const { status, body } = await searchCustomLinks({
+ 'service.name': 'baz',
+ 'transaction.type': 'qux',
});
+ expect(status).to.equal(200);
- it(`updates a custom link as ${user}`, async () => {
- const { status, body } = await searchCustomLinks({
- 'service.name': 'baz',
- 'transaction.type': 'qux',
- });
- expect(status).to.equal(200);
-
- const id = body.customLinks[0].id!;
- await updateCustomLink(
- id,
- {
- label: 'foo',
- url: 'https://elastic.co?service.name={{service.name}}',
- filters: [
- { key: 'service.name', value: 'quz' },
- { key: 'transaction.name', value: 'bar' },
- ],
- },
- { user }
- );
-
- const { status: newStatus, body: newBody } = await searchCustomLinks({
- 'service.name': 'quz',
- 'transaction.name': 'bar',
- });
-
- const { label, url, filters } = newBody.customLinks[0];
- expect(newStatus).to.equal(200);
- expect({ label, url, filters }).to.eql({
+ const id = body.customLinks[0].id!;
+ await updateCustomLink(
+ id,
+ {
label: 'foo',
url: 'https://elastic.co?service.name={{service.name}}',
filters: [
{ key: 'service.name', value: 'quz' },
{ key: 'transaction.name', value: 'bar' },
],
- });
+ },
+ { user }
+ );
+
+ const { status: newStatus, body: newBody } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
});
- it(`deletes a custom link as ${user}`, async () => {
- const { status, body } = await searchCustomLinks({
- 'service.name': 'quz',
- 'transaction.name': 'bar',
- });
- expect(status).to.equal(200);
- expect(body.customLinks.length).to.be(1);
-
- const id = body.customLinks[0].id!;
- await deleteCustomLink(id, { user });
-
- const { status: newStatus, body: newBody } = await searchCustomLinks({
- 'service.name': 'quz',
- 'transaction.name': 'bar',
- });
- expect(newStatus).to.equal(200);
- expect(newBody.customLinks.length).to.be(0);
+ const { label, url, filters } = newBody.customLinks[0];
+ expect(newStatus).to.equal(200);
+ expect({ label, url, filters }).to.eql({
+ label: 'foo',
+ url: 'https://elastic.co?service.name={{service.name}}',
+ filters: [
+ { key: 'service.name', value: 'quz' },
+ { key: 'transaction.name', value: 'bar' },
+ ],
});
- }
- );
+ });
+
+ it(`deletes a custom link as ${user}`, async () => {
+ const { status, body } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
+ });
+ expect(status).to.equal(200);
+ expect(body.customLinks.length).to.be(1);
+
+ const id = body.customLinks[0].id!;
+ await deleteCustomLink(id, { user });
+
+ const { status: newStatus, body: newBody } = await searchCustomLinks({
+ 'service.name': 'quz',
+ 'transaction.name': 'bar',
+ });
+ expect(newStatus).to.equal(200);
+ expect(newBody.customLinks.length).to.be(0);
+ });
+ });
it('fetches a transaction sample', async () => {
const response = await apmApiClient.readUser({
diff --git a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/top_transaction_groups.spec.snap b/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/top_transaction_groups.spec.snap
deleted file mode 100644
index e21c870c7eb52..0000000000000
--- a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/top_transaction_groups.spec.snap
+++ /dev/null
@@ -1,146 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`APM API tests basic apm_8.0.0 Top transaction groups when data is loaded returns the correct buckets (when ignoring samples) 1`] = `
-Array [
- Object {
- "averageResponseTime": 3279,
- "impact": 0,
- "key": "POST /api/orders",
- "p95": 3264,
- "serviceName": "opbeans-node",
- "transactionName": "POST /api/orders",
- "transactionType": "request",
- "transactionsPerMinute": 0.0333333333333333,
- },
- Object {
- "averageResponseTime": 2119,
- "impact": 0.030253201010799,
- "key": "GET /*",
- "p95": 2296,
- "serviceName": "opbeans-node",
- "transactionName": "GET /*",
- "transactionType": "request",
- "transactionsPerMinute": 0.1,
- },
- Object {
- "averageResponseTime": 5167,
- "impact": 0.0693425383792029,
- "key": "GET /api/products/:id",
- "p95": 6144,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/products/:id",
- "transactionType": "request",
- "transactionsPerMinute": 0.0666666666666667,
- },
- Object {
- "averageResponseTime": 5551,
- "impact": 0.349690833515986,
- "key": "GET /api/orders/:id",
- "p95": 11696,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/orders/:id",
- "transactionType": "request",
- "transactionsPerMinute": 0.233333333333333,
- },
- Object {
- "averageResponseTime": 9607,
- "impact": 0.723177313441051,
- "key": "GET /api/types",
- "p95": 18672,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/types",
- "transactionType": "request",
- "transactionsPerMinute": 0.266666666666667,
- },
- Object {
- "averageResponseTime": 8669.22222222222,
- "impact": 0.734647581660545,
- "key": "GET /api/products/:id/customers",
- "p95": 15920,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/products/:id/customers",
- "transactionType": "request",
- "transactionsPerMinute": 0.3,
- },
- Object {
- "averageResponseTime": 7571,
- "impact": 0.860741901273131,
- "key": "GET /api/types/:id",
- "p95": 13552,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/types/:id",
- "transactionType": "request",
- "transactionsPerMinute": 0.4,
- },
- Object {
- "averageResponseTime": 8753.90909090909,
- "impact": 0.914220675379615,
- "key": "GET /api/customers/:id",
- "p95": 11248,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/customers/:id",
- "transactionType": "request",
- "transactionsPerMinute": 0.366666666666667,
- },
- Object {
- "averageResponseTime": 7807,
- "impact": 1.04204487263284,
- "key": "GET /api/products/top",
- "p95": 14000,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/products/top",
- "transactionType": "request",
- "transactionsPerMinute": 0.466666666666667,
- },
- Object {
- "averageResponseTime": 11913.6666666667,
- "impact": 1.37294294450729,
- "key": "GET /api/orders",
- "p95": 15008,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/orders",
- "transactionType": "request",
- "transactionsPerMinute": 0.4,
- },
- Object {
- "averageResponseTime": 9062.52941176471,
- "impact": 1.48203335322037,
- "key": "GET /api/products",
- "p95": 15728,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/products",
- "transactionType": "request",
- "transactionsPerMinute": 0.566666666666667,
- },
- Object {
- "averageResponseTime": 19858.2,
- "impact": 1.91960393665109,
- "key": "GET /api/stats",
- "p95": 33984,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/stats",
- "transactionType": "request",
- "transactionsPerMinute": 0.333333333333333,
- },
- Object {
- "averageResponseTime": 22276.8181818182,
- "impact": 2.37628180493074,
- "key": "GET /api/customers",
- "p95": 26304,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api/customers",
- "transactionType": "request",
- "transactionsPerMinute": 0.366666666666667,
- },
- Object {
- "averageResponseTime": 107130.621052632,
- "impact": 100,
- "key": "GET /api",
- "p95": 151520,
- "serviceName": "opbeans-node",
- "transactionName": "GET /api",
- "transactionType": "request",
- "transactionsPerMinute": 3.16666666666667,
- },
-]
-`;
diff --git a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transaction_charts.spec.snap b/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transaction_charts.spec.snap
deleted file mode 100644
index 4b3f2293498cc..0000000000000
--- a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transaction_charts.spec.snap
+++ /dev/null
@@ -1,1751 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Transaction charts when data is loaded returns the correct data 4`] = `
-Object {
- "apmTimeseries": Object {
- "overallAvgDuration": 563605.417040359,
- "responseTimes": Object {
- "avg": Array [
- Object {
- "x": 1607435850000,
- "y": null,
- },
- Object {
- "x": 1607435880000,
- "y": 233725.666666667,
- },
- Object {
- "x": 1607435910000,
- "y": 761099.333333333,
- },
- Object {
- "x": 1607435940000,
- "y": 444231.666666667,
- },
- Object {
- "x": 1607435970000,
- "y": 999194.666666667,
- },
- Object {
- "x": 1607436000000,
- "y": 558128.666666667,
- },
- Object {
- "x": 1607436030000,
- "y": 842340,
- },
- Object {
- "x": 1607436060000,
- "y": 1070088,
- },
- Object {
- "x": 1607436090000,
- "y": 1289537.66666667,
- },
- Object {
- "x": 1607436120000,
- "y": 320373,
- },
- Object {
- "x": 1607436150000,
- "y": 412243.857142857,
- },
- Object {
- "x": 1607436180000,
- "y": 604852,
- },
- Object {
- "x": 1607436210000,
- "y": 1293499,
- },
- Object {
- "x": 1607436240000,
- "y": 272394.571428571,
- },
- Object {
- "x": 1607436270000,
- "y": 930978.4,
- },
- Object {
- "x": 1607436300000,
- "y": 906360,
- },
- Object {
- "x": 1607436330000,
- "y": 232498.25,
- },
- Object {
- "x": 1607436360000,
- "y": 201226.333333333,
- },
- Object {
- "x": 1607436390000,
- "y": 621694.833333333,
- },
- Object {
- "x": 1607436420000,
- "y": 1935481,
- },
- Object {
- "x": 1607436450000,
- "y": 1157048,
- },
- Object {
- "x": 1607436480000,
- "y": 717248.333333333,
- },
- Object {
- "x": 1607436510000,
- "y": 660264.833333333,
- },
- Object {
- "x": 1607436540000,
- "y": 1305048,
- },
- Object {
- "x": 1607436570000,
- "y": 715224,
- },
- Object {
- "x": 1607436600000,
- "y": 144978.5,
- },
- Object {
- "x": 1607436630000,
- "y": 102661,
- },
- Object {
- "x": 1607436660000,
- "y": 810296.5,
- },
- Object {
- "x": 1607436690000,
- "y": 938002.25,
- },
- Object {
- "x": 1607436720000,
- "y": 63220,
- },
- Object {
- "x": 1607436750000,
- "y": 737306.2,
- },
- Object {
- "x": 1607436780000,
- "y": 963865.75,
- },
- Object {
- "x": 1607436810000,
- "y": 38124,
- },
- Object {
- "x": 1607436840000,
- "y": 860345.6,
- },
- Object {
- "x": 1607436870000,
- "y": null,
- },
- Object {
- "x": 1607436900000,
- "y": 742157,
- },
- Object {
- "x": 1607436930000,
- "y": 584849,
- },
- Object {
- "x": 1607436960000,
- "y": 165453.2,
- },
- Object {
- "x": 1607436990000,
- "y": 334794,
- },
- Object {
- "x": 1607437020000,
- "y": 1397727.5,
- },
- Object {
- "x": 1607437050000,
- "y": 1104933,
- },
- Object {
- "x": 1607437080000,
- "y": 755694.571428571,
- },
- Object {
- "x": 1607437110000,
- "y": 252777.25,
- },
- Object {
- "x": 1607437140000,
- "y": 708401.333333333,
- },
- Object {
- "x": 1607437170000,
- "y": 1153244,
- },
- Object {
- "x": 1607437200000,
- "y": 730186.25,
- },
- Object {
- "x": 1607437230000,
- "y": 270504.222222222,
- },
- Object {
- "x": 1607437260000,
- "y": 938813.333333333,
- },
- Object {
- "x": 1607437290000,
- "y": 171339,
- },
- Object {
- "x": 1607437320000,
- "y": 345618.2,
- },
- Object {
- "x": 1607437350000,
- "y": 1100982.25,
- },
- Object {
- "x": 1607437380000,
- "y": 724415,
- },
- Object {
- "x": 1607437410000,
- "y": 1273571.5,
- },
- Object {
- "x": 1607437440000,
- "y": 329748,
- },
- Object {
- "x": 1607437470000,
- "y": 231693.538461538,
- },
- Object {
- "x": 1607437500000,
- "y": 620042,
- },
- Object {
- "x": 1607437530000,
- "y": null,
- },
- Object {
- "x": 1607437560000,
- "y": 640575.666666667,
- },
- Object {
- "x": 1607437590000,
- "y": 177960.714285714,
- },
- Object {
- "x": 1607437620000,
- "y": 1142976,
- },
- Object {
- "x": 1607437650000,
- "y": 530845.5,
- },
- ],
- "p95": Array [
- Object {
- "x": 1607435850000,
- "y": null,
- },
- Object {
- "x": 1607435880000,
- "y": 1032160,
- },
- Object {
- "x": 1607435910000,
- "y": 1400704,
- },
- Object {
- "x": 1607435940000,
- "y": 831360,
- },
- Object {
- "x": 1607435970000,
- "y": 1118208,
- },
- Object {
- "x": 1607436000000,
- "y": 921472,
- },
- Object {
- "x": 1607436030000,
- "y": 995328,
- },
- Object {
- "x": 1607436060000,
- "y": 1064960,
- },
- Object {
- "x": 1607436090000,
- "y": 1560576,
- },
- Object {
- "x": 1607436120000,
- "y": 610176,
- },
- Object {
- "x": 1607436150000,
- "y": 1490912,
- },
- Object {
- "x": 1607436180000,
- "y": 614400,
- },
- Object {
- "x": 1607436210000,
- "y": 1286144,
- },
- Object {
- "x": 1607436240000,
- "y": 1114096,
- },
- Object {
- "x": 1607436270000,
- "y": 1843072,
- },
- Object {
- "x": 1607436300000,
- "y": 1118208,
- },
- Object {
- "x": 1607436330000,
- "y": 481152,
- },
- Object {
- "x": 1607436360000,
- "y": 548848,
- },
- Object {
- "x": 1607436390000,
- "y": 1695680,
- },
- Object {
- "x": 1607436420000,
- "y": 1933312,
- },
- Object {
- "x": 1607436450000,
- "y": 1429504,
- },
- Object {
- "x": 1607436480000,
- "y": 1081216,
- },
- Object {
- "x": 1607436510000,
- "y": 1572832,
- },
- Object {
- "x": 1607436540000,
- "y": 1751040,
- },
- Object {
- "x": 1607436570000,
- "y": 1087488,
- },
- Object {
- "x": 1607436600000,
- "y": 1294320,
- },
- Object {
- "x": 1607436630000,
- "y": 198528,
- },
- Object {
- "x": 1607436660000,
- "y": 880640,
- },
- Object {
- "x": 1607436690000,
- "y": 1257472,
- },
- Object {
- "x": 1607436720000,
- "y": 180192,
- },
- Object {
- "x": 1607436750000,
- "y": 1179520,
- },
- Object {
- "x": 1607436780000,
- "y": 1556224,
- },
- Object {
- "x": 1607436810000,
- "y": 37888,
- },
- Object {
- "x": 1607436840000,
- "y": 1261504,
- },
- Object {
- "x": 1607436870000,
- "y": null,
- },
- Object {
- "x": 1607436900000,
- "y": 1087488,
- },
- Object {
- "x": 1607436930000,
- "y": 581632,
- },
- Object {
- "x": 1607436960000,
- "y": 294784,
- },
- Object {
- "x": 1607436990000,
- "y": 1245152,
- },
- Object {
- "x": 1607437020000,
- "y": 1654784,
- },
- Object {
- "x": 1607437050000,
- "y": 1097728,
- },
- Object {
- "x": 1607437080000,
- "y": 1433584,
- },
- Object {
- "x": 1607437110000,
- "y": 925568,
- },
- Object {
- "x": 1607437140000,
- "y": 919552,
- },
- Object {
- "x": 1607437170000,
- "y": 1146880,
- },
- Object {
- "x": 1607437200000,
- "y": 1507072,
- },
- Object {
- "x": 1607437230000,
- "y": 1318880,
- },
- Object {
- "x": 1607437260000,
- "y": 1867712,
- },
- Object {
- "x": 1607437290000,
- "y": 210944,
- },
- Object {
- "x": 1607437320000,
- "y": 1449952,
- },
- Object {
- "x": 1607437350000,
- "y": 1462272,
- },
- Object {
- "x": 1607437380000,
- "y": 724992,
- },
- Object {
- "x": 1607437410000,
- "y": 1335296,
- },
- Object {
- "x": 1607437440000,
- "y": 329728,
- },
- Object {
- "x": 1607437470000,
- "y": 1409008,
- },
- Object {
- "x": 1607437500000,
- "y": 763904,
- },
- Object {
- "x": 1607437530000,
- "y": null,
- },
- Object {
- "x": 1607437560000,
- "y": 1474528,
- },
- Object {
- "x": 1607437590000,
- "y": 598000,
- },
- Object {
- "x": 1607437620000,
- "y": 1138688,
- },
- Object {
- "x": 1607437650000,
- "y": 822272,
- },
- ],
- "p99": Array [
- Object {
- "x": 1607435850000,
- "y": null,
- },
- Object {
- "x": 1607435880000,
- "y": 1032160,
- },
- Object {
- "x": 1607435910000,
- "y": 1400704,
- },
- Object {
- "x": 1607435940000,
- "y": 831360,
- },
- Object {
- "x": 1607435970000,
- "y": 1118208,
- },
- Object {
- "x": 1607436000000,
- "y": 921472,
- },
- Object {
- "x": 1607436030000,
- "y": 995328,
- },
- Object {
- "x": 1607436060000,
- "y": 1064960,
- },
- Object {
- "x": 1607436090000,
- "y": 1560576,
- },
- Object {
- "x": 1607436120000,
- "y": 610176,
- },
- Object {
- "x": 1607436150000,
- "y": 1490912,
- },
- Object {
- "x": 1607436180000,
- "y": 614400,
- },
- Object {
- "x": 1607436210000,
- "y": 1286144,
- },
- Object {
- "x": 1607436240000,
- "y": 1114096,
- },
- Object {
- "x": 1607436270000,
- "y": 1843072,
- },
- Object {
- "x": 1607436300000,
- "y": 1118208,
- },
- Object {
- "x": 1607436330000,
- "y": 481152,
- },
- Object {
- "x": 1607436360000,
- "y": 548848,
- },
- Object {
- "x": 1607436390000,
- "y": 1695680,
- },
- Object {
- "x": 1607436420000,
- "y": 1933312,
- },
- Object {
- "x": 1607436450000,
- "y": 1429504,
- },
- Object {
- "x": 1607436480000,
- "y": 1081216,
- },
- Object {
- "x": 1607436510000,
- "y": 1572832,
- },
- Object {
- "x": 1607436540000,
- "y": 1751040,
- },
- Object {
- "x": 1607436570000,
- "y": 1087488,
- },
- Object {
- "x": 1607436600000,
- "y": 1294320,
- },
- Object {
- "x": 1607436630000,
- "y": 198528,
- },
- Object {
- "x": 1607436660000,
- "y": 880640,
- },
- Object {
- "x": 1607436690000,
- "y": 1257472,
- },
- Object {
- "x": 1607436720000,
- "y": 180192,
- },
- Object {
- "x": 1607436750000,
- "y": 1179520,
- },
- Object {
- "x": 1607436780000,
- "y": 1556224,
- },
- Object {
- "x": 1607436810000,
- "y": 37888,
- },
- Object {
- "x": 1607436840000,
- "y": 1261504,
- },
- Object {
- "x": 1607436870000,
- "y": null,
- },
- Object {
- "x": 1607436900000,
- "y": 1087488,
- },
- Object {
- "x": 1607436930000,
- "y": 581632,
- },
- Object {
- "x": 1607436960000,
- "y": 294784,
- },
- Object {
- "x": 1607436990000,
- "y": 1245152,
- },
- Object {
- "x": 1607437020000,
- "y": 1654784,
- },
- Object {
- "x": 1607437050000,
- "y": 1097728,
- },
- Object {
- "x": 1607437080000,
- "y": 1433584,
- },
- Object {
- "x": 1607437110000,
- "y": 925568,
- },
- Object {
- "x": 1607437140000,
- "y": 919552,
- },
- Object {
- "x": 1607437170000,
- "y": 1146880,
- },
- Object {
- "x": 1607437200000,
- "y": 1507072,
- },
- Object {
- "x": 1607437230000,
- "y": 1318880,
- },
- Object {
- "x": 1607437260000,
- "y": 1867712,
- },
- Object {
- "x": 1607437290000,
- "y": 210944,
- },
- Object {
- "x": 1607437320000,
- "y": 1449952,
- },
- Object {
- "x": 1607437350000,
- "y": 1462272,
- },
- Object {
- "x": 1607437380000,
- "y": 724992,
- },
- Object {
- "x": 1607437410000,
- "y": 1335296,
- },
- Object {
- "x": 1607437440000,
- "y": 329728,
- },
- Object {
- "x": 1607437470000,
- "y": 1466352,
- },
- Object {
- "x": 1607437500000,
- "y": 763904,
- },
- Object {
- "x": 1607437530000,
- "y": null,
- },
- Object {
- "x": 1607437560000,
- "y": 1474528,
- },
- Object {
- "x": 1607437590000,
- "y": 598000,
- },
- Object {
- "x": 1607437620000,
- "y": 1138688,
- },
- Object {
- "x": 1607437650000,
- "y": 822272,
- },
- ],
- },
- "tpmBuckets": Array [
- Object {
- "avg": 3,
- "dataPoints": Array [
- Object {
- "x": 1607435850000,
- "y": 0,
- },
- Object {
- "x": 1607435880000,
- "y": 8,
- },
- Object {
- "x": 1607435910000,
- "y": 4,
- },
- Object {
- "x": 1607435940000,
- "y": 2,
- },
- Object {
- "x": 1607435970000,
- "y": 0,
- },
- Object {
- "x": 1607436000000,
- "y": 2,
- },
- Object {
- "x": 1607436030000,
- "y": 0,
- },
- Object {
- "x": 1607436060000,
- "y": 0,
- },
- Object {
- "x": 1607436090000,
- "y": 0,
- },
- Object {
- "x": 1607436120000,
- "y": 2,
- },
- Object {
- "x": 1607436150000,
- "y": 10,
- },
- Object {
- "x": 1607436180000,
- "y": 0,
- },
- Object {
- "x": 1607436210000,
- "y": 0,
- },
- Object {
- "x": 1607436240000,
- "y": 10,
- },
- Object {
- "x": 1607436270000,
- "y": 2,
- },
- Object {
- "x": 1607436300000,
- "y": 0,
- },
- Object {
- "x": 1607436330000,
- "y": 4,
- },
- Object {
- "x": 1607436360000,
- "y": 4,
- },
- Object {
- "x": 1607436390000,
- "y": 6,
- },
- Object {
- "x": 1607436420000,
- "y": 0,
- },
- Object {
- "x": 1607436450000,
- "y": 0,
- },
- Object {
- "x": 1607436480000,
- "y": 2,
- },
- Object {
- "x": 1607436510000,
- "y": 6,
- },
- Object {
- "x": 1607436540000,
- "y": 0,
- },
- Object {
- "x": 1607436570000,
- "y": 0,
- },
- Object {
- "x": 1607436600000,
- "y": 14,
- },
- Object {
- "x": 1607436630000,
- "y": 8,
- },
- Object {
- "x": 1607436660000,
- "y": 0,
- },
- Object {
- "x": 1607436690000,
- "y": 0,
- },
- Object {
- "x": 1607436720000,
- "y": 8,
- },
- Object {
- "x": 1607436750000,
- "y": 2,
- },
- Object {
- "x": 1607436780000,
- "y": 2,
- },
- Object {
- "x": 1607436810000,
- "y": 2,
- },
- Object {
- "x": 1607436840000,
- "y": 2,
- },
- Object {
- "x": 1607436870000,
- "y": 0,
- },
- Object {
- "x": 1607436900000,
- "y": 0,
- },
- Object {
- "x": 1607436930000,
- "y": 0,
- },
- Object {
- "x": 1607436960000,
- "y": 4,
- },
- Object {
- "x": 1607436990000,
- "y": 8,
- },
- Object {
- "x": 1607437020000,
- "y": 0,
- },
- Object {
- "x": 1607437050000,
- "y": 0,
- },
- Object {
- "x": 1607437080000,
- "y": 6,
- },
- Object {
- "x": 1607437110000,
- "y": 6,
- },
- Object {
- "x": 1607437140000,
- "y": 0,
- },
- Object {
- "x": 1607437170000,
- "y": 0,
- },
- Object {
- "x": 1607437200000,
- "y": 2,
- },
- Object {
- "x": 1607437230000,
- "y": 14,
- },
- Object {
- "x": 1607437260000,
- "y": 2,
- },
- Object {
- "x": 1607437290000,
- "y": 0,
- },
- Object {
- "x": 1607437320000,
- "y": 4,
- },
- Object {
- "x": 1607437350000,
- "y": 0,
- },
- Object {
- "x": 1607437380000,
- "y": 0,
- },
- Object {
- "x": 1607437410000,
- "y": 0,
- },
- Object {
- "x": 1607437440000,
- "y": 0,
- },
- Object {
- "x": 1607437470000,
- "y": 22,
- },
- Object {
- "x": 1607437500000,
- "y": 0,
- },
- Object {
- "x": 1607437530000,
- "y": 0,
- },
- Object {
- "x": 1607437560000,
- "y": 6,
- },
- Object {
- "x": 1607437590000,
- "y": 6,
- },
- Object {
- "x": 1607437620000,
- "y": 0,
- },
- Object {
- "x": 1607437650000,
- "y": 0,
- },
- ],
- "key": "HTTP 2xx",
- },
- Object {
- "avg": 0.1,
- "dataPoints": Array [
- Object {
- "x": 1607435850000,
- "y": 0,
- },
- Object {
- "x": 1607435880000,
- "y": 0,
- },
- Object {
- "x": 1607435910000,
- "y": 0,
- },
- Object {
- "x": 1607435940000,
- "y": 0,
- },
- Object {
- "x": 1607435970000,
- "y": 0,
- },
- Object {
- "x": 1607436000000,
- "y": 0,
- },
- Object {
- "x": 1607436030000,
- "y": 0,
- },
- Object {
- "x": 1607436060000,
- "y": 0,
- },
- Object {
- "x": 1607436090000,
- "y": 0,
- },
- Object {
- "x": 1607436120000,
- "y": 0,
- },
- Object {
- "x": 1607436150000,
- "y": 0,
- },
- Object {
- "x": 1607436180000,
- "y": 0,
- },
- Object {
- "x": 1607436210000,
- "y": 0,
- },
- Object {
- "x": 1607436240000,
- "y": 0,
- },
- Object {
- "x": 1607436270000,
- "y": 0,
- },
- Object {
- "x": 1607436300000,
- "y": 0,
- },
- Object {
- "x": 1607436330000,
- "y": 0,
- },
- Object {
- "x": 1607436360000,
- "y": 0,
- },
- Object {
- "x": 1607436390000,
- "y": 0,
- },
- Object {
- "x": 1607436420000,
- "y": 0,
- },
- Object {
- "x": 1607436450000,
- "y": 0,
- },
- Object {
- "x": 1607436480000,
- "y": 0,
- },
- Object {
- "x": 1607436510000,
- "y": 0,
- },
- Object {
- "x": 1607436540000,
- "y": 0,
- },
- Object {
- "x": 1607436570000,
- "y": 0,
- },
- Object {
- "x": 1607436600000,
- "y": 0,
- },
- Object {
- "x": 1607436630000,
- "y": 0,
- },
- Object {
- "x": 1607436660000,
- "y": 0,
- },
- Object {
- "x": 1607436690000,
- "y": 0,
- },
- Object {
- "x": 1607436720000,
- "y": 0,
- },
- Object {
- "x": 1607436750000,
- "y": 0,
- },
- Object {
- "x": 1607436780000,
- "y": 0,
- },
- Object {
- "x": 1607436810000,
- "y": 0,
- },
- Object {
- "x": 1607436840000,
- "y": 0,
- },
- Object {
- "x": 1607436870000,
- "y": 0,
- },
- Object {
- "x": 1607436900000,
- "y": 0,
- },
- Object {
- "x": 1607436930000,
- "y": 0,
- },
- Object {
- "x": 1607436960000,
- "y": 0,
- },
- Object {
- "x": 1607436990000,
- "y": 0,
- },
- Object {
- "x": 1607437020000,
- "y": 0,
- },
- Object {
- "x": 1607437050000,
- "y": 0,
- },
- Object {
- "x": 1607437080000,
- "y": 0,
- },
- Object {
- "x": 1607437110000,
- "y": 0,
- },
- Object {
- "x": 1607437140000,
- "y": 0,
- },
- Object {
- "x": 1607437170000,
- "y": 0,
- },
- Object {
- "x": 1607437200000,
- "y": 0,
- },
- Object {
- "x": 1607437230000,
- "y": 0,
- },
- Object {
- "x": 1607437260000,
- "y": 0,
- },
- Object {
- "x": 1607437290000,
- "y": 0,
- },
- Object {
- "x": 1607437320000,
- "y": 2,
- },
- Object {
- "x": 1607437350000,
- "y": 0,
- },
- Object {
- "x": 1607437380000,
- "y": 0,
- },
- Object {
- "x": 1607437410000,
- "y": 0,
- },
- Object {
- "x": 1607437440000,
- "y": 0,
- },
- Object {
- "x": 1607437470000,
- "y": 0,
- },
- Object {
- "x": 1607437500000,
- "y": 0,
- },
- Object {
- "x": 1607437530000,
- "y": 0,
- },
- Object {
- "x": 1607437560000,
- "y": 0,
- },
- Object {
- "x": 1607437590000,
- "y": 4,
- },
- Object {
- "x": 1607437620000,
- "y": 0,
- },
- Object {
- "x": 1607437650000,
- "y": 0,
- },
- ],
- "key": "HTTP 4xx",
- },
- Object {
- "avg": 0.0666666666666667,
- "dataPoints": Array [
- Object {
- "x": 1607435850000,
- "y": 0,
- },
- Object {
- "x": 1607435880000,
- "y": 0,
- },
- Object {
- "x": 1607435910000,
- "y": 0,
- },
- Object {
- "x": 1607435940000,
- "y": 0,
- },
- Object {
- "x": 1607435970000,
- "y": 0,
- },
- Object {
- "x": 1607436000000,
- "y": 0,
- },
- Object {
- "x": 1607436030000,
- "y": 0,
- },
- Object {
- "x": 1607436060000,
- "y": 0,
- },
- Object {
- "x": 1607436090000,
- "y": 0,
- },
- Object {
- "x": 1607436120000,
- "y": 0,
- },
- Object {
- "x": 1607436150000,
- "y": 0,
- },
- Object {
- "x": 1607436180000,
- "y": 0,
- },
- Object {
- "x": 1607436210000,
- "y": 0,
- },
- Object {
- "x": 1607436240000,
- "y": 0,
- },
- Object {
- "x": 1607436270000,
- "y": 0,
- },
- Object {
- "x": 1607436300000,
- "y": 0,
- },
- Object {
- "x": 1607436330000,
- "y": 0,
- },
- Object {
- "x": 1607436360000,
- "y": 0,
- },
- Object {
- "x": 1607436390000,
- "y": 0,
- },
- Object {
- "x": 1607436420000,
- "y": 0,
- },
- Object {
- "x": 1607436450000,
- "y": 0,
- },
- Object {
- "x": 1607436480000,
- "y": 0,
- },
- Object {
- "x": 1607436510000,
- "y": 0,
- },
- Object {
- "x": 1607436540000,
- "y": 0,
- },
- Object {
- "x": 1607436570000,
- "y": 0,
- },
- Object {
- "x": 1607436600000,
- "y": 4,
- },
- Object {
- "x": 1607436630000,
- "y": 0,
- },
- Object {
- "x": 1607436660000,
- "y": 0,
- },
- Object {
- "x": 1607436690000,
- "y": 0,
- },
- Object {
- "x": 1607436720000,
- "y": 0,
- },
- Object {
- "x": 1607436750000,
- "y": 0,
- },
- Object {
- "x": 1607436780000,
- "y": 0,
- },
- Object {
- "x": 1607436810000,
- "y": 0,
- },
- Object {
- "x": 1607436840000,
- "y": 0,
- },
- Object {
- "x": 1607436870000,
- "y": 0,
- },
- Object {
- "x": 1607436900000,
- "y": 0,
- },
- Object {
- "x": 1607436930000,
- "y": 0,
- },
- Object {
- "x": 1607436960000,
- "y": 0,
- },
- Object {
- "x": 1607436990000,
- "y": 0,
- },
- Object {
- "x": 1607437020000,
- "y": 0,
- },
- Object {
- "x": 1607437050000,
- "y": 0,
- },
- Object {
- "x": 1607437080000,
- "y": 0,
- },
- Object {
- "x": 1607437110000,
- "y": 0,
- },
- Object {
- "x": 1607437140000,
- "y": 0,
- },
- Object {
- "x": 1607437170000,
- "y": 0,
- },
- Object {
- "x": 1607437200000,
- "y": 0,
- },
- Object {
- "x": 1607437230000,
- "y": 0,
- },
- Object {
- "x": 1607437260000,
- "y": 0,
- },
- Object {
- "x": 1607437290000,
- "y": 0,
- },
- Object {
- "x": 1607437320000,
- "y": 0,
- },
- Object {
- "x": 1607437350000,
- "y": 0,
- },
- Object {
- "x": 1607437380000,
- "y": 0,
- },
- Object {
- "x": 1607437410000,
- "y": 0,
- },
- Object {
- "x": 1607437440000,
- "y": 0,
- },
- Object {
- "x": 1607437470000,
- "y": 0,
- },
- Object {
- "x": 1607437500000,
- "y": 0,
- },
- Object {
- "x": 1607437530000,
- "y": 0,
- },
- Object {
- "x": 1607437560000,
- "y": 0,
- },
- Object {
- "x": 1607437590000,
- "y": 0,
- },
- Object {
- "x": 1607437620000,
- "y": 0,
- },
- Object {
- "x": 1607437650000,
- "y": 0,
- },
- ],
- "key": "HTTP 5xx",
- },
- Object {
- "avg": 4.26666666666667,
- "dataPoints": Array [
- Object {
- "x": 1607435850000,
- "y": 0,
- },
- Object {
- "x": 1607435880000,
- "y": 4,
- },
- Object {
- "x": 1607435910000,
- "y": 8,
- },
- Object {
- "x": 1607435940000,
- "y": 4,
- },
- Object {
- "x": 1607435970000,
- "y": 6,
- },
- Object {
- "x": 1607436000000,
- "y": 4,
- },
- Object {
- "x": 1607436030000,
- "y": 4,
- },
- Object {
- "x": 1607436060000,
- "y": 2,
- },
- Object {
- "x": 1607436090000,
- "y": 6,
- },
- Object {
- "x": 1607436120000,
- "y": 2,
- },
- Object {
- "x": 1607436150000,
- "y": 4,
- },
- Object {
- "x": 1607436180000,
- "y": 4,
- },
- Object {
- "x": 1607436210000,
- "y": 2,
- },
- Object {
- "x": 1607436240000,
- "y": 4,
- },
- Object {
- "x": 1607436270000,
- "y": 8,
- },
- Object {
- "x": 1607436300000,
- "y": 4,
- },
- Object {
- "x": 1607436330000,
- "y": 4,
- },
- Object {
- "x": 1607436360000,
- "y": 2,
- },
- Object {
- "x": 1607436390000,
- "y": 6,
- },
- Object {
- "x": 1607436420000,
- "y": 2,
- },
- Object {
- "x": 1607436450000,
- "y": 6,
- },
- Object {
- "x": 1607436480000,
- "y": 4,
- },
- Object {
- "x": 1607436510000,
- "y": 6,
- },
- Object {
- "x": 1607436540000,
- "y": 6,
- },
- Object {
- "x": 1607436570000,
- "y": 6,
- },
- Object {
- "x": 1607436600000,
- "y": 2,
- },
- Object {
- "x": 1607436630000,
- "y": 4,
- },
- Object {
- "x": 1607436660000,
- "y": 4,
- },
- Object {
- "x": 1607436690000,
- "y": 8,
- },
- Object {
- "x": 1607436720000,
- "y": 0,
- },
- Object {
- "x": 1607436750000,
- "y": 8,
- },
- Object {
- "x": 1607436780000,
- "y": 6,
- },
- Object {
- "x": 1607436810000,
- "y": 0,
- },
- Object {
- "x": 1607436840000,
- "y": 8,
- },
- Object {
- "x": 1607436870000,
- "y": 0,
- },
- Object {
- "x": 1607436900000,
- "y": 6,
- },
- Object {
- "x": 1607436930000,
- "y": 2,
- },
- Object {
- "x": 1607436960000,
- "y": 6,
- },
- Object {
- "x": 1607436990000,
- "y": 4,
- },
- Object {
- "x": 1607437020000,
- "y": 4,
- },
- Object {
- "x": 1607437050000,
- "y": 2,
- },
- Object {
- "x": 1607437080000,
- "y": 8,
- },
- Object {
- "x": 1607437110000,
- "y": 2,
- },
- Object {
- "x": 1607437140000,
- "y": 6,
- },
- Object {
- "x": 1607437170000,
- "y": 2,
- },
- Object {
- "x": 1607437200000,
- "y": 6,
- },
- Object {
- "x": 1607437230000,
- "y": 4,
- },
- Object {
- "x": 1607437260000,
- "y": 4,
- },
- Object {
- "x": 1607437290000,
- "y": 4,
- },
- Object {
- "x": 1607437320000,
- "y": 4,
- },
- Object {
- "x": 1607437350000,
- "y": 8,
- },
- Object {
- "x": 1607437380000,
- "y": 4,
- },
- Object {
- "x": 1607437410000,
- "y": 4,
- },
- Object {
- "x": 1607437440000,
- "y": 2,
- },
- Object {
- "x": 1607437470000,
- "y": 4,
- },
- Object {
- "x": 1607437500000,
- "y": 6,
- },
- Object {
- "x": 1607437530000,
- "y": 0,
- },
- Object {
- "x": 1607437560000,
- "y": 6,
- },
- Object {
- "x": 1607437590000,
- "y": 4,
- },
- Object {
- "x": 1607437620000,
- "y": 2,
- },
- Object {
- "x": 1607437650000,
- "y": 4,
- },
- ],
- "key": "success",
- },
- ],
- },
-}
-`;
diff --git a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transactions_charts.spec.snap b/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transactions_charts.spec.snap
deleted file mode 100644
index 2f78b03adbf4c..0000000000000
--- a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/transactions_charts.spec.snap
+++ /dev/null
@@ -1,61 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`APM Transaction Overview when data is loaded and fetching transaction charts with uiFilters when not defined environments selected should return the correct anomaly boundaries 1`] = `
-Array [
- Object {
- "x": 1607436000000,
- "y": 0,
- "y0": 0,
- },
- Object {
- "x": 1607436900000,
- "y": 0,
- "y0": 0,
- },
- Object {
- "x": 1607437650000,
- "y": 0,
- "y0": 0,
- },
-]
-`;
-
-exports[`APM Transaction Overview when data is loaded and fetching transaction charts with uiFilters with environment selected and empty kuery filter should return a non-empty anomaly series 1`] = `
-Array [
- Object {
- "x": 1607436000000,
- "y": 1625128.56211579,
- "y0": 7533.02707532227,
- },
- Object {
- "x": 1607436900000,
- "y": 1660982.24115757,
- "y0": 5732.00699123528,
- },
- Object {
- "x": 1607437650000,
- "y": 1660982.24115757,
- "y0": 5732.00699123528,
- },
-]
-`;
-
-exports[`APM Transaction Overview when data is loaded and fetching transaction charts with uiFilters with environment selected in uiFilters should return a non-empty anomaly series 1`] = `
-Array [
- Object {
- "x": 1607436000000,
- "y": 1625128.56211579,
- "y0": 7533.02707532227,
- },
- Object {
- "x": 1607436900000,
- "y": 1660982.24115757,
- "y0": 5732.00699123528,
- },
- Object {
- "x": 1607437650000,
- "y": 1660982.24115757,
- "y0": 5732.00699123528,
- },
-]
-`;
diff --git a/x-pack/test/apm_api_integration/tests/transactions/breakdown.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/breakdown.spec.ts
index 6b7848262c69f..d7cd6d5b87779 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/breakdown.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/transactions/breakdown.spec.ts
@@ -18,27 +18,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
const transactionType = 'request';
const transactionName = 'GET /api';
- registry.when('Breakdown when data is not loaded', { config: 'basic', archives: [] }, () => {
- it('handles the empty state', async () => {
- const response = await apmApiClient.readUser({
- endpoint: 'GET /internal/apm/services/{serviceName}/transaction/charts/breakdown',
- params: {
- path: { serviceName: 'opbeans-node' },
- query: {
- start,
- end,
- transactionType,
- environment: 'ENVIRONMENT_ALL',
- kuery: '',
- },
- },
- });
-
- expect(response.status).to.be(200);
- expect(response.body).to.eql({ timeseries: [] });
- });
- });
-
registry.when(
'Breakdown when data is loaded',
{ config: 'basic', archives: [archiveName] },
diff --git a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts
deleted file mode 100644
index 724390fdfa61f..0000000000000
--- a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-import { apm, timerange } from '@kbn/apm-synthtrace-client';
-import expect from '@kbn/expect';
-import { buildQueryFromFilters } from '@kbn/es-query';
-import { first, last } from 'lodash';
-import moment from 'moment';
-import {
- APIClientRequestParamsOf,
- APIReturnType,
-} from '@kbn/apm-plugin/public/services/rest/create_call_apm_api';
-import { RecursivePartial } from '@kbn/apm-plugin/typings/common';
-import { ApmDocumentType } from '@kbn/apm-plugin/common/document_type';
-import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
-import { FtrProviderContext } from '../../common/ftr_provider_context';
-
-type ErrorRate =
- APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/charts/error_rate'>;
-
-export default function ApiTest({ getService }: FtrProviderContext) {
- const registry = getService('registry');
- const apmApiClient = getService('apmApiClient');
- const apmSynthtraceEsClient = getService('apmSynthtraceEsClient');
-
- // url parameters
- const start = new Date('2021-01-01T00:00:00.000Z').getTime();
- const end = new Date('2021-01-01T00:15:00.000Z').getTime() - 1;
-
- async function fetchErrorCharts(
- overrides?: RecursivePartial<
- APIClientRequestParamsOf<'GET /internal/apm/services/{serviceName}/transactions/charts/error_rate'>['params']
- >
- ) {
- return await apmApiClient.readUser({
- endpoint: `GET /internal/apm/services/{serviceName}/transactions/charts/error_rate`,
- params: {
- path: { serviceName: overrides?.path?.serviceName || 'opbeans-go' },
- query: {
- start: new Date(start).toISOString(),
- end: new Date(end).toISOString(),
- transactionType: 'request',
- environment: 'ENVIRONMENT_ALL',
- kuery: '',
- documentType: ApmDocumentType.TransactionMetric,
- rollupInterval: RollupInterval.OneMinute,
- bucketSizeInSeconds: 60,
- ...overrides?.query,
- },
- },
- });
- }
-
- registry.when('Error rate when data is not loaded', { config: 'basic', archives: [] }, () => {
- it('handles the empty state', async () => {
- const response = await fetchErrorCharts();
- expect(response.status).to.be(200);
-
- const body = response.body as ErrorRate;
- expect(body).to.be.eql({
- currentPeriod: { timeseries: [], average: null },
- previousPeriod: { timeseries: [], average: null },
- });
- });
-
- it('handles the empty state with comparison data', async () => {
- const response = await fetchErrorCharts({
- query: {
- start: moment(end).subtract(7, 'minutes').toISOString(),
- offset: '7m',
- },
- });
- expect(response.status).to.be(200);
-
- const body = response.body as ErrorRate;
- expect(body).to.be.eql({
- currentPeriod: { timeseries: [], average: null },
- previousPeriod: { timeseries: [], average: null },
- });
- });
- });
-
- // FLAKY: https://github.com/elastic/kibana/issues/177598
- registry.when('Error rate when data is loaded', { config: 'basic', archives: [] }, () => {
- const config = {
- firstTransaction: {
- name: 'GET /apple 🍎 ',
- successRate: 50,
- failureRate: 50,
- },
- secondTransaction: {
- name: 'GET /pear 🍎 ',
- successRate: 25,
- failureRate: 75,
- },
- };
- before(async () => {
- const serviceGoProdInstance = apm
- .service({ name: 'opbeans-go', environment: 'production', agentName: 'go' })
- .instance('instance-a');
-
- const { firstTransaction, secondTransaction } = config;
-
- const documents = [
- timerange(start, end)
- .ratePerMinute(firstTransaction.successRate)
- .generator((timestamp) =>
- serviceGoProdInstance
- .transaction({ transactionName: firstTransaction.name })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- ),
- timerange(start, end)
- .ratePerMinute(firstTransaction.failureRate)
- .generator((timestamp) =>
- serviceGoProdInstance
- .transaction({ transactionName: firstTransaction.name })
- .duration(1000)
- .timestamp(timestamp)
- .failure()
- ),
- timerange(start, end)
- .ratePerMinute(secondTransaction.successRate)
- .generator((timestamp) =>
- serviceGoProdInstance
- .transaction({ transactionName: secondTransaction.name })
- .timestamp(timestamp)
- .duration(1000)
- .success()
- ),
- timerange(start, end)
- .ratePerMinute(secondTransaction.failureRate)
- .generator((timestamp) =>
- serviceGoProdInstance
- .transaction({ transactionName: secondTransaction.name })
- .duration(1000)
- .timestamp(timestamp)
- .failure()
- ),
- ];
- await apmSynthtraceEsClient.index(documents);
- });
-
- after(() => apmSynthtraceEsClient.clean());
-
- describe('returns the transaction error rate', () => {
- let errorRateResponse: ErrorRate;
-
- before(async () => {
- const response = await fetchErrorCharts({
- query: { transactionName: config.firstTransaction.name },
- });
- errorRateResponse = response.body;
- });
-
- it('returns some data', () => {
- expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0);
- expect(errorRateResponse.previousPeriod.average).to.be(null);
-
- expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty();
- expect(errorRateResponse.previousPeriod.timeseries).to.empty();
-
- const nonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter(
- ({ y }) => y !== null
- );
-
- expect(nonNullDataPoints).not.to.be.empty();
- });
-
- it('has the correct start date', () => {
- expect(
- new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:00:00.000Z');
- });
-
- it('has the correct end date', () => {
- expect(
- new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:14:00.000Z');
- });
-
- it('has the correct number of buckets', () => {
- expect(errorRateResponse.currentPeriod.timeseries.length).to.be.eql(15);
- });
-
- it('has the correct calculation for average', () => {
- expect(errorRateResponse.currentPeriod.average).to.eql(
- config.firstTransaction.failureRate / 100
- );
- });
- });
-
- describe('returns the transaction error rate with comparison data per transaction name', () => {
- let errorRateResponse: ErrorRate;
-
- before(async () => {
- const query = {
- transactionName: config.firstTransaction.name,
- start: moment(end).subtract(7, 'minutes').toISOString(),
- offset: '7m',
- };
-
- const response = await fetchErrorCharts({ query });
-
- errorRateResponse = response.body;
- });
-
- it('returns some data', () => {
- expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0);
- expect(errorRateResponse.previousPeriod.average).to.be.greaterThan(0);
-
- expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty();
- expect(errorRateResponse.previousPeriod.timeseries).not.to.be.empty();
-
- const currentPeriodNonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter(
- ({ y }) => y !== null
- );
-
- const previousPeriodNonNullDataPoints = errorRateResponse.previousPeriod.timeseries.filter(
- ({ y }) => y !== null
- );
-
- expect(currentPeriodNonNullDataPoints).not.to.be.empty();
- expect(previousPeriodNonNullDataPoints).not.to.be.empty();
- });
-
- it('has the correct start date', () => {
- expect(
- new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:07:00.000Z');
- expect(
- new Date(first(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:07:00.000Z');
- });
-
- it('has the correct end date', () => {
- expect(
- new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:14:00.000Z');
- expect(
- new Date(last(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString()
- ).to.eql('2021-01-01T00:14:00.000Z');
- });
-
- it('has the correct number of buckets', () => {
- expect(errorRateResponse.currentPeriod.timeseries.length).to.eql(8);
- expect(errorRateResponse.previousPeriod.timeseries.length).to.eql(8);
- });
-
- it('has the correct calculation for average', () => {
- expect(errorRateResponse.currentPeriod.average).to.eql(
- config.firstTransaction.failureRate / 100
- );
- expect(errorRateResponse.previousPeriod.average).to.eql(
- config.firstTransaction.failureRate / 100
- );
- });
-
- it('matches x-axis on current period and previous period', () => {
- expect(errorRateResponse.currentPeriod.timeseries.map(({ x }) => x)).to.be.eql(
- errorRateResponse.previousPeriod.timeseries.map(({ x }) => x)
- );
- });
- });
-
- describe('returns the same error rate for tx metrics and service tx metrics ', () => {
- let txMetricsErrorRateResponse: ErrorRate;
- let serviceTxMetricsErrorRateResponse: ErrorRate;
-
- before(async () => {
- const [txMetricsResponse, serviceTxMetricsResponse] = await Promise.all([
- fetchErrorCharts(),
- fetchErrorCharts({
- query: { documentType: ApmDocumentType.ServiceTransactionMetric },
- }),
- ]);
-
- txMetricsErrorRateResponse = txMetricsResponse.body;
- serviceTxMetricsErrorRateResponse = serviceTxMetricsResponse.body;
- });
-
- describe('has the correct calculation for average', () => {
- const expectedFailureRate =
- (config.firstTransaction.failureRate + config.secondTransaction.failureRate) / 2 / 100;
-
- it('for tx metrics', () => {
- expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
- });
-
- it('for service tx metrics', () => {
- expect(serviceTxMetricsErrorRateResponse.currentPeriod.average).to.eql(
- expectedFailureRate
- );
- });
- });
- });
-
- describe('handles kuery', () => {
- let txMetricsErrorRateResponse: ErrorRate;
-
- before(async () => {
- const txMetricsResponse = await fetchErrorCharts({
- query: {
- kuery: 'transaction.name : "GET /pear 🍎 "',
- },
- });
- txMetricsErrorRateResponse = txMetricsResponse.body;
- });
-
- describe('has the correct calculation for average with kuery', () => {
- const expectedFailureRate = config.secondTransaction.failureRate / 100;
-
- it('for tx metrics', () => {
- expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
- });
- });
- });
-
- describe('handles filters', () => {
- const filters = [
- {
- meta: {
- disabled: false,
- negate: false,
- alias: null,
- key: 'transaction.name',
- params: ['GET /api/product/list'],
- type: 'phrases',
- },
- query: {
- bool: {
- minimum_should_match: 1,
- should: {
- match_phrase: {
- 'transaction.name': 'GET /pear 🍎 ',
- },
- },
- },
- },
- },
- ];
- const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined));
- let txMetricsErrorRateResponse: ErrorRate;
-
- before(async () => {
- const txMetricsResponse = await fetchErrorCharts({
- query: {
- filters: serializedFilters,
- },
- });
- txMetricsErrorRateResponse = txMetricsResponse.body;
- });
-
- describe('has the correct calculation for average with filter', () => {
- const expectedFailureRate = config.secondTransaction.failureRate / 100;
-
- it('for tx metrics', () => {
- expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
- });
- });
-
- describe('has the correct calculation for average with negate filter', () => {
- const expectedFailureRate = config.secondTransaction.failureRate / 100;
-
- it('for tx metrics', () => {
- expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
- });
- });
- });
-
- describe('handles negate filters', () => {
- const filters = [
- {
- meta: {
- disabled: false,
- negate: true,
- alias: null,
- key: 'transaction.name',
- params: ['GET /api/product/list'],
- type: 'phrases',
- },
- query: {
- bool: {
- minimum_should_match: 1,
- should: {
- match_phrase: {
- 'transaction.name': 'GET /pear 🍎 ',
- },
- },
- },
- },
- },
- ];
- const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined));
- let txMetricsErrorRateResponse: ErrorRate;
-
- before(async () => {
- const txMetricsResponse = await fetchErrorCharts({
- query: {
- filters: serializedFilters,
- },
- });
- txMetricsErrorRateResponse = txMetricsResponse.body;
- });
-
- describe('has the correct calculation for average with filter', () => {
- const expectedFailureRate = config.firstTransaction.failureRate / 100;
-
- it('for tx metrics', () => {
- expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate);
- });
- });
- });
-
- describe('handles bad filters request', () => {
- it('for tx metrics', async () => {
- try {
- await fetchErrorCharts({
- query: {
- filters: '{}}}',
- },
- });
- } catch (e) {
- expect(e.res.status).to.eql(400);
- }
- });
- });
- });
-}
diff --git a/x-pack/test/apm_api_integration/tests/transactions/trace_samples.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/trace_samples.spec.ts
index 5edc1f5a1abc4..1aad31ecc4e55 100644
--- a/x-pack/test/apm_api_integration/tests/transactions/trace_samples.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/transactions/trace_samples.spec.ts
@@ -16,33 +16,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
const archiveName = 'apm_8.0.0';
const { start, end } = archives[archiveName];
- registry.when(
- 'Transaction trace samples response structure when data is not loaded',
- { config: 'basic', archives: [] },
- () => {
- it('handles empty state', async () => {
- const response = await apmApiClient.readUser({
- endpoint: 'GET /internal/apm/services/{serviceName}/transactions/traces/samples',
- params: {
- path: { serviceName: 'opbeans-java' },
- query: {
- start,
- end,
- transactionType: 'request',
- environment: 'ENVIRONMENT_ALL',
- transactionName: 'APIRestController#stats',
- kuery: '',
- },
- },
- });
-
- expect(response.status).to.be(200);
-
- expect(response.body.traceSamples.length).to.be(0);
- });
- }
- );
-
registry.when(
'Transaction trace samples response structure when data is loaded',
{ config: 'basic', archives: [archiveName] },
diff --git a/x-pack/test/functional/apps/api_keys/home_page.ts b/x-pack/test/functional/apps/api_keys/home_page.ts
index 2c212c11166f2..a12973bac24b0 100644
--- a/x-pack/test/functional/apps/api_keys/home_page.ts
+++ b/x-pack/test/functional/apps/api_keys/home_page.ts
@@ -419,5 +419,134 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
);
});
});
+
+ describe('querying API keys', function () {
+ before(async () => {
+ await clearAllApiKeys(es, log);
+ await security.testUser.setRoles(['kibana_admin', 'test_api_keys']);
+
+ await es.transport.request({
+ method: 'POST',
+ path: '/_security/cross_cluster/api_key',
+ body: {
+ name: 'test_cross_cluster',
+ expiration: '1d',
+ access: {
+ search: [
+ {
+ names: ['*'],
+ },
+ ],
+ replication: [
+ {
+ names: ['*'],
+ },
+ ],
+ },
+ },
+ });
+
+ await es.security.createApiKey({
+ name: 'my api key',
+ expiration: '1d',
+ role_descriptors: {
+ role_1: {},
+ },
+ metadata: {
+ managed: true,
+ },
+ });
+
+ await es.security.createApiKey({
+ name: 'Alerting: Managed',
+ expiration: '1d',
+ role_descriptors: {
+ role_1: {},
+ },
+ });
+
+ await es.security.createApiKey({
+ name: 'test_api_key',
+ expiration: '1s',
+ role_descriptors: {
+ role_1: {},
+ },
+ });
+
+ await es.security.grantApiKey({
+ api_key: {
+ name: 'test_user_api_key',
+ expiration: '1d',
+ },
+ grant_type: 'password',
+ run_as: 'test_user',
+ username: 'elastic',
+ password: 'changeme',
+ });
+
+ await pageObjects.common.navigateToApp('apiKeys');
+ });
+
+ after(async () => {
+ await security.testUser.restoreDefaults();
+ await clearAllApiKeys(es, log);
+ });
+
+ it('active/expired filter buttons work as expected', async () => {
+ await pageObjects.apiKeys.clickExpiryFilters('active');
+ await ensureApiKeysExist(['my api key', 'Alerting: Managed', 'test_cross_cluster']);
+ expect(await pageObjects.apiKeys.doesApiKeyExist('test_api_key')).to.be(false);
+
+ await pageObjects.apiKeys.clickExpiryFilters('expired');
+ await ensureApiKeysExist(['test_api_key']);
+ expect(await pageObjects.apiKeys.doesApiKeyExist('my api key')).to.be(false);
+
+ // reset filter buttons
+ await pageObjects.apiKeys.clickExpiryFilters('expired');
+ });
+
+ it('api key type filter buttons work as expected', async () => {
+ await pageObjects.apiKeys.clickTypeFilters('personal');
+
+ await ensureApiKeysExist(['test_api_key']);
+
+ await pageObjects.apiKeys.clickTypeFilters('cross_cluster');
+
+ await ensureApiKeysExist(['test_cross_cluster']);
+
+ await pageObjects.apiKeys.clickTypeFilters('managed');
+
+ await ensureApiKeysExist(['my api key', 'Alerting: Managed']);
+
+ // reset filters by simulate clicking the managed filter button again
+ await pageObjects.apiKeys.clickTypeFilters('managed');
+ });
+
+ it('username filter buttons work as expected', async () => {
+ await pageObjects.apiKeys.clickUserNameDropdown();
+ expect(
+ await testSubjects.exists('userProfileSelectableOption-system_indices_superuser')
+ ).to.be(true);
+ expect(await testSubjects.exists('userProfileSelectableOption-test_user')).to.be(true);
+
+ await testSubjects.click('userProfileSelectableOption-test_user');
+
+ await ensureApiKeysExist(['test_user_api_key']);
+ await testSubjects.click('userProfileSelectableOption-test_user');
+
+ await testSubjects.click('userProfileSelectableOption-system_indices_superuser');
+
+ await ensureApiKeysExist(['my api key', 'Alerting: Managed', 'test_cross_cluster']);
+ });
+
+ it.skip('search bar works as expected', async () => {
+ await pageObjects.apiKeys.setSearchBarValue('test_user_api_key');
+
+ await ensureApiKeysExist(['test_user_api_key']);
+
+ await pageObjects.apiKeys.setSearchBarValue('"my api key"');
+ await ensureApiKeysExist(['my api key']);
+ });
+ });
});
};
diff --git a/x-pack/test/functional/apps/canvas/datasource.ts b/x-pack/test/functional/apps/canvas/datasource.ts
index 480510ede4e78..78010fd66f4af 100644
--- a/x-pack/test/functional/apps/canvas/datasource.ts
+++ b/x-pack/test/functional/apps/canvas/datasource.ts
@@ -29,6 +29,10 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr
await kibanaServer.importExport.load(
'test/functional/fixtures/kbn_archiver/kibana_sample_data_flights_index_pattern.json'
);
+ // canvas application is only available when installation contains canvas workpads
+ await kibanaServer.importExport.load(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
await kibanaServer.uiSettings.update({
defaultIndex: 'kibana_sample_data_flights',
@@ -46,6 +50,9 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr
await kibanaServer.importExport.unload(
'test/functional/fixtures/kbn_archiver/kibana_sample_data_flights_index_pattern.json'
);
+ await kibanaServer.importExport.unload(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
});
describe('esdocs', function () {
diff --git a/x-pack/test/functional/apps/canvas/embeddables/maps.ts b/x-pack/test/functional/apps/canvas/embeddables/maps.ts
index ac6a861e9796e..bd3b984e91a65 100644
--- a/x-pack/test/functional/apps/canvas/embeddables/maps.ts
+++ b/x-pack/test/functional/apps/canvas/embeddables/maps.ts
@@ -18,6 +18,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('maps in canvas', function () {
before(async () => {
await kibanaServer.savedObjects.cleanStandardList();
+ // canvas application is only available when installation contains canvas workpads
+ await kibanaServer.importExport.load(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
// open canvas home
await canvas.goToListingPage();
// create new workpad
@@ -25,6 +29,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await canvas.setWorkpadName('maps tests');
});
+ after(async () => {
+ await kibanaServer.savedObjects.cleanStandardList();
+ });
+
describe('by-value', () => {
it('creates new map embeddable', async () => {
const originalEmbeddableCount = await canvas.getEmbeddableCount();
diff --git a/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts b/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts
index f89af8b6a15c1..d6fd2fefbaf21 100644
--- a/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts
+++ b/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts
@@ -20,6 +20,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await kibanaServer.importExport.load(
'test/functional/fixtures/kbn_archiver/dashboard/current/kibana'
);
+ // canvas application is only available when installation contains canvas workpads
+ await kibanaServer.importExport.load(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
// open canvas home
await canvas.goToListingPage();
// create new workpad
diff --git a/x-pack/test/functional/apps/discover/visualize_field.ts b/x-pack/test/functional/apps/discover/visualize_field.ts
index 0ee6a996652be..3d8bdc9c7d781 100644
--- a/x-pack/test/functional/apps/discover/visualize_field.ts
+++ b/x-pack/test/functional/apps/discover/visualize_field.ts
@@ -51,14 +51,19 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('discover field visualize button', () => {
before(async () => {
await kibanaServer.uiSettings.replace(defaultSettings);
- });
- beforeEach(async () => {
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
await kibanaServer.importExport.load(
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
);
+ });
+
+ beforeEach(async () => {
await common.navigateToApp('discover');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
await setDiscoverTimeRange();
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
});
after(async () => {
@@ -73,7 +78,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
await unifiedFieldList.expectFieldListItemVisualize('bytes');
});
- it('visualizes field to Lens and loads fields to the dimesion editor', async () => {
+ it('visualizes field to Lens and loads fields to the dimension editor', async () => {
await unifiedFieldList.findFieldByName('bytes');
await unifiedFieldList.clickFieldListItemVisualize('bytes');
await header.waitUntilLoadingHasFinished();
diff --git a/x-pack/test/functional/apps/spaces/enter_space.ts b/x-pack/test/functional/apps/spaces/enter_space.ts
index 4cff39e05b413..498b636cdce5a 100644
--- a/x-pack/test/functional/apps/spaces/enter_space.ts
+++ b/x-pack/test/functional/apps/spaces/enter_space.ts
@@ -20,6 +20,10 @@ export default function enterSpaceFunctionalTests({
describe('Enter Space', function () {
this.tags('includeFirefox');
before(async () => {
+ // canvas application is only available when installation contains canvas workpads
+ await kibanaServer.importExport.load(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
await spacesService.create({
id: 'another-space',
name: 'Another Space',
@@ -45,6 +49,9 @@ export default function enterSpaceFunctionalTests({
await PageObjects.security.forceLogout();
});
after(async () => {
+ await kibanaServer.importExport.unload(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
await spacesService.delete('another-space');
await kibanaServer.savedObjects.cleanStandardList();
});
diff --git a/x-pack/test/functional/apps/transform/creation/index_pattern/creation_index_pattern.ts b/x-pack/test/functional/apps/transform/creation/index_pattern/creation_index_pattern.ts
index dbc62293f035f..408d4686252cf 100644
--- a/x-pack/test/functional/apps/transform/creation/index_pattern/creation_index_pattern.ts
+++ b/x-pack/test/functional/apps/transform/creation/index_pattern/creation_index_pattern.ts
@@ -302,6 +302,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
{
identifier: 'percentiles(products.base_price)',
label: 'products.base_price.percentiles',
+ form: {
+ transformPercentilesAggPercentsSelector: [1, 25, 50, 75, 100],
+ },
},
{
identifier: 'filter(customer_phone)',
diff --git a/x-pack/test/functional/page_objects/api_keys_page.ts b/x-pack/test/functional/page_objects/api_keys_page.ts
index 9b196f70eeef0..efff9930f10a9 100644
--- a/x-pack/test/functional/page_objects/api_keys_page.ts
+++ b/x-pack/test/functional/page_objects/api_keys_page.ts
@@ -157,5 +157,34 @@ export function ApiKeysPageProvider({ getService }: FtrProviderContext) {
const toast = await testSubjects.find('updateApiKeySuccessToast');
return toast.getVisibleText();
},
+
+ async clickExpiryFilters(type: 'active' | 'expired') {
+ const button = await testSubjects.find(
+ type === 'active' ? 'activeFilterButton' : 'expiredFilterButton'
+ );
+ return button.click();
+ },
+
+ async clickTypeFilters(type: 'personal' | 'managed' | 'cross_cluster') {
+ const buttonMap = {
+ personal: 'personalFilterButton',
+ managed: 'managedFilterButton',
+ cross_cluster: 'crossClusterFilterButton',
+ };
+
+ const button = await testSubjects.find(buttonMap[type]);
+ return button.click();
+ },
+
+ async clickUserNameDropdown() {
+ const button = await testSubjects.find('ownerFilterButton');
+ return button.click();
+ },
+
+ async setSearchBarValue(query: string) {
+ const searchBar = await testSubjects.find('apiKeysSearchBar');
+ await searchBar.clearValue();
+ return searchBar.type(query);
+ },
};
}
diff --git a/x-pack/test/functional/services/transform/wizard.ts b/x-pack/test/functional/services/transform/wizard.ts
index 7d113c30ffeb1..dd5546e65a368 100644
--- a/x-pack/test/functional/services/transform/wizard.ts
+++ b/x-pack/test/functional/services/transform/wizard.ts
@@ -605,6 +605,12 @@ export function TransformWizardProvider({ getService, getPageObjects }: FtrProvi
expectedLabel: string,
formData: Record
) {
+ const isPopoverFormVisible = await testSubjects.exists(
+ `transformAggPopoverForm_${expectedLabel}`
+ );
+ if (!isPopoverFormVisible) {
+ await this.openPopoverForm(expectedLabel);
+ }
await testSubjects.existOrFail(`transformAggPopoverForm_${expectedLabel}`);
for (const [testObj, value] of Object.entries(formData)) {
@@ -615,12 +621,19 @@ export function TransformWizardProvider({ getService, getPageObjects }: FtrProvi
case 'transformFilterTermValueSelector':
await this.fillFilterTermValue(value);
break;
+ case 'transformPercentilesAggPercentsSelector':
+ await this.fillPercentilesAggPercents(value);
+ break;
}
}
await testSubjects.clickWhenNotDisabled('transformApplyAggChanges');
await testSubjects.missingOrFail(`transformAggPopoverForm_${expectedLabel}`);
},
+ async openPopoverForm(expectedLabel: string) {
+ await testSubjects.click(`transformAggregationEntryEditButton_${expectedLabel}`);
+ },
+
async selectFilerAggType(value: string) {
await testSubjects.selectValue('transformFilterAggTypeSelector', value);
},
@@ -629,6 +642,14 @@ export function TransformWizardProvider({ getService, getPageObjects }: FtrProvi
await comboBox.set('transformFilterTermValueSelector', value);
},
+ async fillPercentilesAggPercents(value: number[]) {
+ await comboBox.clear('transformPercentilesAggPercentsSelector');
+ for (const val of value) {
+ // Cast to string since Percentiles are usually passed as numbers
+ await comboBox.setCustom('transformPercentilesAggPercentsSelector', val.toString());
+ }
+ },
+
async assertAdvancedPivotEditorContent(expectedValue: string[]) {
const wrapper = await testSubjects.find('transformAdvancedPivotEditor');
const editor = await wrapper.findByCssSelector('.monaco-editor .view-lines');
diff --git a/x-pack/test/functional_search/tests/solution_navigation.ts b/x-pack/test/functional_search/tests/solution_navigation.ts
index 66bf8369b668f..b64367b11675c 100644
--- a/x-pack/test/functional_search/tests/solution_navigation.ts
+++ b/x-pack/test/functional_search/tests/solution_navigation.ts
@@ -14,8 +14,10 @@ export default function searchSolutionNavigation({
const { common, solutionNavigation } = getPageObjects(['common', 'solutionNavigation']);
const spaces = getService('spaces');
const browser = getService('browser');
+ const kibanaServer = getService('kibanaServer');
- describe('Search Solution Navigation', () => {
+ // FLAKY: https://github.com/elastic/kibana/issues/201037
+ describe.skip('Search Solution Navigation', () => {
let cleanUp: () => Promise;
let spaceCreated: { id: string } = { id: '' };
@@ -28,9 +30,18 @@ export default function searchSolutionNavigation({
// Create a space with the search solution and navigate to its home page
({ cleanUp, space: spaceCreated } = await spaces.create({ solution: 'es' }));
await browser.navigateTo(spaces.getRootUrl(spaceCreated.id));
+
+ // canvas application is only available when installation contains canvas workpads
+ await kibanaServer.importExport.load(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
});
after(async () => {
+ await kibanaServer.importExport.unload(
+ 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'
+ );
+
// Clean up space created
await cleanUp();
});
diff --git a/x-pack/test/observability_ai_assistant_functional/tests/feature_controls/settings_security.spec.ts b/x-pack/test/observability_ai_assistant_functional/tests/feature_controls/settings_security.spec.ts
index 96f2ff4b00f7f..d466abfd552ea 100644
--- a/x-pack/test/observability_ai_assistant_functional/tests/feature_controls/settings_security.spec.ts
+++ b/x-pack/test/observability_ai_assistant_functional/tests/feature_controls/settings_security.spec.ts
@@ -15,8 +15,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
const ui = getService('observabilityAIAssistantUI');
const testSubjects = getService('testSubjects');
- describe('ai assistant management privileges', () => {
- describe('all privileges', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/191707
+ describe.skip('ai assistant management privileges', () => {
+ // FLAKY: https://github.com/elastic/kibana/issues/191707
+ describe.skip('all privileges', () => {
before(async () => {
await createAndLoginUserWithCustomRole(getPageObjects, getService, {
// we need all these privileges to view and modify Obs AI Assistant settings view
diff --git a/x-pack/test/plugin_api_integration/test_suites/task_manager/task_management_removed_types.ts b/x-pack/test/plugin_api_integration/test_suites/task_manager/task_management_removed_types.ts
index a7447353e805a..60d858206d68e 100644
--- a/x-pack/test/plugin_api_integration/test_suites/task_manager/task_management_removed_types.ts
+++ b/x-pack/test/plugin_api_integration/test_suites/task_manager/task_management_removed_types.ts
@@ -47,7 +47,8 @@ export default function ({ getService }: FtrProviderContext) {
const UNREGISTERED_TASK_TYPE_ID = 'ce7e1250-3322-11eb-94c1-db6995e83f6b';
const REMOVED_TASK_TYPE_ID = 'be7e1250-3322-11eb-94c1-db6995e83f6a';
- describe('not registered task types', () => {
+ // FLAKY: https://github.com/elastic/kibana/issues/200154
+ describe.skip('not registered task types', () => {
before(async () => {
await esArchiver.load('x-pack/test/functional/es_archives/task_manager_removed_types');
});
diff --git a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/entity_store.ts b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/entity_store.ts
index 8bad52ae41bdb..0c5d86fa54800 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/entity_store.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/entity_store.ts
@@ -14,7 +14,8 @@ export default ({ getService }: FtrProviderContext) => {
const supertest = getService('supertest');
const utils = EntityStoreUtils(getService);
- describe('@ess @skipInServerlessMKI Entity Store APIs', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/200758
+ describe.skip('@ess @skipInServerlessMKI Entity Store APIs', () => {
const dataView = dataViewRouteHelpersFactory(supertest);
before(async () => {
diff --git a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts
index bc5eccd168418..9f5b0a3b79e38 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts
@@ -224,7 +224,7 @@ export default ({ getService }: FtrProviderContext) => {
const createRecords = () => createAssetCriticalityRecords(records, es);
- it('@skipInServerless should return the first 10 asset criticality records if no args provided', async () => {
+ it(' should return the first 10 asset criticality records if no args provided', async () => {
await createRecords();
const { body } = await assetCriticalityRoutes.list();
@@ -259,7 +259,7 @@ export default ({ getService }: FtrProviderContext) => {
);
});
- it('@skipInServerless should only return 1 asset criticality record if per_page=1', async () => {
+ it('should only return 1 asset criticality record if per_page=1', async () => {
await createRecords();
const { body } = await assetCriticalityRoutes.list({ per_page: 1 });
@@ -273,7 +273,7 @@ export default ({ getService }: FtrProviderContext) => {
expect(body.records[0].id_value).to.eql(records[0].id_value);
});
- it('@skipInServerless should return the next 10 asset criticality records if page=2', async () => {
+ it('should return the next 10 asset criticality records if page=2', async () => {
await createRecords();
const { body } = await assetCriticalityRoutes.list({ page: 2 });
diff --git a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts
index e5e721194d015..f13ce4e4a681c 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts
@@ -103,7 +103,7 @@ export default ({ getService }: FtrProviderContext): void => {
);
});
- it('@skipInServerlessMKI @skipInServerless starts the latest transform', async () => {
+ it('@skipInServerlessMKI starts the latest transform', async () => {
// Transform states that indicate the transform is running happily
const TRANSFORM_STARTED_STATES = ['started', 'indexing'];
diff --git a/x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/tests/index.ts b/x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/tests/index.ts
index e3402e0c6b80e..22e9a6f04b6e4 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/tests/index.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/investigation/saved_objects/tests/index.ts
@@ -8,7 +8,7 @@
import { FtrProviderContext } from '../../../../ftr_provider_context';
export default function ({ loadTestFile }: FtrProviderContext) {
- describe('@ess @serverless SecuritySolution Saved Objects', () => {
+ describe('@ess @serverless @serverlessQA SecuritySolution Saved Objects', () => {
loadTestFile(require.resolve('./notes'));
loadTestFile(require.resolve('./pinned_events'));
loadTestFile(require.resolve('./timeline'));
diff --git a/x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/tests/index.ts b/x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/tests/index.ts
index 0d14c693ea828..b337faad85f07 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/tests/index.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/tests/index.ts
@@ -8,7 +8,7 @@
import { FtrProviderContextWithSpaces } from '../../../../ftr_provider_context_with_spaces';
export default function ({ loadTestFile }: FtrProviderContextWithSpaces) {
- describe('@ess @serverless SecuritySolution Timeline', () => {
+ describe('@ess @serverless @serverlessQA SecuritySolution Timeline', () => {
loadTestFile(require.resolve('./events'));
loadTestFile(require.resolve('./timeline_details'));
loadTestFile(require.resolve('./timeline'));
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/detection_alerts/callouts/missing_privileges_callout.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/detection_alerts/callouts/missing_privileges_callout.cy.ts
index 69e6bb8b35253..501c8750b55f3 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/detection_alerts/callouts/missing_privileges_callout.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/detection_alerts/callouts/missing_privileges_callout.cy.ts
@@ -44,91 +44,96 @@ const waitForPageTitleToBeShown = () => {
cy.get(PAGE_TITLE).should('be.visible');
};
-describe('Detections > Callouts', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
- before(() => {
- // First, we have to open the app on behalf of a privileged user in order to initialize it.
- // Otherwise the app will be disabled and show a "welcome"-like page.
- login();
- visit(ALERTS_URL);
- waitForPageTitleToBeShown();
- });
-
- context('indicating read-only access to resources', () => {
- context('On Detections home page', () => {
- beforeEach(() => {
- loadPageAsReadOnlyUser(ALERTS_URL);
- });
+// FLAKY: https://github.com/elastic/kibana/issues/198628
+describe.skip(
+ 'Detections > Callouts',
+ { tags: ['@ess', '@serverless', '@skipInServerless'] },
+ () => {
+ before(() => {
+ // First, we have to open the app on behalf of a privileged user in order to initialize it.
+ // Otherwise the app will be disabled and show a "welcome"-like page.
+ login();
+ visit(ALERTS_URL);
+ waitForPageTitleToBeShown();
+ });
+
+ context('indicating read-only access to resources', () => {
+ context('On Detections home page', () => {
+ beforeEach(() => {
+ loadPageAsReadOnlyUser(ALERTS_URL);
+ });
- it('dismisses callout and persists its state', () => {
- waitForCallOutToBeShown(MISSING_PRIVILEGES_CALLOUT, 'primary');
+ it('dismisses callout and persists its state', () => {
+ waitForCallOutToBeShown(MISSING_PRIVILEGES_CALLOUT, 'primary');
- dismissCallOut(MISSING_PRIVILEGES_CALLOUT);
- reloadPage();
+ dismissCallOut(MISSING_PRIVILEGES_CALLOUT);
+ reloadPage();
- getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ });
});
- });
- // FYI: Rules Management check moved to ../detection_rules/all_rules_read_only.spec.ts
+ // FYI: Rules Management check moved to ../detection_rules/all_rules_read_only.spec.ts
- context('On Rule Details page', () => {
- beforeEach(() => {
- createRule(getNewRule()).then((rule) =>
- loadPageAsReadOnlyUser(ruleDetailsUrl(rule.body.id))
- );
- });
+ context('On Rule Details page', () => {
+ beforeEach(() => {
+ createRule(getNewRule()).then((rule) =>
+ loadPageAsReadOnlyUser(ruleDetailsUrl(rule.body.id))
+ );
+ });
- afterEach(() => {
- deleteCustomRule();
- });
+ afterEach(() => {
+ deleteCustomRule();
+ });
- it('dismisses callout and persists its state', () => {
- waitForCallOutToBeShown(MISSING_PRIVILEGES_CALLOUT, 'primary');
+ it('dismisses callout and persists its state', () => {
+ waitForCallOutToBeShown(MISSING_PRIVILEGES_CALLOUT, 'primary');
- dismissCallOut(MISSING_PRIVILEGES_CALLOUT);
- reloadPage();
+ dismissCallOut(MISSING_PRIVILEGES_CALLOUT);
+ reloadPage();
- getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ });
});
});
- });
- context('indicating read-write access to resources', () => {
- context('On Detections home page', () => {
- beforeEach(() => {
- loadPageAsPlatformEngineer(ALERTS_URL);
- });
+ context('indicating read-write access to resources', () => {
+ context('On Detections home page', () => {
+ beforeEach(() => {
+ loadPageAsPlatformEngineer(ALERTS_URL);
+ });
- it('We show no callout', () => {
- getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ it('We show no callout', () => {
+ getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ });
});
- });
- context('On Rules Management page', () => {
- beforeEach(() => {
- login(ROLES.platform_engineer);
- loadPageAsPlatformEngineer(RULES_MANAGEMENT_URL);
- });
+ context('On Rules Management page', () => {
+ beforeEach(() => {
+ login(ROLES.platform_engineer);
+ loadPageAsPlatformEngineer(RULES_MANAGEMENT_URL);
+ });
- it('We show no callout', () => {
- getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ it('We show no callout', () => {
+ getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ });
});
- });
- context('On Rule Details page', () => {
- beforeEach(() => {
- createRule(getNewRule()).then((rule) =>
- loadPageAsPlatformEngineer(ruleDetailsUrl(rule.body.id))
- );
- });
+ context('On Rule Details page', () => {
+ beforeEach(() => {
+ createRule(getNewRule()).then((rule) =>
+ loadPageAsPlatformEngineer(ruleDetailsUrl(rule.body.id))
+ );
+ });
- afterEach(() => {
- deleteCustomRule();
- });
+ afterEach(() => {
+ deleteCustomRule();
+ });
- it('We show no callouts', () => {
- getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ it('We show no callouts', () => {
+ getCallOut(MISSING_PRIVILEGES_CALLOUT).should('not.exist');
+ });
});
});
- });
-});
+ }
+);
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts
index 107a170e9cc2d..f1fcf7f76cba7 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_cell_actions.cy.ts
@@ -47,57 +47,67 @@ describe('Alerts cell actions', { tags: ['@ess', '@serverless'] }, () => {
waitForAlertsToPopulate();
});
- it('should filter in and out existing values', () => {
- scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_SEVERITY_HEADER, () => {
- cy.get(ALERT_TABLE_SEVERITY_VALUES)
- .first()
- .invoke('text')
- .then((severityVal) => {
- filterForAlertProperty(ALERT_TABLE_SEVERITY_VALUES, 0);
- cy.get(FILTER_BADGE).first().should('have.text', `kibana.alert.severity: ${severityVal}`);
- });
- removeKqlFilter();
- });
+ // Flaky in Serverless MKI only
+ // https://github.com/elastic/kibana/issues/201117
+ it(
+ 'should filter in and out existing values',
+ {
+ tags: ['@skipInServerlessMKI'],
+ },
+ () => {
+ scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_SEVERITY_HEADER, () => {
+ cy.get(ALERT_TABLE_SEVERITY_VALUES)
+ .first()
+ .invoke('text')
+ .then((severityVal) => {
+ filterForAlertProperty(ALERT_TABLE_SEVERITY_VALUES, 0);
+ cy.get(FILTER_BADGE)
+ .first()
+ .should('have.text', `kibana.alert.severity: ${severityVal}`);
+ });
+ removeKqlFilter();
+ });
- cy.log('should work for empty properties');
- // add query condition to make sure the field is empty
- fillKqlQueryBar('not file.name: *{enter}');
+ cy.log('should work for empty properties');
+ // add query condition to make sure the field is empty
+ fillKqlQueryBar('not file.name: *{enter}');
- scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_FILE_NAME_HEADER, () => {
- cy.log('filter for alert property');
+ scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_FILE_NAME_HEADER, () => {
+ cy.log('filter for alert property');
- filterForAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0);
+ filterForAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0);
- cy.get(FILTER_BADGE).first().should('have.text', 'NOT file.name: exists');
- removeKqlFilter();
- });
+ cy.get(FILTER_BADGE).first().should('have.text', 'NOT file.name: exists');
+ removeKqlFilter();
+ });
- cy.log('filter out alert property');
+ cy.log('filter out alert property');
- scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_FILE_NAME_HEADER, () => {
- cy.get(ALERT_TABLE_FILE_NAME_VALUES)
- .first()
- .then(() => {
- filterOutAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0);
- cy.get(FILTER_BADGE).first().should('have.text', 'file.name: exists');
- });
- removeKqlFilter();
- });
-
- cy.log('should filter out a non-empty property');
+ scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_FILE_NAME_HEADER, () => {
+ cy.get(ALERT_TABLE_FILE_NAME_VALUES)
+ .first()
+ .then(() => {
+ filterOutAlertProperty(ALERT_TABLE_FILE_NAME_VALUES, 0);
+ cy.get(FILTER_BADGE).first().should('have.text', 'file.name: exists');
+ });
+ removeKqlFilter();
+ });
- scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_SEVERITY_HEADER, () => {
- cy.get(ALERT_TABLE_SEVERITY_VALUES)
- .first()
- .invoke('text')
- .then((severityVal) => {
- filterOutAlertProperty(ALERT_TABLE_SEVERITY_VALUES, 0);
- cy.get(FILTER_BADGE)
- .first()
- .should('have.text', `NOT kibana.alert.severity: ${severityVal}`);
- });
- });
- });
+ cy.log('should filter out a non-empty property');
+
+ scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_SEVERITY_HEADER, () => {
+ cy.get(ALERT_TABLE_SEVERITY_VALUES)
+ .first()
+ .invoke('text')
+ .then((severityVal) => {
+ filterOutAlertProperty(ALERT_TABLE_SEVERITY_VALUES, 0);
+ cy.get(FILTER_BADGE)
+ .first()
+ .should('have.text', `NOT kibana.alert.severity: ${severityVal}`);
+ });
+ });
+ }
+ );
it('should allow copy paste', () => {
scrollAlertTableColumnIntoViewAndTest(ALERT_TABLE_SEVERITY_HEADER, () => {
diff --git a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/mock_data.ts b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/mock_data.ts
index 7ee5513e1352d..7bd4b7f3e7a22 100644
--- a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/mock_data.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/mock_data.ts
@@ -6,42 +6,40 @@
*/
export const mockAutoOpsResponse = {
- metrics: {
- ingest_rate: [
- {
- name: 'metrics-system.cpu-default',
- error: null,
- data: [
- [1726858530000, 13756849],
- [1726862130000, 14657904],
- ],
- },
- {
- name: 'logs-nginx.access-default',
- error: null,
- data: [
- [1726858530000, 12894623],
- [1726862130000, 14436905],
- ],
- },
- ],
- storage_retained: [
- {
- name: 'metrics-system.cpu-default',
- error: null,
- data: [
- [1726858530000, 12576413],
- [1726862130000, 13956423],
- ],
- },
- {
- name: 'logs-nginx.access-default',
- error: null,
- data: [
- [1726858530000, 12894623],
- [1726862130000, 14436905],
- ],
- },
- ],
- },
+ ingest_rate: [
+ {
+ name: 'metrics-system.cpu-default',
+ error: null,
+ data: [
+ [1726858530000, 13756849],
+ [1726862130000, 14657904],
+ ],
+ },
+ {
+ name: 'logs-nginx.access-default',
+ error: null,
+ data: [
+ [1726858530000, 12894623],
+ [1726862130000, 14436905],
+ ],
+ },
+ ],
+ storage_retained: [
+ {
+ name: 'metrics-system.cpu-default',
+ error: null,
+ data: [
+ [1726858530000, 12576413],
+ [1726862130000, 13956423],
+ ],
+ },
+ {
+ name: 'logs-nginx.access-default',
+ error: null,
+ data: [
+ [1726858530000, 12894623],
+ [1726862130000, 14436905],
+ ],
+ },
+ ],
};
diff --git a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/data_streams.ts b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/data_streams.ts
index d805b8ccff6fe..b6559c3efc9b6 100644
--- a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/data_streams.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/data_streams.ts
@@ -6,9 +6,9 @@
*/
import expect from '@kbn/expect';
-import { SupertestWithRoleScope } from '@kbn/test-suites-xpack/api_integration/deployment_agnostic/services/role_scoped_supertest';
import { DataStreamsResponseBodySchemaBody } from '@kbn/data-usage-plugin/common/rest_types';
import { DATA_USAGE_DATA_STREAMS_API_ROUTE } from '@kbn/data-usage-plugin/common';
+import { SupertestWithRoleScope } from '@kbn/test-suites-xpack/api_integration/deployment_agnostic/services/role_scoped_supertest';
import { FtrProviderContext } from '../../../../ftr_provider_context';
export default function ({ getService }: FtrProviderContext) {
@@ -43,14 +43,5 @@ export default function ({ getService }: FtrProviderContext) {
expect(foundStream?.storageSizeBytes).to.be(0);
expect(res.statusCode).to.be(200);
});
- it('returns system indices', async () => {
- const res = await supertestAdminWithCookieCredentials
- .get(DATA_USAGE_DATA_STREAMS_API_ROUTE)
- .set('elastic-api-version', '1');
- const dataStreams: DataStreamsResponseBodySchemaBody = res.body;
- const systemDataStreams = dataStreams.filter((stream) => stream.name.startsWith('.'));
- expect(systemDataStreams.length).to.be.greaterThan(0);
- expect(res.statusCode).to.be(200);
- });
});
}
diff --git a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/metrics.ts b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/metrics.ts
index 8985757ab1cab..5460b750a5b21 100644
--- a/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/metrics.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/common/data_usage/tests/metrics.ts
@@ -16,6 +16,12 @@ import { FtrProviderContext } from '../../../../ftr_provider_context';
import { setupMockServer } from '../mock_api';
import { mockAutoOpsResponse } from '../mock_data';
+const now = new Date();
+const to = now.toISOString(); // Current time in ISO format
+
+const nowMinus24Hours = new Date(now.getTime() - 24 * 60 * 60 * 1000);
+const from = nowMinus24Hours.toISOString();
+
export default function ({ getService }: FtrProviderContext) {
const svlDatastreamsHelpers = getService('svlDatastreamsHelpers');
const roleScopedSupertest = getService('roleScopedSupertest');
@@ -46,8 +52,8 @@ export default function ({ getService }: FtrProviderContext) {
after(async () => await svlDatastreamsHelpers.deleteDataStream(testDataStreamName));
it('returns 400 with non-existent data streams', async () => {
const requestBody: UsageMetricsRequestBody = {
- from: 'now-24h/h',
- to: 'now',
+ from,
+ to,
metricTypes: ['ingest_rate', 'storage_retained'],
dataStreams: ['invalid-data-stream'],
};
@@ -61,8 +67,8 @@ export default function ({ getService }: FtrProviderContext) {
it('returns 400 when requesting no data streams', async () => {
const requestBody = {
- from: 'now-24h/h',
- to: 'now',
+ from,
+ to,
metricTypes: ['ingest_rate'],
dataStreams: [],
};
@@ -76,8 +82,8 @@ export default function ({ getService }: FtrProviderContext) {
it('returns 400 when requesting an invalid metric type', async () => {
const requestBody = {
- from: 'now-24h/h',
- to: 'now',
+ from,
+ to,
metricTypes: [testDataStreamName],
dataStreams: ['datastream'],
};
@@ -93,8 +99,8 @@ export default function ({ getService }: FtrProviderContext) {
it('returns 200 with valid request', async () => {
const requestBody: UsageMetricsRequestBody = {
- from: 'now-24h/h',
- to: 'now',
+ from,
+ to,
metricTypes: ['ingest_rate', 'storage_retained'],
dataStreams: [testDataStreamName],
};
diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts
index 97a30d0f340f9..fa0714aa61544 100644
--- a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
import { services as apmServices } from './apm_api_integration/common/services';
import { services as datasetQualityServices } from './dataset_quality_api_integration/common/services';
@@ -32,6 +32,5 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
});
diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/platform_security/authorization.ts b/x-pack/test_serverless/api_integration/test_suites/observability/platform_security/authorization.ts
index 1e3ca0eecfafe..e49a9ed45871e 100644
--- a/x-pack/test_serverless/api_integration/test_suites/observability/platform_security/authorization.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/observability/platform_security/authorization.ts
@@ -10108,6 +10108,11 @@ export default function ({ getService }: FtrProviderContext) {
"saved_object:uptime-synthetics-api-key/find",
"saved_object:uptime-synthetics-api-key/open_point_in_time",
"saved_object:uptime-synthetics-api-key/close_point_in_time",
+ "saved_object:synthetics-private-location/bulk_get",
+ "saved_object:synthetics-private-location/get",
+ "saved_object:synthetics-private-location/find",
+ "saved_object:synthetics-private-location/open_point_in_time",
+ "saved_object:synthetics-private-location/close_point_in_time",
"saved_object:synthetics-privates-locations/bulk_get",
"saved_object:synthetics-privates-locations/get",
"saved_object:synthetics-privates-locations/find",
@@ -10399,6 +10404,11 @@ export default function ({ getService }: FtrProviderContext) {
"saved_object:uptime-synthetics-api-key/find",
"saved_object:uptime-synthetics-api-key/open_point_in_time",
"saved_object:uptime-synthetics-api-key/close_point_in_time",
+ "saved_object:synthetics-private-location/bulk_get",
+ "saved_object:synthetics-private-location/get",
+ "saved_object:synthetics-private-location/find",
+ "saved_object:synthetics-private-location/open_point_in_time",
+ "saved_object:synthetics-private-location/close_point_in_time",
"saved_object:synthetics-privates-locations/bulk_get",
"saved_object:synthetics-privates-locations/get",
"saved_object:synthetics-privates-locations/find",
diff --git a/x-pack/test_serverless/api_integration/test_suites/search/config.ts b/x-pack/test_serverless/api_integration/test_suites/search/config.ts
index 9f02dc98b88c3..4db3e86bb9787 100644
--- a/x-pack/test_serverless/api_integration/test_suites/search/config.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/search/config.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
export default createTestConfig({
@@ -28,6 +28,5 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
});
diff --git a/x-pack/test_serverless/api_integration/test_suites/security/config.ts b/x-pack/test_serverless/api_integration/test_suites/security/config.ts
index 52b933a22b086..511ec3176ef6f 100644
--- a/x-pack/test_serverless/api_integration/test_suites/security/config.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/security/config.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
export default createTestConfig({
@@ -32,6 +32,5 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
});
diff --git a/x-pack/test_serverless/functional/test_suites/common/data_usage/main.ts b/x-pack/test_serverless/functional/test_suites/common/data_usage/main.ts
index fa6e4199bdc09..0b59557229cd4 100644
--- a/x-pack/test_serverless/functional/test_suites/common/data_usage/main.ts
+++ b/x-pack/test_serverless/functional/test_suites/common/data_usage/main.ts
@@ -24,8 +24,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.svlManagementPage.clickDataUsageManagementCard();
});
- after(async () => {});
-
it('renders data usage page', async () => {
await retry.waitFor('page to be visible', async () => {
return await testSubjects.exists('DataUsagePage');
diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/context_awareness/extensions/_get_additional_cell_actions.ts b/x-pack/test_serverless/functional/test_suites/common/discover/context_awareness/extensions/_get_additional_cell_actions.ts
index 157100ccb903e..0d39a9139e688 100644
--- a/x-pack/test_serverless/functional/test_suites/common/discover/context_awareness/extensions/_get_additional_cell_actions.ts
+++ b/x-pack/test_serverless/functional/test_suites/common/discover/context_awareness/extensions/_get_additional_cell_actions.ts
@@ -15,6 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'discover',
'header',
'unifiedFieldList',
+ 'context',
'svlCommonPage',
]);
const dataViews = getService('dataViews');
@@ -37,7 +38,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('example-data-source-action');
let alert = await browser.getAlert();
try {
@@ -45,7 +46,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
} finally {
await alert?.dismiss();
}
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('another-example-data-source-action');
alert = await browser.getAlert();
try {
@@ -65,7 +66,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 2);
+ await dataGrid.clickCellExpandButton(0, { columnName: 'message' });
expect(await dataGrid.cellExpandPopoverActionExists('example-data-source-action')).to.be(
true
);
@@ -84,7 +85,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
expect(await dataGrid.cellExpandPopoverActionExists('example-data-source-action')).to.be(
false
);
@@ -94,8 +95,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
});
- // FLAKY: https://github.com/elastic/kibana/issues/193367
- describe.skip('data view mode', () => {
+ describe('data view mode', () => {
it('should render additional cell actions for logs data source', async () => {
await PageObjects.common.navigateToActualUrl('discover', undefined, {
ensureCurrentUrl: false,
@@ -103,7 +103,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dataViews.switchTo('my-example-logs');
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('example-data-source-action');
let alert = await browser.getAlert();
try {
@@ -111,7 +111,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
} finally {
await alert?.dismiss();
}
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('another-example-data-source-action');
alert = await browser.getAlert();
try {
@@ -127,7 +127,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await browser.refresh();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await PageObjects.context.waitUntilContextLoadingHasFinished();
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('example-data-source-action');
alert = await browser.getAlert();
try {
@@ -135,7 +136,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
} finally {
await alert?.dismiss();
}
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
await dataGrid.clickCellExpandPopoverAction('another-example-data-source-action');
alert = await browser.getAlert();
try {
@@ -152,7 +153,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dataViews.switchTo('my-example-logs');
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 2);
+ await dataGrid.clickCellExpandButton(0, { columnName: 'message' });
expect(await dataGrid.cellExpandPopoverActionExists('example-data-source-action')).to.be(
true
);
@@ -168,7 +169,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await dataViews.switchTo('my-example-metrics');
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 0);
+ await dataGrid.clickCellExpandButton(0, { columnName: '@timestamp' });
expect(await dataGrid.cellExpandPopoverActionExists('example-data-source-action')).to.be(
false
);
diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts b/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
index b4c73c56a484a..03dc8cea4a100 100644
--- a/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
+++ b/x-pack/test_serverless/functional/test_suites/common/discover/esql/_esql_view.ts
@@ -141,8 +141,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should perform test query correctly', async function () {
await PageObjects.timePicker.setDefaultAbsoluteRange();
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
await PageObjects.discover.selectTextBaseLang();
- const testQuery = `from logstash-* | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
+ const testQuery = `from logstash-* | sort @timestamp | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
await monacoEditor.setCodeEditorValue(testQuery);
await testSubjects.click('querySubmitButton');
@@ -157,7 +161,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should render when switching to a time range with no data, then back to a time range with data', async () => {
await PageObjects.discover.selectTextBaseLang();
- const testQuery = `from logstash-* | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
+
+ const testQuery = `from logstash-* | sort @timestamp | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
await monacoEditor.setCodeEditorValue(testQuery);
await testSubjects.click('querySubmitButton');
await PageObjects.header.waitUntilLoadingHasFinished();
@@ -183,7 +190,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
- const testQuery = `from logstash* | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
+ const testQuery = `from logstash* | sort @timestamp | limit 10 | stats countB = count(bytes) by geo.dest | sort countB`;
await monacoEditor.setCodeEditorValue(testQuery);
await testSubjects.click('querySubmitButton');
await PageObjects.header.waitUntilLoadingHasFinished();
@@ -256,8 +263,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
});
- // FLAKY: https://github.com/elastic/kibana/issues/189636
- describe.skip('switch modal', () => {
+ describe('switch modal', () => {
beforeEach(async () => {
await PageObjects.common.navigateToApp('discover');
await PageObjects.timePicker.setDefaultAbsoluteRange();
@@ -302,6 +308,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.waitUntilSearchingHasFinished();
await PageObjects.discover.saveSearch('esql_test2');
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
const testQuery = 'from logstash-* | limit 100 | drop @timestamp';
await monacoEditor.setCodeEditorValue(testQuery);
await testSubjects.click('querySubmitButton');
diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/x_pack/visualize_field.ts b/x-pack/test_serverless/functional/test_suites/common/discover/x_pack/visualize_field.ts
index 42d1ad33b30f0..7d145542e5884 100644
--- a/x-pack/test_serverless/functional/test_suites/common/discover/x_pack/visualize_field.ts
+++ b/x-pack/test_serverless/functional/test_suites/common/discover/x_pack/visualize_field.ts
@@ -48,7 +48,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
beforeEach(async () => {
await PageObjects.common.navigateToApp('discover');
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
await setDiscoverTimeRange();
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.discover.waitUntilSearchingHasFinished();
});
after(async () => {
@@ -64,7 +68,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
await PageObjects.unifiedFieldList.expectFieldListItemVisualize('bytes');
});
- it('visualizes field to Lens and loads fields to the dimesion editor', async () => {
+ it('visualizes field to Lens and loads fields to the dimension editor', async () => {
await PageObjects.unifiedFieldList.findFieldByName('bytes');
await PageObjects.unifiedFieldList.clickFieldListItemVisualize('bytes');
await PageObjects.header.waitUntilLoadingHasFinished();
diff --git a/x-pack/test_serverless/functional/test_suites/observability/config.ts b/x-pack/test_serverless/functional/test_suites/observability/config.ts
index 9fffd5623f0a3..41093df640976 100644
--- a/x-pack/test_serverless/functional/test_suites/observability/config.ts
+++ b/x-pack/test_serverless/functional/test_suites/observability/config.ts
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
export default createTestConfig({
@@ -25,6 +25,5 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
});
diff --git a/x-pack/test_serverless/functional/test_suites/search/config.ts b/x-pack/test_serverless/functional/test_suites/search/config.ts
index aef26951908d0..5c52828a11659 100644
--- a/x-pack/test_serverless/functional/test_suites/search/config.ts
+++ b/x-pack/test_serverless/functional/test_suites/search/config.ts
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
export default createTestConfig({
@@ -28,7 +28,6 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
apps: {
serverlessElasticsearch: {
diff --git a/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts b/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts
index 5ada9a50d45c3..95b35381a3d1e 100644
--- a/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts
+++ b/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts
@@ -18,7 +18,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
]);
const testSubjects = getService('testSubjects');
const browser = getService('browser');
- describe('connectors', function () {
+ // FLAKY: https://github.com/elastic/kibana/issues/197019
+ describe.skip('connectors', function () {
before(async () => {
await pageObjects.svlCommonPage.loginWithRole('developer');
await pageObjects.svlCommonNavigation.sidenav.clickLink({
diff --git a/x-pack/test_serverless/functional/test_suites/security/config.ts b/x-pack/test_serverless/functional/test_suites/security/config.ts
index 1693a07b0e844..6bf456e5f6d55 100644
--- a/x-pack/test_serverless/functional/test_suites/security/config.ts
+++ b/x-pack/test_serverless/functional/test_suites/security/config.ts
@@ -4,7 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
+import { KBN_CERT_PATH, KBN_KEY_PATH } from '@kbn/dev-utils';
import { createTestConfig } from '../../config.base';
export default createTestConfig({
@@ -25,6 +25,5 @@ export default createTestConfig({
'--xpack.dataUsage.autoops.api.url=http://localhost:9000',
`--xpack.dataUsage.autoops.api.tls.certificate=${KBN_CERT_PATH}`,
`--xpack.dataUsage.autoops.api.tls.key=${KBN_KEY_PATH}`,
- `--xpack.dataUsage.autoops.api.tls.ca=${CA_CERT_PATH}`,
],
});
diff --git a/yarn.lock b/yarn.lock
index 9bf235438f586..d5acff31b563b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2372,10 +2372,10 @@
"@elastic/react-search-ui-views" "1.20.2"
"@elastic/search-ui" "1.20.2"
-"@elastic/request-converter@^8.15.4":
- version "8.16.0"
- resolved "https://registry.yarnpkg.com/@elastic/request-converter/-/request-converter-8.16.0.tgz#e607d06d898ec290c7a9412104d7fa67d5fb9c8c"
- integrity sha512-tSwCJMoX3/hme1HXi7ewfP5E+BLFV2LcItt3EB4eucWPKEtG3SqJ3iuK3ygWm1PodPz8Mww/DMaxTJFERb/usg==
+"@elastic/request-converter@^8.16.1":
+ version "8.16.1"
+ resolved "https://registry.yarnpkg.com/@elastic/request-converter/-/request-converter-8.16.1.tgz#fad73db1a2ed0448501c389cf543fb77c6ffff57"
+ integrity sha512-lg2qCJ4kyxsP/0NpZo0+NsJfaY4JwyxGIVqD2l2Vmx9tv7ZNaZMn/TjHKBo2+jN0laJBInpxpnkPUgVWo5kw1g==
dependencies:
child-process-promise "^2.2.1"
commander "^12.1.0"
@@ -3492,13 +3492,6 @@
js-yaml "^3.13.1"
resolve-from "^5.0.0"
-"@istanbuljs/nyc-config-typescript@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.2.tgz#1f5235b28540a07219ae0dd42014912a0b19cf89"
- integrity sha512-iKGIyMoyJuFnJRSVTZ78POIRvNnwZaWIf8vG4ZS3rQq58MMDrqEX2nnzx0R28V2X8JvmKYiqY9FP2hlJsm8A0w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
-
"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"