diff --git a/.buildkite/disabled_jest_configs.json b/.buildkite/disabled_jest_configs.json index fe51488c7066f..21ab9f8200697 100644 --- a/.buildkite/disabled_jest_configs.json +++ b/.buildkite/disabled_jest_configs.json @@ -1 +1,3 @@ -[] +[ + "src/core/server/integration_tests/saved_objects/serverless/migrations/jest.integration.config.js" +] diff --git a/.buildkite/ftr_oblt_serverless_configs.yml b/.buildkite/ftr_oblt_serverless_configs.yml index cb03e060b86e7..9c836bfaf376d 100644 --- a/.buildkite/ftr_oblt_serverless_configs.yml +++ b/.buildkite/ftr_oblt_serverless_configs.yml @@ -5,13 +5,11 @@ disabled: # Cypress configs, for now these are still run manually - x-pack/test_serverless/functional/test_suites/observability/cypress/config_headless.ts - x-pack/test_serverless/functional/test_suites/observability/cypress/config_runner.ts - -defaultQueue: 'n2-4-spot' -enabled: - x-pack/test_serverless/api_integration/test_suites/observability/config.ts - x-pack/test_serverless/api_integration/test_suites/observability/config.feature_flags.ts - x-pack/test_serverless/api_integration/test_suites/observability/common_configs/config.group1.ts - x-pack/test_serverless/api_integration/test_suites/observability/fleet/config.ts + - x-pack/test_serverless/api_integration/test_suites/observability/ai_assistant/config.ts - x-pack/test_serverless/functional/test_suites/observability/config.ts - x-pack/test_serverless/functional/test_suites/observability/config.examples.ts - x-pack/test_serverless/functional/test_suites/observability/config.feature_flags.ts @@ -26,3 +24,7 @@ enabled: - x-pack/test_serverless/functional/test_suites/observability/config.screenshots.ts # serverless config files that run deployment-agnostic tests - x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts + +# Serverless tests only run on main +defaultQueue: 'n2-4-spot' +enabled: diff --git a/.buildkite/ftr_platform_stateful_configs.yml b/.buildkite/ftr_platform_stateful_configs.yml index fc46fa24f257f..463dc7b8352dc 100644 --- a/.buildkite/ftr_platform_stateful_configs.yml +++ b/.buildkite/ftr_platform_stateful_configs.yml @@ -34,9 +34,14 @@ disabled: # Cypress configs, for now these are still run manually - x-pack/test/fleet_cypress/cli_config.ts + - x-pack/test/fleet_cypress/cli_config.space_awareness.ts - x-pack/test/fleet_cypress/config.ts + - x-pack/test/fleet_cypress/config.space_awareness.ts - x-pack/test/fleet_cypress/visual_config.ts + # Default http2 config to use for performance journeys + - x-pack/performance/configs/http2_config.ts + defaultQueue: 'n2-4-spot' enabled: - test/accessibility/config.ts @@ -44,8 +49,7 @@ enabled: - test/api_integration/config.js - test/examples/config.js - test/functional/apps/bundles/config.ts - - test/functional/apps/console/monaco/config.ts - - test/functional/apps/console/ace/config.ts + - test/functional/apps/console/config.ts - test/functional/apps/context/config.ts - test/functional/apps/dashboard_elements/controls/common/config.ts - test/functional/apps/dashboard_elements/controls/options_list/config.ts @@ -245,6 +249,7 @@ enabled: - x-pack/test/functional/apps/ml/permissions/config.ts - x-pack/test/functional/apps/ml/short_tests/config.ts - x-pack/test/functional/apps/ml/stack_management_jobs/config.ts + - x-pack/test/functional/apps/ml/memory_usage/config.ts - x-pack/test/functional/apps/monitoring/config.ts - x-pack/test/functional/apps/painless_lab/config.ts - x-pack/test/functional/apps/remote_clusters/config.ts @@ -273,6 +278,7 @@ enabled: - x-pack/test/functional/config.upgrade_assistant.ts - x-pack/test/functional_cloud/config.ts - x-pack/test/functional_solution_sidenav/config.ts + - x-pack/test/functional_search/config.ts - x-pack/test/kubernetes_security/basic/config.ts - x-pack/test/licensing_plugin/config.public.ts - x-pack/test/licensing_plugin/config.ts @@ -315,6 +321,7 @@ enabled: - x-pack/test/security_api_integration/saml.http2.config.ts - x-pack/test/security_api_integration/saml_cloud.config.ts - x-pack/test/security_api_integration/chips.config.ts + - x-pack/test/security_api_integration/features.config.ts - x-pack/test/security_api_integration/session_idle.config.ts - x-pack/test/security_api_integration/session_invalidate.config.ts - x-pack/test/security_api_integration/session_lifespan.config.ts @@ -342,6 +349,7 @@ enabled: - x-pack/test/usage_collection/config.ts - x-pack/performance/journeys_e2e/aiops_log_rate_analysis.ts - x-pack/performance/journeys_e2e/ecommerce_dashboard.ts + - x-pack/performance/journeys_e2e/ecommerce_dashboard_http2.ts - x-pack/performance/journeys_e2e/ecommerce_dashboard_map_only.ts - x-pack/performance/journeys_e2e/flight_dashboard.ts - x-pack/performance/journeys_e2e/login.ts @@ -352,7 +360,10 @@ enabled: - x-pack/performance/journeys_e2e/tsdb_logs_data_visualizer.ts - x-pack/performance/journeys_e2e/promotion_tracking_dashboard.ts - x-pack/performance/journeys_e2e/web_logs_dashboard.ts + - x-pack/performance/journeys_e2e/web_logs_dashboard_esql.ts + - x-pack/performance/journeys_e2e/web_logs_dashboard_dataview.ts - x-pack/performance/journeys_e2e/data_stress_test_lens.ts + - x-pack/performance/journeys_e2e/data_stress_test_lens_http2.ts - x-pack/performance/journeys_e2e/ecommerce_dashboard_saved_search_only.ts - x-pack/performance/journeys_e2e/ecommerce_dashboard_tsvb_gauge_only.ts - x-pack/performance/journeys_e2e/dashboard_listing_page.ts diff --git a/.buildkite/ftr_search_serverless_configs.yml b/.buildkite/ftr_search_serverless_configs.yml index e6efee5860806..4d42587e96140 100644 --- a/.buildkite/ftr_search_serverless_configs.yml +++ b/.buildkite/ftr_search_serverless_configs.yml @@ -1,8 +1,5 @@ disabled: # Base config files, only necessary to inform config finding script - -defaultQueue: 'n2-4-spot' -enabled: - x-pack/test_serverless/api_integration/test_suites/search/config.ts - x-pack/test_serverless/api_integration/test_suites/search/config.feature_flags.ts - x-pack/test_serverless/api_integration/test_suites/search/common_configs/config.group1.ts @@ -20,3 +17,7 @@ enabled: - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group6.ts # serverless config files that run deployment-agnostic tests - x-pack/test/api_integration/deployment_agnostic/configs/serverless/search.serverless.config.ts + +# Serverless tests only run on main +defaultQueue: 'n2-4-spot' +enabled: diff --git a/.buildkite/ftr_security_serverless_configs.yml b/.buildkite/ftr_security_serverless_configs.yml index 89ebb4aa12cd4..1efb4a684db05 100644 --- a/.buildkite/ftr_security_serverless_configs.yml +++ b/.buildkite/ftr_security_serverless_configs.yml @@ -1,17 +1,17 @@ disabled: # Base config files, only necessary to inform config finding script - - x-pack/test_serverless/functional/test_suites/security/cypress/security_config.base.ts - - x-pack/test_serverless/functional/test_suites/security/cypress/cypress.config.ts - x-pack/test/security_solution_api_integration/config/serverless/config.base.ts - x-pack/test/security_solution_api_integration/config/serverless/config.base.essentials.ts - x-pack/test/security_solution_api_integration/config/serverless/config.base.edr_workflows.ts + - x-pack/test/defend_workflows_cypress/serverless_config.base.ts + - x-pack/test/osquery_cypress/serverless_config.base.ts # Cypress configs, for now these are still run manually - x-pack/test/defend_workflows_cypress/serverless_config.ts - x-pack/test/osquery_cypress/serverless_cli_config.ts - - x-pack/test_serverless/functional/test_suites/security/cypress/security_config.ts - x-pack/test/security_solution_cypress/serverless_config.ts + # Playwright - x-pack/test/security_solution_playwright/serverless_config.ts @@ -19,9 +19,6 @@ disabled: - x-pack/test_serverless/api_integration/config.base.ts - x-pack/test_serverless/functional/config.base.ts - x-pack/test_serverless/shared/config.base.ts - -defaultQueue: 'n2-4-spot' -enabled: - x-pack/test_serverless/api_integration/test_suites/security/config.ts - x-pack/test_serverless/api_integration/test_suites/security/config.feature_flags.ts - x-pack/test_serverless/api_integration/test_suites/security/common_configs/config.group1.ts @@ -81,6 +78,7 @@ enabled: - x-pack/test/security_solution_api_integration/test_suites/genai/knowledge_base/entries/trial_license_complete_tier/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/basic_license_essentials_tier/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/exception_lists_items/trial_license_complete_tier/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/lists_items/trial_license_complete_tier/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/explore/hosts/trial_license_complete_tier/configs/serverless.config.ts @@ -101,3 +99,7 @@ enabled: - x-pack/test/security_solution_endpoint/configs/serverless.integrations.config.ts # serverless config files that run deployment-agnostic tests - x-pack/test/api_integration/deployment_agnostic/configs/serverless/security.serverless.config.ts + +# Serverless tests only run on main +defaultQueue: 'n2-4-spot' +enabled: diff --git a/.buildkite/ftr_security_stateful_configs.yml b/.buildkite/ftr_security_stateful_configs.yml index 77a8c57029096..dbe529596102e 100644 --- a/.buildkite/ftr_security_stateful_configs.yml +++ b/.buildkite/ftr_security_stateful_configs.yml @@ -62,16 +62,21 @@ enabled: - x-pack/test/security_solution_api_integration/test_suites/detections_response/user_roles/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/basic_license_essentials_tier/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/entity_store/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/exception_lists_items/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/lists_items/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/explore/hosts/trial_license_complete_tier/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/explore/network/trial_license_complete_tier/configs/ess.config.ts - 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/security_and_spaces/configs/ess.basic.config.ts - - x-pack/test/security_solution_api_integration/test_suites/investigation/timeline/security_and_spaces/configs/ess.trial.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-fips-daily.yml b/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml index 5a89b3bfb4f3a..b64521858c1f6 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml @@ -34,5 +34,7 @@ spec: teams: kibana-operations: access_level: MANAGE_BUILD_AND_READ + kibana-security: + access_level: MANAGE_BUILD_AND_READ everyone: access_level: READ_ONLY diff --git a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml index a248d2a1d6497..f85f920f4ea94 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml @@ -20,7 +20,7 @@ spec: spec: env: SLACK_NOTIFICATIONS_CHANNEL: '#kibana-operations-alerts' - GITHUB_BUILD_COMMIT_STATUS_ENABLED: 'true' + ELASTIC_GITHUB_BUILD_COMMIT_STATUS_ENABLED: 'true' GITHUB_COMMIT_STATUS_CONTEXT: buildkite/on-merge REPORT_FAILED_TESTS_TO_GITHUB: 'true' ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' diff --git a/.buildkite/pipeline-resource-definitions/kibana-pr.yml b/.buildkite/pipeline-resource-definitions/kibana-pr.yml index 8d2a6c8bf9e99..4d6275843327e 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-pr.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-pr.yml @@ -19,10 +19,10 @@ spec: description: Runs manually for pull requests spec: env: - PR_COMMENTS_ENABLED: 'true' - GITHUB_BUILD_COMMIT_STATUS_ENABLED: 'true' + ELASTIC_PR_COMMENTS_ENABLED: 'true' + ELASTIC_GITHUB_BUILD_COMMIT_STATUS_ENABLED: 'true' + ELASTIC_GITHUB_STEP_COMMIT_STATUS_ENABLED: 'true' GITHUB_BUILD_COMMIT_STATUS_CONTEXT: kibana-ci - GITHUB_STEP_COMMIT_STATUS_ENABLED: 'true' allow_rebuilds: true branch_configuration: '' cancel_intermediate_builds: true diff --git a/.buildkite/pipeline-utils/agent_images.ts b/.buildkite/pipeline-utils/agent_images.ts index cfe93ba67a1f4..c99b46f4bfd4e 100644 --- a/.buildkite/pipeline-utils/agent_images.ts +++ b/.buildkite/pipeline-utils/agent_images.ts @@ -59,7 +59,7 @@ const expandAgentQueue = (queueName: string = 'n2-4-spot') => { const additionalProps = { spot: { preemptible: true }, - virt: { localSsdInterface: 'nvme', enableNestedVirtualization: true, localSsds: 1 }, + virt: { enableNestedVirtualization: true }, }[addition] || {}; return { diff --git a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts index 1f50bccbf8049..7379ab526321a 100644 --- a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts +++ b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts @@ -197,6 +197,32 @@ function getEnabledFtrConfigs(patterns?: string[]) { } } +/** + * Collects environment variables from labels on the PR + * TODO: extract this (and other functions from this big file) to a separate module + */ +function collectEnvFromLabels() { + const LABEL_MAPPING: Record> = { + 'ci:use-chrome-beta': { + USE_CHROME_BETA: 'true', + }, + }; + + const envFromlabels: Record = {}; + if (!process.env.GITHUB_PR_LABELS) { + return envFromlabels; + } else { + const labels = process.env.GITHUB_PR_LABELS.split(','); + labels.forEach((label) => { + const env = LABEL_MAPPING[label]; + if (env) { + Object.assign(envFromlabels, env); + } + }); + return envFromlabels; + } +} + export async function pickTestGroupRunOrder() { const bk = new BuildkiteClient(); const ciStats = new CiStatsClient(); @@ -273,9 +299,10 @@ export async function pickTestGroupRunOrder() { .filter(Boolean) : ['build']; - const FTR_EXTRA_ARGS: Record = process.env.FTR_EXTRA_ARGS + const ftrExtraArgs: Record = process.env.FTR_EXTRA_ARGS ? { FTR_EXTRA_ARGS: process.env.FTR_EXTRA_ARGS } : {}; + const envFromlabels: Record = collectEnvFromLabels(); const { defaultQueue, ftrConfigsByQueue } = getEnabledFtrConfigs(FTR_CONFIG_PATTERNS); @@ -514,7 +541,8 @@ export async function pickTestGroupRunOrder() { agents: expandAgentQueue(queue), env: { FTR_CONFIG_GROUP_KEY: key, - ...FTR_EXTRA_ARGS, + ...ftrExtraArgs, + ...envFromlabels, }, retry: { automatic: [ diff --git a/.buildkite/pipeline-utils/test-failures/annotate.ts b/.buildkite/pipeline-utils/test-failures/annotate.ts index 7327aa82c065c..43f3b733ebcd7 100644 --- a/.buildkite/pipeline-utils/test-failures/annotate.ts +++ b/.buildkite/pipeline-utils/test-failures/annotate.ts @@ -171,7 +171,10 @@ export const annotateTestFailures = async () => { buildkite.setAnnotation('test_failures', 'error', getAnnotation(failures, failureHtmlArtifacts)); - if (process.env.PR_COMMENTS_ENABLED === 'true') { + if ( + process.env.PR_COMMENTS_ENABLED === 'true' || + process.env.ELASTIC_PR_COMMENTS_ENABLED === 'true' + ) { buildkite.setMetadata( 'pr_comment:test_failures:body', getPrComment(failures, failureHtmlArtifacts) diff --git a/.buildkite/pipelines/artifacts.yml b/.buildkite/pipelines/artifacts.yml index b6f873ad2bd14..4765077287615 100644 --- a/.buildkite/pipelines/artifacts.yml +++ b/.buildkite/pipelines/artifacts.yml @@ -21,8 +21,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 timeout_in_minutes: 30 retry: @@ -37,8 +35,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 timeout_in_minutes: 30 retry: @@ -53,8 +49,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 timeout_in_minutes: 30 retry: @@ -68,8 +62,6 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-2 timeout_in_minutes: 30 retry: @@ -83,8 +75,6 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-2 timeout_in_minutes: 30 retry: @@ -111,8 +101,6 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-2 timeout_in_minutes: 30 retry: @@ -129,8 +117,6 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-2 timeout_in_minutes: 60 if: "build.env('RELEASE_BUILD') == null || build.env('RELEASE_BUILD') == '' || build.env('RELEASE_BUILD') == 'false'" @@ -156,7 +142,5 @@ steps: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-2 timeout_in_minutes: 30 diff --git a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml index cb0b63852ad00..3d5ba1056e0f0 100644 --- a/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml +++ b/.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml @@ -206,8 +206,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 depends_on: build timeout_in_minutes: 60 diff --git a/.buildkite/pipelines/flaky_tests/groups.json b/.buildkite/pipelines/flaky_tests/groups.json index 292c5fe33397c..2c85d862f1bd0 100644 --- a/.buildkite/pipelines/flaky_tests/groups.json +++ b/.buildkite/pipelines/flaky_tests/groups.json @@ -87,6 +87,14 @@ { "key": "cypress/apm_cypress", "name": "APM - Cypress" + }, + { + "key": "cypress/cloud_security_posture", + "name": "Cloud Security Posture - Cypress" + }, + { + "key": "cypress/cloud_security_posture_serverless", + "name": "[Serverless] Cloud Security Posture - Cypress" } ] } diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index e42f34bfba1fa..a7825e01a3b22 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -39,220 +39,174 @@ steps: provider: gcp machineType: n2-highcpu-8 preemptible: true - key: quick_checks timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 - - wait - - - command: .buildkite/scripts/steps/on_merge_api_docs.sh - label: Check Public API Docs - key: public-api-docs + - command: .buildkite/scripts/steps/checks.sh + label: 'Checks' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-4 + machineType: n2-standard-2 preemptible: true - timeout_in_minutes: 80 + timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 - - exit_status: '*' - limit: 1 - - command: .buildkite/scripts/steps/ci_stats_ready.sh - label: Mark CI Stats as ready - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-2 - timeout_in_minutes: 10 - depends_on: - - build - - public-api-docs - retry: - automatic: - - exit_status: '*' - limit: 1 - - - command: .buildkite/scripts/steps/test/pick_test_group_run_order.sh - label: 'Pick Test Group Run Order' + - command: .buildkite/scripts/steps/lint.sh + label: 'Linting' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-2 - timeout_in_minutes: 10 - env: - JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/test/jest.sh' - JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/test/jest_integration.sh' - FTR_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/ftr_configs.sh' + machineType: n2-standard-16 + preemptible: true + timeout_in_minutes: 60 retry: automatic: - - exit_status: '*' - limit: 1 + - exit_status: '-1' + limit: 3 - - command: .buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh - label: 'Serverless Entity Analytics - Security Cypress Tests' + - command: .buildkite/scripts/steps/lint_with_types.sh + label: 'Linting (with types)' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-4 + machineType: n2-standard-32 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 - parallelism: 3 retry: automatic: - exit_status: '-1' - limit: 1 + limit: 3 - - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh - label: 'Serverless Explore - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/check_types.sh + label: 'Check Types' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-4 + machineType: c4-standard-4 + diskType: 'hyperdisk-balanced' preemptible: true - depends_on: - - build - - quick_checks + spotZones: us-central1-a,us-central1-b,us-central1-c timeout_in_minutes: 60 - parallelism: 2 retry: automatic: - exit_status: '-1' - limit: 1 + limit: 3 - - command: .buildkite/scripts/steps/functional/security_serverless_investigations.sh - label: 'Serverless Investigations - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/checks/capture_oas_snapshot.sh + label: 'Check OAS Snapshot' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 - parallelism: 8 retry: automatic: - exit_status: '-1' - limit: 1 + limit: 3 + + - wait - - command: .buildkite/scripts/steps/functional/security_serverless_rule_management.sh - label: 'Serverless Rule Management - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/on_merge_api_docs.sh + label: Check Public API Docs + key: public-api-docs agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 5 + timeout_in_minutes: 80 retry: automatic: - exit_status: '-1' + limit: 3 + - exit_status: '*' limit: 1 - - command: .buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh - label: 'Serverless Rule Management - Prebuilt Rules - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/ci_stats_ready.sh + label: Mark CI Stats as ready agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-4 - preemptible: true + machineType: n2-standard-2 + timeout_in_minutes: 10 depends_on: - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 + - public-api-docs retry: automatic: - - exit_status: '-1' + - exit_status: '*' limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_rule_management.sh - label: 'Rule Management - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/test/pick_test_group_run_order.sh + label: 'Pick Test Group Run Order' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 4 + machineType: n2-standard-2 + timeout_in_minutes: 10 + env: + JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/test/jest.sh' + JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/test/jest_integration.sh' + FTR_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/ftr_configs.sh' retry: automatic: - - exit_status: '-1' + - exit_status: '*' limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh - label: 'Rule Management - Prebuilt Rules - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh + label: 'Serverless Explore - Security Solution Cypress Tests' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 - parallelism: 6 + parallelism: 2 retry: automatic: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/security_serverless_detection_engine.sh - label: 'Serverless Detection Engine - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/functional/security_solution_rule_management.sh + label: 'Rule Management - Security Solution Cypress Tests' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 - parallelism: 5 + parallelism: 4 retry: automatic: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh - label: 'Serverless Detection Engine - Exceptions - Security Solution Cypress Tests' + - command: .buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh + label: 'Rule Management - Prebuilt Rules - Security Solution Cypress Tests' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 6 retry: @@ -268,9 +222,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 5 retry: @@ -286,9 +237,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 6 retry: @@ -296,24 +244,6 @@ steps: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh - label: 'Serverless AI Assistant - Security Solution Cypress Tests' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_ai_assistant.sh label: 'AI Assistant - Security Solution Cypress Tests' agents: @@ -322,9 +252,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 1 retry: @@ -340,9 +267,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 2 retry: @@ -358,9 +282,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 2 retry: @@ -376,9 +297,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 6 retry: @@ -394,27 +312,6 @@ steps: provider: gcp machineType: n2-standard-4 preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 8 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_osquery.sh - label: 'Serverless Osquery Cypress Tests' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 8 retry: @@ -429,12 +326,7 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 - depends_on: - - build - - quick_checks timeout_in_minutes: 60 parallelism: 20 retry: @@ -442,95 +334,14 @@ steps: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/defend_workflows_serverless.sh - label: 'Defend Workflows Cypress Tests on Serverless' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme - machineType: n2-standard-4 - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 14 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: '.buildkite/scripts/steps/functional/on_merge_unsupported_ftrs.sh' label: Trigger unsupported ftr tests timeout_in_minutes: 10 - depends_on: - - build - - quick_checks - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-2 - - - command: .buildkite/scripts/steps/lint.sh - label: 'Linting' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-8 - preemptible: true - key: linting - timeout_in_minutes: 60 - retry: - automatic: - - exit_status: '-1' - limit: 3 - - - command: .buildkite/scripts/steps/lint_with_types.sh - label: 'Linting (with types)' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-16 - preemptible: true - key: linting_with_types - timeout_in_minutes: 90 - retry: - automatic: - - exit_status: '-1' - limit: 3 - - - command: .buildkite/scripts/steps/checks.sh - label: 'Checks' agents: image: family/kibana-ubuntu-2004 imageProject: elastic-images-prod provider: gcp machineType: n2-standard-2 - preemptible: true - timeout_in_minutes: 60 - retry: - automatic: - - exit_status: '-1' - limit: 3 - - - command: .buildkite/scripts/steps/check_types.sh - label: 'Check Types' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-4 - preemptible: true - timeout_in_minutes: 70 - retry: - automatic: - - exit_status: '-1' - limit: 3 - command: .buildkite/scripts/steps/storybooks/build_and_upload.sh label: 'Build Storybooks' diff --git a/.buildkite/pipelines/pointer_compression.yml b/.buildkite/pipelines/pointer_compression.yml index b36871d6d9634..053f8f0d4c2c8 100644 --- a/.buildkite/pipelines/pointer_compression.yml +++ b/.buildkite/pipelines/pointer_compression.yml @@ -362,8 +362,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 depends_on: - build @@ -381,8 +379,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 depends_on: - build diff --git a/.buildkite/pipelines/pull_request/apm_cypress.yml b/.buildkite/pipelines/pull_request/apm_cypress.yml index 05194bae83e79..97935cc3489d1 100644 --- a/.buildkite/pipelines/pull_request/apm_cypress.yml +++ b/.buildkite/pipelines/pull_request/apm_cypress.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 120 parallelism: 1 # TODO: Set parallelism when apm_cypress handles it retry: diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml index 2f2e0a739a304..e7b593f464b54 100644 --- a/.buildkite/pipelines/pull_request/base.yml +++ b/.buildkite/pipelines/pull_request/base.yml @@ -32,39 +32,22 @@ steps: - exit_status: '-1' limit: 3 - - wait - - - command: .buildkite/scripts/steps/ci_stats_ready.sh - label: Mark CI Stats as ready - agents: - machineType: n2-standard-2 - timeout_in_minutes: 10 - depends_on: - - build - - build_api_docs - retry: - automatic: - - exit_status: '*' - limit: 1 - - - command: .buildkite/scripts/steps/test/pick_test_group_run_order.sh - label: 'Pick Test Group Run Order' + - command: .buildkite/scripts/steps/checks.sh + label: 'Checks' + key: checks agents: machineType: n2-standard-2 - timeout_in_minutes: 10 - env: - JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/test/jest.sh' - JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/test/jest_integration.sh' - FTR_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/ftr_configs.sh' + preemptible: true + timeout_in_minutes: 60 retry: automatic: - - exit_status: '*' - limit: 1 + - exit_status: '-1' + limit: 3 - command: .buildkite/scripts/steps/lint.sh label: 'Linting' agents: - machineType: n2-standard-8 + machineType: n2-standard-16 preemptible: true key: linting timeout_in_minutes: 60 @@ -73,42 +56,73 @@ steps: - exit_status: '-1' limit: 3 - - command: .buildkite/scripts/steps/check_types.sh - label: 'Check Types' + - command: .buildkite/scripts/steps/lint_with_types.sh + label: 'Linting (with types)' agents: - machineType: n2-standard-4 + machineType: n2-standard-32 preemptible: true - key: check_types - timeout_in_minutes: 70 + key: linting_with_types + timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 - - command: .buildkite/scripts/steps/lint_with_types.sh - label: 'Linting (with types)' + - command: .buildkite/scripts/steps/checks/capture_oas_snapshot.sh + label: 'Check OAS Snapshot' agents: - machineType: n2-standard-16 + machineType: n2-standard-4 preemptible: true - key: linting_with_types - timeout_in_minutes: 90 + key: check_oas_snapshot + timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 - - command: .buildkite/scripts/steps/checks.sh - label: 'Checks' - key: checks + - command: .buildkite/scripts/steps/check_types.sh + label: 'Check Types' agents: - machineType: n2-standard-2 + machineType: c4-standard-4 + diskType: 'hyperdisk-balanced' preemptible: true + spotZones: us-central1-a,us-central1-b,us-central1-c + key: check_types timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 + - wait + + - command: .buildkite/scripts/steps/ci_stats_ready.sh + label: Mark CI Stats as ready + agents: + machineType: n2-standard-2 + timeout_in_minutes: 10 + depends_on: + - build + - build_api_docs + retry: + automatic: + - exit_status: '*' + limit: 1 + + - command: .buildkite/scripts/steps/test/pick_test_group_run_order.sh + label: 'Pick Test Group Run Order' + agents: + machineType: n2-standard-2 + timeout_in_minutes: 10 + env: + JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/test/jest.sh' + JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/test/jest_integration.sh' + FTR_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/ftr_configs.sh' + retry: + automatic: + - exit_status: '*' + limit: 1 + - command: .buildkite/scripts/steps/api_docs/build_api_docs.sh label: 'Build API Docs' agents: diff --git a/.buildkite/pipelines/pull_request/deploy_cloud.yml b/.buildkite/pipelines/pull_request/deploy_cloud.yml index d520822e54f7b..565c5af3bb0c1 100644 --- a/.buildkite/pipelines/pull_request/deploy_cloud.yml +++ b/.buildkite/pipelines/pull_request/deploy_cloud.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 30 soft_fail: true retry: diff --git a/.buildkite/pipelines/pull_request/exploratory_view_plugin.yml b/.buildkite/pipelines/pull_request/exploratory_view_plugin.yml index 72a2ae8ab785b..05fc218080cd4 100644 --- a/.buildkite/pipelines/pull_request/exploratory_view_plugin.yml +++ b/.buildkite/pipelines/pull_request/exploratory_view_plugin.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 artifact_paths: - 'x-pack/plugins/observability_solution/exploratory_view/e2e/.journeys/**/*' diff --git a/.buildkite/pipelines/pull_request/fips.yml b/.buildkite/pipelines/pull_request/fips.yml index a136b4f91a2c5..4f906e4420c8f 100644 --- a/.buildkite/pipelines/pull_request/fips.yml +++ b/.buildkite/pipelines/pull_request/fips.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 soft_fail: true retry: diff --git a/.buildkite/pipelines/pull_request/fleet_cypress.yml b/.buildkite/pipelines/pull_request/fleet_cypress.yml index 2e0365793afc0..50912cc16e5a8 100644 --- a/.buildkite/pipelines/pull_request/fleet_cypress.yml +++ b/.buildkite/pipelines/pull_request/fleet_cypress.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 50 parallelism: 6 retry: diff --git a/.buildkite/pipelines/pull_request/kbn_handlebars.yml b/.buildkite/pipelines/pull_request/kbn_handlebars.yml index 5da18ce31919c..187058d238682 100644 --- a/.buildkite/pipelines/pull_request/kbn_handlebars.yml +++ b/.buildkite/pipelines/pull_request/kbn_handlebars.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 5 retry: automatic: diff --git a/.buildkite/pipelines/pull_request/observability_onboarding_cypress.yml b/.buildkite/pipelines/pull_request/observability_onboarding_cypress.yml index b5831e7bb471d..b0d438064d51e 100644 --- a/.buildkite/pipelines/pull_request/observability_onboarding_cypress.yml +++ b/.buildkite/pipelines/pull_request/observability_onboarding_cypress.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/pull_request/profiling_cypress.yml b/.buildkite/pipelines/pull_request/profiling_cypress.yml index d86fc5a167db6..8ed98a4fbc736 100644 --- a/.buildkite/pipelines/pull_request/profiling_cypress.yml +++ b/.buildkite/pipelines/pull_request/profiling_cypress.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 120 parallelism: 2 retry: diff --git a/.buildkite/pipelines/pull_request/response_ops.yml b/.buildkite/pipelines/pull_request/response_ops.yml index 60e2dc32476d5..9ac20e86f6660 100644 --- a/.buildkite/pipelines/pull_request/response_ops.yml +++ b/.buildkite/pipelines/pull_request/response_ops.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 120 parallelism: 9 retry: diff --git a/.buildkite/pipelines/pull_request/response_ops_cases.yml b/.buildkite/pipelines/pull_request/response_ops_cases.yml index 1e1510260436d..27289c864e2c1 100644 --- a/.buildkite/pipelines/pull_request/response_ops_cases.yml +++ b/.buildkite/pipelines/pull_request/response_ops_cases.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/pull_request/security_solution/ai_assistant.yml b/.buildkite/pipelines/pull_request/security_solution/ai_assistant.yml index 252365ee7e4da..9f9b606dced1d 100644 --- a/.buildkite/pipelines/pull_request/security_solution/ai_assistant.yml +++ b/.buildkite/pipelines/pull_request/security_solution/ai_assistant.yml @@ -1,19 +1,4 @@ steps: - - command: .buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh - label: 'Serverless AI Assistant - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_ai_assistant.sh label: 'AI Assistant - Security Solution Cypress Tests' agents: @@ -22,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 1 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/cloud_security_posture.yml b/.buildkite/pipelines/pull_request/security_solution/cloud_security_posture.yml new file mode 100644 index 0000000000000..e1ba84bf4f661 --- /dev/null +++ b/.buildkite/pipelines/pull_request/security_solution/cloud_security_posture.yml @@ -0,0 +1,40 @@ +steps: + - command: .buildkite/scripts/steps/functional/cloud_security_posture.sh + label: 'Cloud Security Posture Cypress Tests' + agents: + machineType: n2-standard-4 + preemptible: true + depends_on: + - build + - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot + timeout_in_minutes: 60 + parallelism: 1 + retry: + automatic: + - exit_status: '-1' + limit: 1 + + - command: .buildkite/scripts/steps/functional/cloud_security_posture_serverless.sh + label: 'Cloud Security Posture Cypress Tests on Serverless' + agents: + machineType: n2-standard-4 + preemptible: true + depends_on: + - build + - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot + timeout_in_minutes: 60 + parallelism: 1 + retry: + automatic: + - exit_status: '-1' + limit: 1 \ No newline at end of file diff --git a/.buildkite/pipelines/pull_request/security_solution/cypress_burn.yml b/.buildkite/pipelines/pull_request/security_solution/cypress_burn.yml index 6d69748c6d447..14d81aa9d3520 100644 --- a/.buildkite/pipelines/pull_request/security_solution/cypress_burn.yml +++ b/.buildkite/pipelines/pull_request/security_solution/cypress_burn.yml @@ -3,28 +3,15 @@ steps: label: '[Soft fail] Defend Workflows Cypress Tests, burning changed specs' agents: enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme - machineType: n2-standard-4 - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - soft_fail: true - parallelism: 1 - retry: - automatic: false - - - command: .buildkite/scripts/steps/functional/defend_workflows_serverless_burn.sh - label: '[Soft fail] Defend Workflows Cypress Tests on Serverless, burning changed specs' - agents: - enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 soft_fail: true parallelism: 1 @@ -39,6 +26,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 1 retry: @@ -53,6 +45,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 50 soft_fail: true retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml b/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml index 47f0e672a8d5a..104853c27b112 100644 --- a/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml +++ b/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml @@ -3,12 +3,15 @@ steps: label: 'Defend Workflows Cypress Tests' agents: enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 20 retry: @@ -32,15 +35,3 @@ steps: automatic: - exit_status: '-1' limit: 1 -# status_exception: Native role management is not enabled in this Elasticsearch instance -# - command: .buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh -# label: 'Serverless Security Defend Workflows Cypress Tests' -# agents: -# machineType: n2-standard-4 -# preemptible: true -# depends_on: build -# timeout_in_minutes: 60 -# retry: -# automatic: -# - exit_status: '-1' -# limit: 1 diff --git a/.buildkite/pipelines/pull_request/security_solution/detection_engine.yml b/.buildkite/pipelines/pull_request/security_solution/detection_engine.yml index 65a9dc832e1e6..8f3ed2dc2ff82 100644 --- a/.buildkite/pipelines/pull_request/security_solution/detection_engine.yml +++ b/.buildkite/pipelines/pull_request/security_solution/detection_engine.yml @@ -1,34 +1,4 @@ steps: - - command: .buildkite/scripts/steps/functional/security_serverless_detection_engine.sh - label: 'Serverless Detection Engine - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 5 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh - label: 'Serverless Detection Engine - Exceptions - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 2 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_detection_engine.sh label: 'Detection Engine - Security Solution Cypress Tests' agents: @@ -37,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 5 retry: @@ -52,6 +27,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 2 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/entity_analytics.yml b/.buildkite/pipelines/pull_request/security_solution/entity_analytics.yml index 8883f1ab9c038..1ff0999d33afd 100644 --- a/.buildkite/pipelines/pull_request/security_solution/entity_analytics.yml +++ b/.buildkite/pipelines/pull_request/security_solution/entity_analytics.yml @@ -1,19 +1,4 @@ steps: - - command: .buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh - label: 'Serverless Entity Analytics - Security Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 3 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_entity_analytics.sh label: 'Entity Analytics - Security Solution Cypress Tests' agents: @@ -22,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 2 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/explore.yml b/.buildkite/pipelines/pull_request/security_solution/explore.yml index 239021affcf99..749b480c5be50 100644 --- a/.buildkite/pipelines/pull_request/security_solution/explore.yml +++ b/.buildkite/pipelines/pull_request/security_solution/explore.yml @@ -7,21 +7,11 @@ steps: depends_on: - build - quick_checks - timeout_in_minutes: 60 - parallelism: 2 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_explore.sh - label: 'Serverless Explore - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 2 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/investigations.yml b/.buildkite/pipelines/pull_request/security_solution/investigations.yml index ccd469aedbdbe..3126aa00d0327 100644 --- a/.buildkite/pipelines/pull_request/security_solution/investigations.yml +++ b/.buildkite/pipelines/pull_request/security_solution/investigations.yml @@ -7,24 +7,14 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 7 retry: automatic: - exit_status: '-1' limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_investigations.sh - label: 'Serverless Investigations - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 8 - retry: - automatic: - - exit_status: '-1' - limit: 1 diff --git a/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml b/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml index 26faa344371c9..55e5b7842f4f1 100644 --- a/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml +++ b/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml @@ -7,21 +7,11 @@ steps: depends_on: - build - quick_checks - timeout_in_minutes: 60 - parallelism: 8 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_osquery.sh - label: 'Serverless Osquery Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 8 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/playwright.yml b/.buildkite/pipelines/pull_request/security_solution/playwright.yml index 694a7ed588089..af29f1e545ca2 100644 --- a/.buildkite/pipelines/pull_request/security_solution/playwright.yml +++ b/.buildkite/pipelines/pull_request/security_solution/playwright.yml @@ -1,19 +1,4 @@ steps: - - command: .buildkite/scripts/steps/functional/security_serverless_playwright.sh - label: 'Serverless Playwright - Security Solution Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_playwright.sh label: 'Playwright - Security Solution Tests' agents: @@ -22,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 1 retry: diff --git a/.buildkite/pipelines/pull_request/security_solution/rule_management.yml b/.buildkite/pipelines/pull_request/security_solution/rule_management.yml index 30bd1bd1ff649..085df0f65eeb5 100644 --- a/.buildkite/pipelines/pull_request/security_solution/rule_management.yml +++ b/.buildkite/pipelines/pull_request/security_solution/rule_management.yml @@ -1,34 +1,4 @@ steps: - - command: .buildkite/scripts/steps/functional/security_serverless_rule_management.sh - label: 'Serverless Rule Management - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 5 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh - label: 'Serverless Rule Management - Prebuilt Rules - Security Solution Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/security_solution_rule_management.sh label: 'Rule Management - Security Solution Cypress Tests' agents: @@ -37,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 4 retry: @@ -52,6 +27,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 parallelism: 2 retry: diff --git a/.buildkite/pipelines/pull_request/slo_plugin_e2e.yml b/.buildkite/pipelines/pull_request/slo_plugin_e2e.yml index 852ec2f9a0b16..2cf1126cf1f5d 100644 --- a/.buildkite/pipelines/pull_request/slo_plugin_e2e.yml +++ b/.buildkite/pipelines/pull_request/slo_plugin_e2e.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 30 artifact_paths: - 'x-pack/plugins/observability_solution/slo/e2e/.journeys/**/*' diff --git a/.buildkite/pipelines/pull_request/synthetics_plugin.yml b/.buildkite/pipelines/pull_request/synthetics_plugin.yml index 77f330b991ba8..b4079b9fac307 100644 --- a/.buildkite/pipelines/pull_request/synthetics_plugin.yml +++ b/.buildkite/pipelines/pull_request/synthetics_plugin.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 artifact_paths: - 'x-pack/plugins/observability_solution/synthetics/e2e/.journeys/**/*' diff --git a/.buildkite/pipelines/pull_request/uptime_plugin.yml b/.buildkite/pipelines/pull_request/uptime_plugin.yml index 286c760336132..4c1e05d7476fd 100644 --- a/.buildkite/pipelines/pull_request/uptime_plugin.yml +++ b/.buildkite/pipelines/pull_request/uptime_plugin.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 artifact_paths: - 'x-pack/plugins/observability_solution/synthetics/e2e/.journeys/**/*' diff --git a/.buildkite/pipelines/pull_request/ux_plugin_e2e.yml b/.buildkite/pipelines/pull_request/ux_plugin_e2e.yml index a11309cffb2c2..4bade14464f35 100644 --- a/.buildkite/pipelines/pull_request/ux_plugin_e2e.yml +++ b/.buildkite/pipelines/pull_request/ux_plugin_e2e.yml @@ -7,6 +7,11 @@ steps: depends_on: - build - quick_checks + - checks + - linting + - linting_with_types + - check_types + - check_oas_snapshot timeout_in_minutes: 60 artifact_paths: - 'x-pack/plugins/observability_solution/ux/e2e/.journeys/**/*' diff --git a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml index 2bd85e2ad8a74..3e0e75cd70580 100644 --- a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml +++ b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml @@ -44,3 +44,4 @@ steps: command: "make -C /agent trigger-manual-verification-phase" agents: image: "docker.elastic.co/ci-agent-images/manual-verification-agent:0.0.6" + if: build.env("DEPLOYMENT_SLICES") =~ /.*staging-ds-2.*/ diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml index 5795c8f61f30f..5106d619f95e5 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml @@ -10,8 +10,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 preemptible: true timeout_in_minutes: 300 @@ -32,8 +30,6 @@ steps: # imageProject: elastic-images-prod # provider: gcp # enableNestedVirtualization: true -# localSsds: 1 -# localSsdInterface: nvme # machineType: n2-standard-4 # timeout_in_minutes: 120 # retry: @@ -49,8 +45,6 @@ steps: # imageProject: elastic-images-prod # provider: gcp # enableNestedVirtualization: true -# localSsds: 1 -# localSsdInterface: nvme # machineType: n2-standard-4 # timeout_in_minutes: 120 # retry: @@ -66,8 +60,6 @@ steps: # imageProject: elastic-images-prod # provider: gcp # enableNestedVirtualization: true -# localSsds: 1 -# localSsdInterface: nvme # machineType: n2-standard-4 # timeout_in_minutes: 120 # retry: @@ -83,8 +75,6 @@ steps: # imageProject: elastic-images-prod # provider: gcp # enableNestedVirtualization: true -# localSsds: 1 -# localSsdInterface: nvme # machineType: n2-standard-4 # timeout_in_minutes: 120 # retry: @@ -100,8 +90,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 preemptible: true timeout_in_minutes: 120 @@ -118,8 +106,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 preemptible: true timeout_in_minutes: 120 @@ -136,8 +122,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 preemptible: true timeout_in_minutes: 120 @@ -157,8 +141,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 preemptible: true timeout_in_minutes: 300 diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_defend_workflows.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_defend_workflows.yml index e59ca507e4003..3d30e78583409 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_defend_workflows.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_defend_workflows.yml @@ -7,8 +7,6 @@ steps: imageProject: elastic-images-prod provider: gcp enableNestedVirtualization: true - localSsds: 1 - localSsdInterface: nvme machineType: n2-standard-4 timeout_in_minutes: 300 parallelism: 1 diff --git a/.buildkite/scripts/bootstrap.sh b/.buildkite/scripts/bootstrap.sh index b7576dda72f24..a126ad9132696 100755 --- a/.buildkite/scripts/bootstrap.sh +++ b/.buildkite/scripts/bootstrap.sh @@ -12,12 +12,18 @@ if [[ "${BOOTSTRAP_ALWAYS_FORCE_INSTALL:-}" ]]; then BOOTSTRAP_PARAMS+=(--force-install) fi -# Use the node_modules that is baked into the agent image, if it exists, as a cache +# Use the packages that are baked into the agent image, if they exist, as a cache # But only for agents not mounting the workspace on a local ssd or in memory # It actually ends up being slower to move all of the tiny files between the disks vs extracting archives from the yarn cache -if [[ -d ~/.kibana/node_modules && "$(pwd)" != *"/local-ssd/"* && "$(pwd)" != "/dev/shm"* ]]; then - echo "Using ~/.kibana/node_modules as a starting point" - mv ~/.kibana/node_modules ./ +if [[ "$(pwd)" != *"/local-ssd/"* && "$(pwd)" != "/dev/shm"* ]]; then + if [[ -d ~/.kibana/node_modules ]]; then + echo "Using ~/.kibana/node_modules as a starting point" + mv ~/.kibana/node_modules ./ + fi + if [[ -d ~/.kibana/.yarn-local-mirror ]]; then + echo "Using ~/.kibana/.yarn-local-mirror as a starting point" + mv ~/.kibana/.yarn-local-mirror ./ + fi fi if ! yarn kbn bootstrap "${BOOTSTRAP_PARAMS[@]}"; then diff --git a/.buildkite/scripts/common/setup_node.sh b/.buildkite/scripts/common/setup_node.sh index c6fbfeaee51bc..aac3d26702691 100755 --- a/.buildkite/scripts/common/setup_node.sh +++ b/.buildkite/scripts/common/setup_node.sh @@ -10,7 +10,6 @@ NODE_VERSION="$(cat "$KIBANA_DIR/.node-version")" export NODE_VERSION export NODE_DIR="$CACHE_DIR/node/$NODE_VERSION" export NODE_BIN_DIR="$NODE_DIR/bin" -export YARN_OFFLINE_CACHE="$CACHE_DIR/yarn-offline-cache" ## Install node for whatever the current os/arch are hostArch="$(command uname -m)" @@ -77,8 +76,6 @@ if [[ ! $(which yarn) || $(yarn --version) != "$YARN_VERSION" ]]; then npm_install_global yarn "^$YARN_VERSION" fi -yarn config set yarn-offline-mirror "$YARN_OFFLINE_CACHE" - YARN_GLOBAL_BIN=$(yarn global bin) export YARN_GLOBAL_BIN export PATH="$PATH:$YARN_GLOBAL_BIN" diff --git a/.buildkite/scripts/copy_es_snapshot_cache.sh b/.buildkite/scripts/copy_es_snapshot_cache.sh new file mode 100755 index 0000000000000..d2b325168482a --- /dev/null +++ b/.buildkite/scripts/copy_es_snapshot_cache.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# If cached snapshots are baked into the agent, copy them into our workspace first +# We are doing this rather than simply changing the ES base path because many workers +# run with the workspace mounted in memory or on a local ssd +cacheDir="$ES_CACHE_DIR/cache" +if [[ -d "$cacheDir" ]]; then + mkdir -p .es/cache + echo "--- Copying ES snapshot cache" + echo "Copying cached snapshots from $cacheDir to .es/cache" + cp -R "$cacheDir"/* .es/cache/ +fi diff --git a/.buildkite/scripts/lifecycle/post_build.sh b/.buildkite/scripts/lifecycle/post_build.sh index 3ca36e9d04b78..f35e0b97447f5 100755 --- a/.buildkite/scripts/lifecycle/post_build.sh +++ b/.buildkite/scripts/lifecycle/post_build.sh @@ -5,7 +5,7 @@ set -euo pipefail BUILD_SUCCESSFUL=$(ts-node "$(dirname "${0}")/build_status.ts") export BUILD_SUCCESSFUL -if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then +if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]] && [[ "${ELASTIC_GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then "$(dirname "${0}")/commit_status_complete.sh" fi diff --git a/.buildkite/scripts/lifecycle/post_command.sh b/.buildkite/scripts/lifecycle/post_command.sh index 26578f9b9cce1..f90a4b451be1f 100755 --- a/.buildkite/scripts/lifecycle/post_command.sh +++ b/.buildkite/scripts/lifecycle/post_command.sh @@ -35,6 +35,7 @@ if [[ "$IS_TEST_EXECUTION_STEP" == "true" ]]; then buildkite-agent artifact upload 'x-pack/test/functional/failure_debug/html/*.html' buildkite-agent artifact upload '.es/**/*.hprof' buildkite-agent artifact upload 'data/es_debug_*.tar.gz' + buildkite-agent artifact upload '.es/es*.log' if [[ $BUILDKITE_COMMAND_EXIT_STATUS -ne 0 ]]; then if [[ $BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG == 'elasticsearch-serverless-intake' ]]; then diff --git a/.buildkite/scripts/lifecycle/pre_build.sh b/.buildkite/scripts/lifecycle/pre_build.sh index b8ccaf04f9bb9..31e569b10ca59 100755 --- a/.buildkite/scripts/lifecycle/pre_build.sh +++ b/.buildkite/scripts/lifecycle/pre_build.sh @@ -4,7 +4,7 @@ set -euo pipefail source .buildkite/scripts/common/util.sh -if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then +if [[ "${GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]] && [[ "${ELASTIC_GITHUB_BUILD_COMMIT_STATUS_ENABLED:-}" != "true" ]]; then "$(dirname "${0}")/commit_status_start.sh" fi diff --git a/.buildkite/scripts/pipelines/pull_request/pipeline.ts b/.buildkite/scripts/pipelines/pull_request/pipeline.ts index 08d459ac5e7fd..9cf971125925c 100644 --- a/.buildkite/scripts/pipelines/pull_request/pipeline.ts +++ b/.buildkite/scripts/pipelines/pull_request/pipeline.ts @@ -298,6 +298,22 @@ const getPipeline = (filename: string, removeSteps = true) => { ); } + if ( + (await doAnyChangesMatch([ + /^x-pack\/packages\/kbn-cloud-security-posture/, + /^x-pack\/plugins\/cloud_security_posture/, + /^x-pack\/plugins\/security_solution/, + /^x-pack\/test\/security_solution_cypress/, + ])) || + GITHUB_PR_LABELS.includes('ci:all-cypress-suites') + ) { + pipeline.push( + getPipeline( + '.buildkite/pipelines/pull_request/security_solution/cloud_security_posture.yml' + ) + ); + } + pipeline.push(getPipeline('.buildkite/pipelines/pull_request/post_build.yml')); // remove duplicated steps diff --git a/.buildkite/scripts/steps/capture_oas_snapshot.sh b/.buildkite/scripts/steps/capture_oas_snapshot.sh deleted file mode 100755 index 79dfdd96c8fc6..0000000000000 --- a/.buildkite/scripts/steps/capture_oas_snapshot.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -source .buildkite/scripts/common/util.sh - -echo --- Capture OAS snapshot -cmd="node scripts/capture_oas_snapshot --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions" -if is_pr && ! is_auto_commit_disabled; then - cmd="$cmd --update" -fi - -if [[ $BUILDKITE_PULL_REQUEST != "false" && "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" != "main" ]] || [[ $BUILDKITE_PULL_REQUEST == "false" && "$BUILDKITE_BRANCH" != "main" ]]; then - cmd="$cmd --no-serverless" -fi - -eval "$cmd" -check_for_changed_files "$cmd" true \ No newline at end of file diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index 50ee0363ad93f..ce7dec4f36e8d 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -4,15 +4,13 @@ set -euo pipefail export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/bootstrap.sh +.buildkite/scripts/copy_es_snapshot_cache.sh if [[ "${FTR_ENABLE_FIPS_AGENT:-}" == "true" ]]; then .buildkite/scripts/steps/checks/verify_fips_enabled.sh fi .buildkite/scripts/steps/checks/saved_objects_compat_changes.sh .buildkite/scripts/steps/checks/saved_objects_definition_change.sh -.buildkite/scripts/steps/capture_oas_snapshot.sh .buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh .buildkite/scripts/steps/code_generation/security_solution_codegen.sh -.buildkite/scripts/steps/openapi_bundling/security_solution_openapi_bundling.sh .buildkite/scripts/steps/code_generation/osquery_codegen.sh -.buildkite/scripts/steps/openapi_bundling/final_merge.sh diff --git a/.buildkite/scripts/steps/checks/capture_oas_snapshot.sh b/.buildkite/scripts/steps/checks/capture_oas_snapshot.sh new file mode 100755 index 0000000000000..59ea3553bd457 --- /dev/null +++ b/.buildkite/scripts/steps/checks/capture_oas_snapshot.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/common/util.sh + +.buildkite/scripts/bootstrap.sh +.buildkite/scripts/copy_es_snapshot_cache.sh + +echo --- Capture OAS snapshot +cmd="node scripts/capture_oas_snapshot --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces" +if is_pr && ! is_auto_commit_disabled; then + cmd="$cmd --update" +fi + +if [[ $BUILDKITE_PULL_REQUEST != "false" && "$BUILDKITE_PULL_REQUEST_BASE_BRANCH" != "main" ]] || [[ $BUILDKITE_PULL_REQUEST == "false" && "$BUILDKITE_BRANCH" != "main" ]]; then + cmd="$cmd --no-serverless" +fi + +run_check() { + eval "$cmd" +} + +retry 5 15 run_check + +check_for_changed_files "$cmd" true + +.buildkite/scripts/steps/openapi_bundling/security_solution_openapi_bundling.sh +.buildkite/scripts/steps/openapi_bundling/final_merge.sh diff --git a/.buildkite/scripts/steps/checks/i18n.sh b/.buildkite/scripts/steps/checks/i18n.sh index 090512e391d7c..f23ed2d63759e 100755 --- a/.buildkite/scripts/steps/checks/i18n.sh +++ b/.buildkite/scripts/steps/checks/i18n.sh @@ -5,4 +5,4 @@ set -euo pipefail source .buildkite/scripts/common/util.sh echo --- Check i18n -node scripts/i18n_check +node scripts/i18n_check --quiet diff --git a/.buildkite/scripts/steps/checks/quick_checks.txt b/.buildkite/scripts/steps/checks/quick_checks.txt index e0196950b4a75..9bd9224673905 100644 --- a/.buildkite/scripts/steps/checks/quick_checks.txt +++ b/.buildkite/scripts/steps/checks/quick_checks.txt @@ -1,4 +1,3 @@ -.buildkite/scripts/steps/checks/precommit_hook.sh .buildkite/scripts/steps/checks/ts_projects.sh .buildkite/scripts/steps/checks/packages.sh .buildkite/scripts/steps/checks/bazel_packages.sh diff --git a/.buildkite/scripts/steps/cloud/build_and_deploy.sh b/.buildkite/scripts/steps/cloud/build_and_deploy.sh index 6615d0ec4cdd4..4b0073ebe87b8 100755 --- a/.buildkite/scripts/steps/cloud/build_and_deploy.sh +++ b/.buildkite/scripts/steps/cloud/build_and_deploy.sh @@ -51,7 +51,7 @@ fi if is_pr_with_label "ci:cloud-redeploy"; then echo "--- Shutdown Previous Deployment" CLOUD_DEPLOYMENT_ID=$(ecctl deployment list --output json | jq -r '.deployments[] | select(.name == "'$CLOUD_DEPLOYMENT_NAME'") | .id') - if [ -z "${CLOUD_DEPLOYMENT_ID}" ]; then + if [ -z "${CLOUD_DEPLOYMENT_ID}" ] || [ "${CLOUD_DEPLOYMENT_ID}" == "null" ]; then echo "No deployment to remove" else echo "Shutting down previous deployment..." diff --git a/.buildkite/scripts/steps/cloud/deploy.json b/.buildkite/scripts/steps/cloud/deploy.json index d139af131f0a9..33ce6b752ad9d 100644 --- a/.buildkite/scripts/steps/cloud/deploy.json +++ b/.buildkite/scripts/steps/cloud/deploy.json @@ -7,7 +7,7 @@ "plan": { "cluster_topology": [ { - "instance_configuration_id": "gcp.integrationsserver.1", + "instance_configuration_id": "gcp.integrationsserver.n2.68x32x45", "zone_count": 1, "size": { "resource": "memory", @@ -32,7 +32,7 @@ "cluster_topology": [ { "zone_count": 1, - "instance_configuration_id": "gcp.coordinating.1", + "instance_configuration_id": "gcp.es.coordinating.n2.68x16x45", "node_roles": [ "ingest", "remote_cluster_client" @@ -50,7 +50,7 @@ "data": "hot" } }, - "instance_configuration_id": "gcp.data.highio.1", + "instance_configuration_id": "gcp.es.datahot.n2.68x32x45", "node_roles": [ "master", "ingest", @@ -72,7 +72,7 @@ "data": "warm" } }, - "instance_configuration_id": "gcp.data.highstorage.1", + "instance_configuration_id": "gcp.es.datawarm.n2.68x10x190", "node_roles": [ "data_warm", "remote_cluster_client" @@ -90,7 +90,7 @@ "data": "cold" } }, - "instance_configuration_id": "gcp.data.highstorage.1", + "instance_configuration_id": "gcp.es.datacold.n2.68x10x190", "node_roles": [ "data_cold", "remote_cluster_client" @@ -108,7 +108,7 @@ "data": "frozen" } }, - "instance_configuration_id": "gcp.es.datafrozen.n1.64x10x95", + "instance_configuration_id": "gcp.es.datafrozen.n2.68x10x90", "node_roles": [ "data_frozen" ], @@ -120,7 +120,7 @@ }, { "zone_count": 1, - "instance_configuration_id": "gcp.master.1", + "instance_configuration_id": "gcp.es.master.n2.68x32x45", "node_roles": [ "master", "remote_cluster_client" @@ -142,7 +142,7 @@ }, "autoscaling_tier_override": true, "id": "ml", - "instance_configuration_id": "gcp.ml.1", + "instance_configuration_id": "gcp.es.ml.n2.68x32x45", "node_roles": [ "ml", "remote_cluster_client" @@ -155,7 +155,7 @@ "enabled_built_in_plugins": [] }, "deployment_template": { - "id": "gcp-io-optimized-v2" + "id": "gcp-cpu-optimized" } }, "ref_id": "main-elasticsearch" @@ -173,7 +173,7 @@ "appserver": true, "worker": true }, - "instance_configuration_id": "gcp.enterprisesearch.1", + "instance_configuration_id": "gcp.enterprisesearch.n2.68x32x45", "zone_count": 1, "size": { "resource": "memory", @@ -195,7 +195,7 @@ "plan": { "cluster_topology": [ { - "instance_configuration_id": "gcp.kibana.1", + "instance_configuration_id": "gcp.kibana.n2.68x32x45", "zone_count": 1, "size": { "value": 2048, diff --git a/.buildkite/scripts/steps/esql_generate_function_metadata.sh b/.buildkite/scripts/steps/esql_generate_function_metadata.sh index 837a962b3c42b..15d0087594696 100755 --- a/.buildkite/scripts/steps/esql_generate_function_metadata.sh +++ b/.buildkite/scripts/steps/esql_generate_function_metadata.sh @@ -2,7 +2,7 @@ set -euo pipefail VALIDATION_PACKAGE_DIR="packages/kbn-esql-validation-autocomplete" -EDITOR_PACKAGE_DIR="packages/kbn-text-based-editor" +EDITOR_PACKAGE_DIR="packages/kbn-language-documentation" GIT_SCOPE="$VALIDATION_PACKAGE_DIR/**/* $EDITOR_PACKAGE_DIR/**/*" report_main_step () { diff --git a/.buildkite/scripts/steps/functional/apm_cypress.sh b/.buildkite/scripts/steps/functional/apm_cypress.sh index 976c551dfe19a..1fc10089e8eb4 100755 --- a/.buildkite/scripts/steps/functional/apm_cypress.sh +++ b/.buildkite/scripts/steps/functional/apm_cypress.sh @@ -8,6 +8,7 @@ APM_CYPRESS_RECORD_KEY="$(vault_get apm-cypress-dashboard-record-key CYPRESS_REC .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-apm-cypress IS_FLAKY_TEST_RUNNER=${CLI_COUNT:-0} diff --git a/.buildkite/scripts/steps/functional/cloud_security_posture.sh b/.buildkite/scripts/steps/functional/cloud_security_posture.sh new file mode 100644 index 0000000000000..bea407e6a5b1c --- /dev/null +++ b/.buildkite/scripts/steps/functional/cloud_security_posture.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/steps/functional/common.sh + +export JOB=kibana-cloud-security-posture-cypress +export KIBANA_INSTALL_DIR=${KIBANA_BUILD_LOCATION} + +echo "--- Cloud Security Posture Workflows Cypress tests" + +cd x-pack/test/security_solution_cypress + +set +e + +yarn cypress:cloud_security_posture:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/cloud_security_posture_serverless.sh b/.buildkite/scripts/steps/functional/cloud_security_posture_serverless.sh new file mode 100644 index 0000000000000..57c9be111a151 --- /dev/null +++ b/.buildkite/scripts/steps/functional/cloud_security_posture_serverless.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/steps/functional/common.sh + +export JOB=kibana-cloud-security-posture-serverless-cypress +export KIBANA_INSTALL_DIR=${KIBANA_BUILD_LOCATION} + +echo "--- Cloud Security Posture Workflows Cypress tests on Serverless" + +cd x-pack/test/security_solution_cypress + +set +e + +yarn cypress:cloud_security_posture:run:serverless; status=$?; yarn junit:merge || :; exit $status diff --git a/.buildkite/scripts/steps/functional/common.sh b/.buildkite/scripts/steps/functional/common.sh index edb618f692093..5a58594404b15 100755 --- a/.buildkite/scripts/steps/functional/common.sh +++ b/.buildkite/scripts/steps/functional/common.sh @@ -8,17 +8,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh - -# If cached snapshots are baked into the agent, copy them into our workspace first -# We are doing this rather than simply changing the ES base path because many workers -# run with the workspace mounted in memory or on a local ssd -cacheDir="$ES_CACHE_DIR/cache" -if [[ -d "$cacheDir" ]]; then - mkdir -p .es/cache - echo "--- Copying ES snapshot cache" - echo "Copying cached snapshots from $cacheDir to .es/cache" - cp -R "$cacheDir"/* .es/cache/ -fi +.buildkite/scripts/copy_es_snapshot_cache.sh is_test_execution_step diff --git a/.buildkite/scripts/steps/functional/defend_workflows_burn.sh b/.buildkite/scripts/steps/functional/defend_workflows_burn.sh index 643a8d9f4ec53..6a97ba4e82b33 100644 --- a/.buildkite/scripts/steps/functional/defend_workflows_burn.sh +++ b/.buildkite/scripts/steps/functional/defend_workflows_burn.sh @@ -5,6 +5,7 @@ set -euo pipefail source .buildkite/scripts/steps/functional/common.sh .buildkite/scripts/bootstrap.sh +.buildkite/scripts/copy_es_snapshot_cache.sh node scripts/build_kibana_platform_plugins.js export JOB=kibana-defend-workflows-cypress diff --git a/.buildkite/scripts/steps/functional/defend_workflows_serverless_burn.sh b/.buildkite/scripts/steps/functional/defend_workflows_serverless_burn.sh index 3f85a9b051845..4bebee15953e6 100644 --- a/.buildkite/scripts/steps/functional/defend_workflows_serverless_burn.sh +++ b/.buildkite/scripts/steps/functional/defend_workflows_serverless_burn.sh @@ -5,6 +5,7 @@ set -euo pipefail source .buildkite/scripts/steps/functional/common.sh .buildkite/scripts/bootstrap.sh +.buildkite/scripts/copy_es_snapshot_cache.sh node scripts/build_kibana_platform_plugins.js export JOB=kibana-defend-workflows-serverless-cypress diff --git a/.buildkite/scripts/steps/functional/exploratory_view_plugin.sh b/.buildkite/scripts/steps/functional/exploratory_view_plugin.sh index d14033883312f..adee8986bc746 100755 --- a/.buildkite/scripts/steps/functional/exploratory_view_plugin.sh +++ b/.buildkite/scripts/steps/functional/exploratory_view_plugin.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-observability-plugin diff --git a/.buildkite/scripts/steps/functional/fleet_cypress.sh b/.buildkite/scripts/steps/functional/fleet_cypress.sh index 43eb329f860b7..e050b73a91c3e 100755 --- a/.buildkite/scripts/steps/functional/fleet_cypress.sh +++ b/.buildkite/scripts/steps/functional/fleet_cypress.sh @@ -12,4 +12,4 @@ echo "--- Fleet Cypress tests (Chrome)" cd x-pack/plugins/fleet set +e -yarn cypress:run:reporter; status=$?; yarn junit:merge || :; exit $status +yarn cypress:run:reporter; status=$?; yarn cypress_space_awareness:run:reporter; space_status=$?; yarn junit:merge || :; [ "$status" -ne 0 ] && exit $status || [ "$space_status" -ne 0 ] && exit $space_status || exit 0 diff --git a/.buildkite/scripts/steps/functional/observability_onboarding_cypress.sh b/.buildkite/scripts/steps/functional/observability_onboarding_cypress.sh index 095ef5c723392..802bb447f72d2 100644 --- a/.buildkite/scripts/steps/functional/observability_onboarding_cypress.sh +++ b/.buildkite/scripts/steps/functional/observability_onboarding_cypress.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-observability-onboarding-cypress diff --git a/.buildkite/scripts/steps/functional/performance_playwright.sh b/.buildkite/scripts/steps/functional/performance_playwright.sh index d84bf77ed54cf..2787d6f5b68a0 100644 --- a/.buildkite/scripts/steps/functional/performance_playwright.sh +++ b/.buildkite/scripts/steps/functional/performance_playwright.sh @@ -39,8 +39,13 @@ if [ "$BUILDKITE_PIPELINE_SLUG" == "kibana-performance-data-set-extraction" ]; t node scripts/run_performance.js --kibana-install-dir "$KIBANA_BUILD_LOCATION" --skip-warmup else # pipeline should use bare metal static worker - echo "--- Running performance tests" - node scripts/run_performance.js --kibana-install-dir "$KIBANA_BUILD_LOCATION" + if [[ -z "${JOURNEYS_GROUP+x}" ]]; then + echo "--- Running performance tests" + node scripts/run_performance.js --kibana-install-dir "$KIBANA_BUILD_LOCATION" + else + echo "--- Running performance tests: '$JOURNEYS_GROUP' group" + node scripts/run_performance.js --kibana-install-dir "$KIBANA_BUILD_LOCATION" --group "$JOURNEYS_GROUP" + fi fi echo "--- Upload journey step screenshots" diff --git a/.buildkite/scripts/steps/functional/profiling_cypress.sh b/.buildkite/scripts/steps/functional/profiling_cypress.sh index daad169069ae3..4e5fb770a12b4 100644 --- a/.buildkite/scripts/steps/functional/profiling_cypress.sh +++ b/.buildkite/scripts/steps/functional/profiling_cypress.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-profiling-cypress diff --git a/.buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh b/.buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh deleted file mode 100644 index 7b16afa214fed..0000000000000 --- a/.buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -source .buildkite/scripts/steps/functional/common.sh - -export JOB=kibana-serverless-security-cypress -export KIBANA_INSTALL_DIR=${KIBANA_BUILD_LOCATION} - -echo "--- Security Defend Workflows Serverless Cypress" - -yarn --cwd x-pack/test_serverless/functional/test_suites/security/cypress cypress:run diff --git a/.buildkite/scripts/steps/functional/slo_plugin_e2e.sh b/.buildkite/scripts/steps/functional/slo_plugin_e2e.sh index 95007fbff85bf..0492e41ae7041 100755 --- a/.buildkite/scripts/steps/functional/slo_plugin_e2e.sh +++ b/.buildkite/scripts/steps/functional/slo_plugin_e2e.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-ux-plugin-synthetics diff --git a/.buildkite/scripts/steps/functional/synthetics.sh b/.buildkite/scripts/steps/functional/synthetics.sh index 3d22131701762..aa388096fc404 100644 --- a/.buildkite/scripts/steps/functional/synthetics.sh +++ b/.buildkite/scripts/steps/functional/synthetics.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-uptime-playwright diff --git a/.buildkite/scripts/steps/functional/synthetics_plugin.sh b/.buildkite/scripts/steps/functional/synthetics_plugin.sh index 5ad02174ccd26..3e31b92011ad2 100755 --- a/.buildkite/scripts/steps/functional/synthetics_plugin.sh +++ b/.buildkite/scripts/steps/functional/synthetics_plugin.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-synthetics-plugin diff --git a/.buildkite/scripts/steps/functional/uptime_plugin.sh b/.buildkite/scripts/steps/functional/uptime_plugin.sh index 3122953862c73..b4cdd0fb5738a 100755 --- a/.buildkite/scripts/steps/functional/uptime_plugin.sh +++ b/.buildkite/scripts/steps/functional/uptime_plugin.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-uptime-plugin diff --git a/.buildkite/scripts/steps/functional/ux_synthetics_e2e.sh b/.buildkite/scripts/steps/functional/ux_synthetics_e2e.sh index dbb3289f604e5..bcc5b71149607 100755 --- a/.buildkite/scripts/steps/functional/ux_synthetics_e2e.sh +++ b/.buildkite/scripts/steps/functional/ux_synthetics_e2e.sh @@ -6,6 +6,7 @@ source .buildkite/scripts/common/util.sh .buildkite/scripts/bootstrap.sh .buildkite/scripts/download_build_artifacts.sh +.buildkite/scripts/copy_es_snapshot_cache.sh export JOB=kibana-ux-plugin-synthetics diff --git a/.buildkite/scripts/steps/lint.sh b/.buildkite/scripts/steps/lint.sh index 05eb3bb602d84..70ab323c9f731 100755 --- a/.buildkite/scripts/steps/lint.sh +++ b/.buildkite/scripts/steps/lint.sh @@ -15,9 +15,9 @@ echo '--- Lint: eslint' # after possibly commiting fixed files to the repo set +e; if is_pr && ! is_auto_commit_disabled; then - git ls-files | grep -E '\.(js|mjs|ts|tsx)$' | xargs -n 250 -P 4 node scripts/eslint --no-cache --fix + git ls-files | grep -E '\.(js|mjs|ts|tsx)$' | xargs -n 250 -P 8 node scripts/eslint --no-cache --fix else - git ls-files | grep -E '\.(js|mjs|ts|tsx)$' | xargs -n 250 -P 4 node scripts/eslint --no-cache + git ls-files | grep -E '\.(js|mjs|ts|tsx)$' | xargs -n 250 -P 8 node scripts/eslint --no-cache fi eslint_exit=$? diff --git a/.buildkite/scripts/steps/openapi_bundling/final_merge.sh b/.buildkite/scripts/steps/openapi_bundling/final_merge.sh index 41ca47aef24ee..83dba04c350d2 100755 --- a/.buildkite/scripts/steps/openapi_bundling/final_merge.sh +++ b/.buildkite/scripts/steps/openapi_bundling/final_merge.sh @@ -7,3 +7,5 @@ source .buildkite/scripts/common/util.sh echo --- Merge Kibana OpenAPI specs (cd oas_docs && make api-docs && make api-docs-lint) + +check_for_changed_files "make api-docs" true diff --git a/.buildkite/scripts/steps/serverless/deploy.sh b/.buildkite/scripts/steps/serverless/deploy.sh index d30723393dacd..cbbc6c6c664dd 100644 --- a/.buildkite/scripts/steps/serverless/deploy.sh +++ b/.buildkite/scripts/steps/serverless/deploy.sh @@ -56,7 +56,7 @@ deploy() { PROJECT_ID=$(jq -r '[.items[] | select(.name == "'$PROJECT_NAME'")] | .[0].id' $PROJECT_EXISTS_LOGS) if is_pr_with_label "ci:project-redeploy"; then - if [ -z "${PROJECT_ID}" ]; then + if [ -z "${PROJECT_ID}" ] || [ "${PROJECT_ID}" == "null" ]; then echo "No project to remove" else echo "Shutting down previous project..." diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.ts b/.buildkite/scripts/steps/storybooks/build_and_upload.ts index 96208bc02b310..393b89a97acb2 100644 --- a/.buildkite/scripts/steps/storybooks/build_and_upload.ts +++ b/.buildkite/scripts/steps/storybooks/build_and_upload.ts @@ -18,11 +18,9 @@ const STORYBOOKS = [ 'canvas', 'cases', 'cell_actions', - 'cloud_chat', 'coloring', 'chart_icons', 'content_management_examples', - 'controls', 'custom_integrations', 'dashboard_enhanced', 'dashboard', @@ -45,6 +43,7 @@ const STORYBOOKS = [ 'lists', 'observability', 'observability_ai_assistant', + 'observability_shared', 'presentation', 'security_solution', 'security_solution_packages', @@ -55,7 +54,7 @@ const STORYBOOKS = [ 'language_documentation_popover', 'unified_search', 'random_sampling', - 'text_based_editor', + 'esql_editor', ]; const GITHUB_CONTEXT = 'Build and Publish Storybooks'; diff --git a/.buildkite/scripts/steps/test/ftr_configs.sh b/.buildkite/scripts/steps/test/ftr_configs.sh index e9500a2244707..67fbfd9c95b20 100755 --- a/.buildkite/scripts/steps/test/ftr_configs.sh +++ b/.buildkite/scripts/steps/test/ftr_configs.sh @@ -57,6 +57,19 @@ while read -r config; do start=$(date +%s) + if [[ "${USE_CHROME_BETA:-}" =~ ^(1|true)$ ]]; then + echo "USE_CHROME_BETA was set - using google-chrome-beta" + export TEST_BROWSER_BINARY_PATH="$(which google-chrome-beta)" + + # download the beta version of chromedriver + export CHROMEDRIVER_VERSION=$(curl https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json -s | jq -r '.channels.Beta.version') + export DETECT_CHROMEDRIVER_VERSION=false + node node_modules/chromedriver/install.js --chromedriver-force-download + + # set annotation on the build + buildkite-agent annotate --style info --context chrome-beta "This build uses Google Chrome Beta @ ${CHROMEDRIVER_VERSION}" + fi + # prevent non-zero exit code from breaking the loop set +e; node ./scripts/functional_tests \ diff --git a/.buildkite/scripts/steps/test/jest_integration.sh b/.buildkite/scripts/steps/test/jest_integration.sh index fd7b9a1d6ad54..83f9509f362ca 100755 --- a/.buildkite/scripts/steps/test/jest_integration.sh +++ b/.buildkite/scripts/steps/test/jest_integration.sh @@ -7,6 +7,7 @@ source .buildkite/scripts/common/util.sh is_test_execution_step .buildkite/scripts/bootstrap.sh +.buildkite/scripts/copy_es_snapshot_cache.sh echo '--- Jest Integration Tests' .buildkite/scripts/steps/test/jest_parallel.sh jest.integration.config.js diff --git a/.eslintrc.js b/.eslintrc.js index 797b84522df3f..e46dde5a3c56f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -974,10 +974,17 @@ module.exports = { '@kbn/telemetry/event_generating_elements_should_be_instrumented': 'error', }, }, + { + files: ['x-pack/plugins/search*/**/*.tsx', 'x-pack/packages/search/**/*.tsx'], + rules: { + '@kbn/telemetry/event_generating_elements_should_be_instrumented': 'warn', + }, + }, { files: [ 'x-pack/plugins/observability_solution/**/!(*.stories.tsx|*.test.tsx|*.storybook_decorator.tsx|*.mock.tsx)', 'src/plugins/ai_assistant_management/**/!(*.stories.tsx|*.test.tsx|*.storybook_decorator.tsx|*.mock.tsx)', + 'x-pack/packages/observability/logs_overview/**/!(*.stories.tsx|*.test.tsx|*.storybook_decorator.tsx|*.mock.tsx)', ], rules: { '@kbn/i18n/strings_should_be_translated_with_i18n': 'warn', @@ -1814,9 +1821,23 @@ module.exports = { files: [ 'src/plugins/interactive_setup/**/*.{js,mjs,ts,tsx}', 'test/interactive_setup_api_integration/**/*.{js,mjs,ts,tsx}', + 'test/interactive_setup_functional/**/*.{js,mjs,ts,tsx}', + + 'packages/kbn-mock-idp-plugin/**/*.{js,mjs,ts,tsx}', + 'packages/kbn-mock-idp-utils/**/*.{js,mjs,ts,tsx}', + 'packages/kbn-security-hardening/**/*.{js,mjs,ts,tsx}', + 'packages/kbn-user-profile-components/**/*.{js,mjs,ts,tsx}', + 'x-pack/plugins/encrypted_saved_objects/**/*.{js,mjs,ts,tsx}', + 'x-pack/test/encrypted_saved_objects_api_integration/**/*.{js,mjs,ts,tsx}', + 'x-pack/plugins/security/**/*.{js,mjs,ts,tsx}', + 'x-pack/packages/security/**/*.{js,mjs,ts,tsx}', + 'x-pack/test/security_api_integration/**/*.{js,mjs,ts,tsx}', + 'x-pack/test/security_functional/**/*.{js,mjs,ts,tsx}', + 'x-pack/plugins/spaces/**/*.{js,mjs,ts,tsx}', + 'x-pack/test/spaces_api_integration/**/*.{js,mjs,ts,tsx}', ], rules: { '@typescript-eslint/consistent-type-imports': 1, diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 60a15b9372e81..f62e66c751251 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,11 +6,12 @@ #### x-pack/test/alerting_api_integration/common/plugins/aad @elastic/response-ops -packages/kbn-ace @elastic/kibana-management x-pack/plugins/actions @elastic/response-ops x-pack/test/alerting_api_integration/common/plugins/actions_simulators @elastic/response-ops packages/kbn-actions-types @elastic/response-ops src/plugins/advanced_settings @elastic/appex-sharedux @elastic/kibana-management +x-pack/packages/kbn-ai-assistant @elastic/search-kibana +x-pack/packages/kbn-ai-assistant-common @elastic/search-kibana src/plugins/ai_assistant_management/selection @elastic/obs-knowledge-team x-pack/packages/ml/aiops_change_point_detection @elastic/ml-ui x-pack/packages/ml/aiops_common @elastic/ml-ui @@ -89,8 +90,9 @@ x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core x-pack/test/cloud_integration/plugins/saml_provider @elastic/kibana-core x-pack/plugins/cloud_integrations/cloud_links @elastic/kibana-core x-pack/plugins/cloud @elastic/kibana-core -x-pack/packages/kbn-cloud-security-posture @elastic/kibana-cloud-security-posture -x-pack/packages/kbn-cloud-security-posture-common @elastic/kibana-cloud-security-posture +x-pack/packages/kbn-cloud-security-posture/public @elastic/kibana-cloud-security-posture +x-pack/packages/kbn-cloud-security-posture/common @elastic/kibana-cloud-security-posture +x-pack/packages/kbn-cloud-security-posture/graph @elastic/kibana-cloud-security-posture x-pack/plugins/cloud_security_posture @elastic/kibana-cloud-security-posture packages/shared-ux/code_editor/impl @elastic/appex-sharedux packages/shared-ux/code_editor/mocks @elastic/appex-sharedux @@ -183,6 +185,12 @@ packages/core/execution-context/core-execution-context-server-mocks @elastic/kib packages/core/fatal-errors/core-fatal-errors-browser @elastic/kibana-core packages/core/fatal-errors/core-fatal-errors-browser-internal @elastic/kibana-core packages/core/fatal-errors/core-fatal-errors-browser-mocks @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-browser @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-browser-internal @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-browser-mocks @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-server @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-server-internal @elastic/kibana-core +packages/core/feature-flags/core-feature-flags-server-mocks @elastic/kibana-core test/plugin_functional/plugins/core_history_block @elastic/kibana-core packages/core/http/core-http-browser @elastic/kibana-core packages/core/http/core-http-browser-internal @elastic/kibana-core @@ -348,6 +356,7 @@ x-pack/plugins/data_quality @elastic/obs-ux-logs-team test/plugin_functional/plugins/data_search @elastic/kibana-data-discovery packages/kbn-data-service @elastic/kibana-visualizations @elastic/kibana-data-discovery packages/kbn-data-stream-adapter @elastic/security-threat-hunting-explore +x-pack/plugins/data_usage @elastic/obs-ai-assistant @elastic/security-solution src/plugins/data_view_editor @elastic/kibana-data-discovery examples/data_view_field_editor_example @elastic/kibana-data-discovery src/plugins/data_view_field_editor @elastic/kibana-data-discovery @@ -402,7 +411,7 @@ x-pack/plugins/enterprise_search @elastic/search-kibana x-pack/plugins/observability_solution/entities_data_access @elastic/obs-entities x-pack/packages/kbn-entities-schema @elastic/obs-entities x-pack/test/api_integration/apis/entity_manager/fixture_plugin @elastic/obs-entities -x-pack/plugins/observability_solution/entity_manager @elastic/obs-entities +x-pack/plugins/entity_manager @elastic/obs-entities examples/error_boundary @elastic/appex-sharedux packages/kbn-es @elastic/kibana-operations packages/kbn-es-archiver @elastic/kibana-operations @elastic/appex-qa @@ -422,6 +431,7 @@ src/plugins/esql @elastic/kibana-esql packages/kbn-esql-ast @elastic/kibana-esql examples/esql_ast_inspector @elastic/kibana-esql src/plugins/esql_datagrid @elastic/kibana-esql +packages/kbn-esql-editor @elastic/kibana-esql packages/kbn-esql-utils @elastic/kibana-esql packages/kbn-esql-validation-autocomplete @elastic/kibana-esql examples/esql_validation_example @elastic/kibana-esql @@ -453,8 +463,10 @@ examples/expressions_explorer @elastic/kibana-visualizations src/plugins/expressions @elastic/kibana-visualizations packages/kbn-failed-test-reporter-cli @elastic/kibana-operations @elastic/appex-qa examples/feature_control_examples @elastic/kibana-security +examples/feature_flags_example @elastic/kibana-core x-pack/test/plugin_api_integration/plugins/feature_usage_test @elastic/kibana-security x-pack/plugins/features @elastic/kibana-core +x-pack/test/security_api_integration/plugins/features_provider @elastic/kibana-security x-pack/test/functional_execution_context/plugins/alerts @elastic/kibana-core examples/field_formats_example @elastic/kibana-data-discovery src/plugins/field_formats @elastic/kibana-data-discovery @@ -508,8 +520,8 @@ src/plugins/image_embeddable @elastic/appex-sharedux packages/kbn-import-locator @elastic/kibana-operations packages/kbn-import-resolver @elastic/kibana-operations x-pack/plugins/index_lifecycle_management @elastic/kibana-management -x-pack/packages/index-management @elastic/kibana-management x-pack/plugins/index_management @elastic/kibana-management +x-pack/packages/index-management/index_management_shared_types @elastic/kibana-management test/plugin_functional/plugins/index_patterns @elastic/kibana-data-discovery x-pack/packages/ml/inference_integration_flyout @elastic/ml-ui x-pack/plugins/inference @elastic/appex-ai-infra @@ -545,7 +557,7 @@ src/plugins/kibana_usage_collection @elastic/kibana-core src/plugins/kibana_utils @elastic/appex-sharedux x-pack/plugins/kubernetes_security @elastic/kibana-cloud-security-posture x-pack/packages/kbn-langchain @elastic/security-generative-ai -packages/kbn-language-documentation-popover @elastic/kibana-esql +packages/kbn-language-documentation @elastic/kibana-esql x-pack/examples/lens_config_builder_example @elastic/kibana-visualizations packages/kbn-lens-embeddable-utils @elastic/obs-ux-infra_services-team @elastic/kibana-visualizations packages/kbn-lens-formula-docs @elastic/kibana-visualizations @@ -601,6 +613,7 @@ x-pack/packages/ml/data_view_utils @elastic/ml-ui x-pack/packages/ml/date_picker @elastic/ml-ui x-pack/packages/ml/date_utils @elastic/ml-ui x-pack/packages/ml/error_utils @elastic/ml-ui +x-pack/packages/ml/field_stats_flyout @elastic/ml-ui x-pack/packages/ml/in_memory_table @elastic/ml-ui x-pack/packages/ml/is_defined @elastic/ml-ui x-pack/packages/ml/is_populated_object @elastic/ml-ui @@ -608,6 +621,7 @@ x-pack/packages/ml/kibana_theme @elastic/ml-ui x-pack/packages/ml/local_storage @elastic/ml-ui x-pack/packages/ml/nested_property @elastic/ml-ui x-pack/packages/ml/number_utils @elastic/ml-ui +x-pack/packages/ml/parse_interval @elastic/ml-ui x-pack/plugins/ml @elastic/ml-ui x-pack/packages/ml/query_utils @elastic/ml-ui x-pack/packages/ml/random_sampler_utils @elastic/ml-ui @@ -619,6 +633,7 @@ x-pack/packages/ml/time_buckets @elastic/ml-ui x-pack/packages/ml/trained_models_utils @elastic/ml-ui x-pack/packages/ml/ui_actions @elastic/ml-ui x-pack/packages/ml/url_state @elastic/ml-ui +x-pack/packages/ml/validators @elastic/ml-ui packages/kbn-mock-idp-plugin @elastic/kibana-security packages/kbn-mock-idp-utils @elastic/kibana-security packages/kbn-monaco @elastic/appex-sharedux @@ -640,10 +655,12 @@ x-pack/packages/observability/alerting_test_data @elastic/obs-ux-management-team x-pack/test/cases_api_integration/common/plugins/observability @elastic/response-ops x-pack/packages/observability/get_padded_alert_time_range_util @elastic/obs-ux-management-team x-pack/plugins/observability_solution/observability_logs_explorer @elastic/obs-ux-logs-team +x-pack/packages/observability/logs_overview @elastic/obs-ux-logs-team x-pack/plugins/observability_solution/observability_onboarding/e2e @elastic/obs-ux-logs-team @elastic/obs-ux-onboarding-team x-pack/plugins/observability_solution/observability_onboarding @elastic/obs-ux-logs-team @elastic/obs-ux-onboarding-team x-pack/plugins/observability_solution/observability @elastic/obs-ux-management-team x-pack/plugins/observability_solution/observability_shared @elastic/observability-ui +x-pack/packages/observability/synthetics_test_data @elastic/obs-ux-management-team x-pack/packages/observability/observability_utils @elastic/observability-ui x-pack/test/security_api_integration/plugins/oidc_provider @elastic/kibana-security test/common/plugins/otel_metrics @elastic/obs-ux-infra_services-team @@ -670,6 +687,7 @@ packages/presentation/presentation_containers @elastic/kibana-presentation src/plugins/presentation_panel @elastic/kibana-presentation packages/presentation/presentation_publishing @elastic/kibana-presentation src/plugins/presentation_util @elastic/kibana-presentation +x-pack/packages/ai-infra/product-doc-artifact-builder @elastic/appex-ai-infra x-pack/plugins/observability_solution/profiling_data_access @elastic/obs-ux-infra_services-team x-pack/plugins/observability_solution/profiling @elastic/obs-ux-infra_services-team packages/kbn-profiling-utils @elastic/obs-ux-infra_services-team @@ -740,6 +758,8 @@ src/plugins/screenshot_mode @elastic/appex-sharedux x-pack/examples/screenshotting_example @elastic/appex-sharedux x-pack/plugins/screenshotting @elastic/kibana-reporting-services packages/kbn-screenshotting-server @elastic/appex-sharedux +packages/kbn-search-api-keys-components @elastic/search-kibana +packages/kbn-search-api-keys-server @elastic/search-kibana packages/kbn-search-api-panels @elastic/search-kibana x-pack/plugins/search_assistant @elastic/search-kibana packages/kbn-search-connectors @elastic/search-kibana @@ -753,11 +773,13 @@ x-pack/plugins/search_inference_endpoints @elastic/search-kibana x-pack/plugins/search_notebooks @elastic/search-kibana x-pack/plugins/search_playground @elastic/search-kibana packages/kbn-search-response-warnings @elastic/kibana-data-discovery +x-pack/packages/search/shared_ui @elastic/search-kibana packages/kbn-search-types @elastic/kibana-data-discovery x-pack/plugins/searchprofiler @elastic/kibana-management x-pack/test/security_api_integration/packages/helpers @elastic/kibana-security x-pack/packages/security/api_key_management @elastic/kibana-security x-pack/packages/security/authorization_core @elastic/kibana-security +x-pack/packages/security/authorization_core_common @elastic/kibana-security x-pack/packages/security/form_components @elastic/kibana-security packages/kbn-security-hardening @elastic/kibana-security x-pack/plugins/security @elastic/kibana-security @@ -911,7 +933,6 @@ test x-pack/test x-pack/performance @elastic/appex-qa x-pack/examples/testing_embedded_lens @elastic/kibana-visualizations -packages/kbn-text-based-editor @elastic/kibana-esql x-pack/examples/third_party_lens_navigation_prompt @elastic/kibana-visualizations x-pack/examples/third_party_vis_lens_example @elastic/kibana-visualizations x-pack/plugins/threat_intelligence @elastic/security-threat-hunting-investigations @@ -997,7 +1018,22 @@ packages/kbn-zod-helpers @elastic/security-detection-rule-management # The #CC# prefix delineates Code Coverage, # used for the 'team' designator within Kibana Stats +/x-pack/test/api_integration/apis/metrics_ui @elastic/obs-ux-logs-team @elastic/obs-ux-infra_services-team +x-pack/test_serverless/api_integration/test_suites/common/platform_security @elastic/kibana-security + +# Observability Entities Team (@elastic/obs-entities) +/x-pack/plugins/observability_solution/entities_data_access @elastic/obs-entities +/x-pack/packages/kbn-entities-schema @elastic/obs-entities +/x-pack/test/api_integration/apis/entity_manager/fixture_plugin @elastic/obs-entities +/x-pack/plugins/entity_manager @elastic/obs-entities +/x-pack/test/api_integration/apis/entity_manager @elastic/obs-entities + # Data Discovery +/x-pack/test/api_integration/apis/kibana/kql_telemetry @elastic/kibana-data-discovery @elastic/kibana-visualizations +/x-pack/test_serverless/functional/es_archives/pre_calculated_histogram @elastic/kibana-data-discovery +/x-pack/test_serverless/functional/es_archives/kibana_sample_data_flights_index_pattern @elastic/kibana-data-discovery +/x-pack/test_serverless/functional/test_suites/security/config.examples.ts @elastic/kibana-data-discovery +/x-pack/test_serverless/functional/test_suites/security/config.context_awareness.ts @elastic/kibana-data-discovery /test/accessibility/apps/discover.ts @elastic/kibana-data-discovery /test/api_integration/apis/data_views @elastic/kibana-data-discovery /test/api_integration/apis/data_view_field_editor @elastic/kibana-data-discovery @@ -1046,7 +1082,13 @@ packages/kbn-zod-helpers @elastic/security-detection-rule-management /x-pack/test_serverless/functional/test_suites/common/management/data_views @elastic/kibana-data-discovery src/plugins/discover/public/context_awareness/profile_providers/security @elastic/kibana-data-discovery @elastic/security-threat-hunting-investigations +# Platform Docs +/x-pack/test_serverless/functional/test_suites/security/screenshot_creation/index.ts @elastic/platform-docs +/x-pack/test_serverless/functional/test_suites/security/config.screenshots.ts @elastic/platform-docs + # Visualizations +/x-pack/test/accessibility/apps/group3/graph.ts @elastic/kibana-visualizations +/x-pack/test/accessibility/apps/group2/lens.ts @elastic/kibana-visualizations /src/plugins/visualize/ @elastic/kibana-visualizations /x-pack/test/functional/apps/lens @elastic/kibana-visualizations /x-pack/test/api_integration/apis/lens/ @elastic/kibana-visualizations @@ -1074,6 +1116,7 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql /docs/settings/reporting-settings.asciidoc @elastic/appex-sharedux /docs/setup/configuring-reporting.asciidoc @elastic/appex-sharedux /x-pack/test_serverless/**/test_suites/common/reporting/ @elastic/appex-sharedux +/x-pack/test/accessibility/apps/group3/reporting.ts @elastic/appex-sharedux ### Global Experience Tagging /x-pack/test/saved_object_tagging/ @elastic/appex-sharedux @@ -1095,9 +1138,11 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql ### Observability Plugins + # Observability AI Assistant x-pack/test/observability_ai_assistant_api_integration @elastic/obs-ai-assistant x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant +x-pack/test_serverless/**/test_suites/observability/ai_assistant @elastic/obs-ai-assistant # Infra Monitoring ## This plugin mostly contains the codebase for the infra services, but also includes some code for the Logs UI app. @@ -1129,7 +1174,10 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/plugins/observability_solution/infra/server/services @elastic/obs-ux-infra_services-team /x-pack/plugins/observability_solution/infra/server/usage @elastic/obs-ux-infra_services-team /x-pack/plugins/observability_solution/infra/server/utils @elastic/obs-ux-infra_services-team + ## Logs UI code exceptions -> @elastic/obs-ux-logs-team +/x-pack/test_serverless/functional/page_objects/svl_oblt_onboarding_stream_log_file.ts @elastic/obs-ux-logs-team +/x-pack/test_serverless/functional/page_objects/svl_oblt_onboarding_page.ts @elastic/obs-ux-logs-team /x-pack/plugins/observability_solution/infra/common/http_api/log_alerts @elastic/obs-ux-logs-team /x-pack/plugins/observability_solution/infra/common/http_api/log_analysis @elastic/obs-ux-logs-team /x-pack/plugins/observability_solution/infra/common/log_analysis @elastic/obs-ux-logs-team @@ -1155,6 +1203,9 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test/functional/apps/infra/logs @elastic/obs-ux-logs-team # Observability UX management team +/x-pack/test/api_integration/apis/slos @elastic/obs-ux-management-team +/x-pack/test/accessibility/apps/group1/uptime.ts @elastic/obs-ux-management-team +/x-pack/test/accessibility/apps/group3/observability.ts @elastic/obs-ux-management-team /x-pack/packages/observability/alert_details @elastic/obs-ux-management-team /x-pack/test/observability_functional @elastic/obs-ux-management-team /x-pack/plugins/observability_solution/infra/public/alerting @elastic/obs-ux-management-team @@ -1171,6 +1222,8 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test/functional/apps/monitoring @elastic/stack-monitoring /x-pack/test/api_integration/apis/monitoring @elastic/stack-monitoring /x-pack/test/api_integration/apis/monitoring_collection @elastic/stack-monitoring +/x-pack/test/accessibility/apps/group1/kibana_overview.ts @elastic/stack-monitoring +/x-pack/test/accessibility/apps/group3/stack_monitoring.ts @elastic/stack-monitoring # Fleet /x-pack/test/fleet_api_integration @elastic/fleet @@ -1201,7 +1254,8 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test/alerting_api_integration/observability/index.ts @elastic/obs-ux-management-team /x-pack/test_serverless/api_integration/test_suites/observability/synthetics @elastic/obs-ux-management-team -# Logs +# obs-ux-logs-team +/x-pack/test_serverless/api_integration/test_suites/observability/index.feature_flags.ts @elastic/obs-ux-logs-team /x-pack/test/api_integration/apis/logs_ui @elastic/obs-ux-logs-team /x-pack/test/dataset_quality_api_integration @elastic/obs-ux-logs-team /x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration @elastic/obs-ux-logs-team @@ -1211,6 +1265,7 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/test_serverless/functional/test_suites/observability/dataset_quality @elastic/obs-ux-logs-team /x-pack/test_serverless/functional/test_suites/observability/ @elastic/obs-ux-logs-team /src/plugins/unified_doc_viewer/public/components/doc_viewer_logs_overview @elastic/obs-ux-logs-team +/x-pack/test/api_integration/apis/logs_shared @elastic/obs-ux-logs-team # Observability onboarding tour /x-pack/plugins/observability_solution/observability_shared/public/components/tour @elastic/appex-sharedux @@ -1222,15 +1277,22 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant ### END Observability Plugins # Presentation +/x-pack/test/functional/apps/dashboard @elastic/kibana-presentation +/x-pack/test/accessibility/apps/group3/maps.ts @elastic/kibana-presentation +/x-pack/test/accessibility/apps/group1/dashboard_panel_options.ts @elastic/kibana-presentation +/x-pack/test/accessibility/apps/group1/dashboard_links.ts @elastic/kibana-presentation +/x-pack/test/accessibility/apps/group1/dashboard_controls.ts @elastic/kibana-presentation /test/functional/apps/dashboard/ @elastic/kibana-presentation /test/functional/apps/dashboard_elements/ @elastic/kibana-presentation /test/functional/services/dashboard/ @elastic/kibana-presentation /x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation /x-pack/test_serverless/functional/test_suites/search/dashboards/ @elastic/kibana-presentation /test/plugin_functional/test_suites/panel_actions @elastic/kibana-presentation +/x-pack/test/functional/es_archives/canvas/logstash_lens @elastic/kibana-presentation #CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation # Machine Learning +/x-pack/test/api_integration/apis/file_upload @elastic/ml-ui /x-pack/test/accessibility/apps/group2/ml.ts @elastic/ml-ui /x-pack/test/accessibility/apps/group3/ml_embeddables_in_dashboard.ts @elastic/ml-ui /x-pack/test/api_integration/apis/ml/ @elastic/ml-ui @@ -1289,8 +1351,26 @@ x-pack/test/observability_ai_assistant_functional @elastic/obs-ai-assistant /x-pack/dev-tools @elastic/kibana-operations /catalog-info.yaml @elastic/kibana-operations @elastic/kibana-tech-leads /.devcontainer/ @elastic/kibana-operations +/.eslintrc.js @elastic/kibana-operations +/.eslintignore @elastic/kibana-operations # Appex QA +/x-pack/test/functional/config.*.* @elastic/appex-qa +/x-pack/test/api_integration/ftr_provider_context.d.ts @elastic/appex-qa # Maybe this should be a glob? +/x-pack/test/accessibility/services.ts @elastic/appex-qa +/x-pack/test/accessibility/page_objects.ts @elastic/appex-qa +/x-pack/test/accessibility/ftr_provider_context.d.ts @elastic/appex-qa +/x-pack/test_serverless/tsconfig.json @elastic/appex-qa +/x-pack/test_serverless/kibana.jsonc @elastic/appex-qa +/x-pack/test_serverless/functional/test_suites/common/README.md @elastic/appex-qa +/x-pack/test_serverless/functional/page_objects/index.ts @elastic/appex-qa +/x-pack/test_serverless/functional/ftr_provider_context.d.ts @elastic/appex-qa +/x-pack/test_serverless/functional/test_suites/common/management/index.ts @elastic/appex-qa +/x-pack/test_serverless/functional/test_suites/common/examples/index.ts @elastic/appex-qa +/x-pack/test_serverless/functional/page_objects/svl_common_page.ts @elastic/appex-qa +/x-pack/test_serverless/README.md @elastic/appex-qa +/x-pack/test_serverless/api_integration/ftr_provider_context.d.ts @elastic/appex-qa +/x-pack/test_serverless/api_integration/test_suites/common/README.md @elastic/appex-qa /src/dev/code_coverage @elastic/appex-qa /test/functional/services/common @elastic/appex-qa /test/functional/services/lib @elastic/appex-qa @@ -1313,6 +1393,11 @@ x-pack/test/api_integration/deployment_agnostic/services/ @elastic/appex-qa x-pack/test/**/deployment_agnostic/ @elastic/appex-qa #temporarily to monitor tests migration # Core +/x-pack/test/api_integration/apis/telemetry @elastic/kibana-core +/x-pack/test/api_integration/apis/status @elastic/kibana-core +/x-pack/test/api_integration/apis/stats @elastic/kibana-core +/x-pack/test/api_integration/apis/kibana/stats @elastic/kibana-core +/x-pack/test_serverless/functional/test_suites/security/config.saved_objects_management.ts @elastic/kibana-core /config/ @elastic/kibana-core /config/serverless.yml @elastic/kibana-core @elastic/kibana-security /config/serverless.es.yml @elastic/kibana-core @elastic/kibana-security @@ -1325,6 +1410,8 @@ x-pack/test/**/deployment_agnostic/ @elastic/appex-qa #temporarily to monitor te /x-pack/test_serverless/**/test_suites/common/saved_objects_management/ @elastic/kibana-core /x-pack/test_serverless/api_integration/test_suites/common/core/ @elastic/kibana-core /x-pack/test_serverless/api_integration/test_suites/**/telemetry/ @elastic/kibana-core +/x-pack/test/functional/es_archives/cases/migrations/8.8.0 @elastic/response-ops + #CC# /src/core/server/csp/ @elastic/kibana-core #CC# /src/plugins/saved_objects/ @elastic/kibana-core #CC# /x-pack/plugins/cloud/ @elastic/kibana-core @@ -1337,14 +1424,17 @@ x-pack/test/**/deployment_agnostic/ @elastic/appex-qa #temporarily to monitor te /x-pack/plugins/inference @elastic/appex-ai-infra @elastic/obs-ai-assistant @elastic/security-generative-ai # AppEx Platform Services Security -x-pack/test_serverless/api_integration/test_suites/common/security_response_headers.ts @elastic/kibana-security +//x-pack/test_serverless/api_integration/test_suites/common/security_response_headers.ts @elastic/kibana-security +/x-pack/test/api_integration/apis/es @elastic/kibana-security + +/x-pack/test/api_integration/apis/features @elastic/kibana-security # Kibana Telemetry /.telemetryrc.json @elastic/kibana-core /x-pack/.telemetryrc.json @elastic/kibana-core -/src/plugins/telemetry/schema/ @elastic/kibana-core @elastic/kibana-telemetry -/x-pack/plugins/telemetry_collection_xpack/schema/ @elastic/kibana-core @elastic/kibana-telemetry -x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kibana-core @elastic/kibana-telemetry @shahinakmal +/src/plugins/telemetry/schema/ @elastic/kibana-core +/x-pack/plugins/telemetry_collection_xpack/schema/ @elastic/kibana-core +x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kibana-core @shahinakmal # Kibana Localization /src/dev/i18n_tools/ @elastic/kibana-localization @elastic/kibana-core @@ -1354,6 +1444,7 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib # Kibana Platform Security /.github/codeql @elastic/kibana-security /.github/workflows/codeql.yml @elastic/kibana-security +/.github/workflows/codeql-stats.yml @elastic/kibana-security /src/dev/eslint/security_eslint_rule_tests.ts @elastic/kibana-security /src/core/server/integration_tests/config/check_dynamic_config.test.ts @elastic/kibana-security /src/plugins/telemetry/server/config/telemetry_labels.ts @elastic/kibana-security @@ -1388,6 +1479,13 @@ 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/accessibility/apps/group3/rules_connectors.ts @elastic/response-ops +/x-pack/test/functional/es_archives/cases/default @elastic/response-ops +/x-pack/test_serverless/api_integration/test_suites/observability/config.ts @elastic/response-ops +/x-pack/test_serverless/api_integration/test_suites/observability/index.ts @elastic/response-ops +/x-pack/test_serverless/functional/page_objects/svl_triggers_actions_ui_page.ts @elastic/response-ops +/x-pack/test_serverless/functional/page_objects/svl_rule_details_ui_page.ts @elastic/response-ops +/x-pack/test_serverless/functional/page_objects/svl_oblt_overview_page.ts @elastic/response-ops /x-pack/test/alerting_api_integration/ @elastic/response-ops /x-pack/test/alerting_api_integration/observability @elastic/obs-ux-management-team /x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops @@ -1409,15 +1507,46 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/test_serverless/functional/test_suites/security/screenshot_creation/response_ops_docs @elastic/response-ops /x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs @elastic/response-ops /x-pack/test_serverless/api_integration/test_suites/common/alerting/ @elastic/response-ops +/x-pack/test/functional/es_archives/action_task_params @elastic/response-ops +/x-pack/test/functional/es_archives/actions @elastic/response-ops +/x-pack/test/functional/es_archives/alerting @elastic/response-ops +/x-pack/test/functional/es_archives/alerts @elastic/response-ops +/x-pack/test/functional/es_archives/alerts_legacy @elastic/response-ops +/x-pack/test/functional/es_archives/observability/alerts @elastic/response-ops +/x-pack/test/functional/es_archives/actions @elastic/response-ops +/x-pack/test/functional/es_archives/rules_scheduled_task_id @elastic/response-ops +/x-pack/test/functional/es_archives/alerting/8_2_0 @elastic/response-ops +/x-pack/test/functional/es_archives/cases/signals/default @elastic/response-ops +/x-pack/test/functional/es_archives/cases/signals/hosts_users @elastic/response-ops # Enterprise Search +/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts @elastic/search-kibana +/x-pack/test/functional/apps/dev_tools/embedded_console.ts @elastic/search-kibana +/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts @elastic/search-kibana +/x-pack/test/functional/page_objects/embedded_console.ts @elastic/search-kibana /x-pack/test/functional_enterprise_search/ @elastic/search-kibana /x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/platform-docs /x-pack/test_serverless/api_integration/test_suites/search/serverless_search @elastic/search-kibana /x-pack/test_serverless/functional/test_suites/search/ @elastic/search-kibana +/x-pack/test_serverless/functional/test_suites/search/config.ts @elastic/search-kibana @elastic/appex-qa x-pack/test/api_integration/apis/management/index_management/inference_endpoints.ts @elastic/search-kibana +/x-pack/test_serverless/api_integration/test_suites/search @elastic/search-kibana +/x-pack/test_serverless/functional/page_objects/svl_api_keys.ts @elastic/search-kibana +/x-pack/test_serverless/functional/page_objects/svl_search_* @elastic/search-kibana +/x-pack/test/functional_search/ @elastic/search-kibana # Management Experience - Deployment Management +/x-pack/test/api_integration/services/index_management.ts @elastic/kibana-management +/x-pack/test/functional/services/grok_debugger.js @elastic/kibana-management +/x-pack/test/functional/apps/grok_debugger @elastic/kibana-management +/x-pack/test/functional/apps/index_lifecycle_management @elastic/kibana-management +/x-pack/test/functional/apps/index_management @elastic/kibana-management +/x-pack/test/api_integration/services/ingest_pipelines @elastic/kibana-management +/x-pack/test/functional/apps/watcher @elastic/kibana-management +/x-pack/test/api_integration/apis/watcher @elastic/kibana-management +/x-pack/test/api_integration/apis/upgrade_assistant @elastic/kibana-management +/x-pack/test/api_integration/apis/searchprofiler @elastic/kibana-management +/x-pack/test/api_integration/apis/console @elastic/kibana-management /x-pack/test_serverless/**/test_suites/common/index_management/ @elastic/kibana-management /x-pack/test_serverless/**/test_suites/common/management/index_management/ @elastic/kibana-management /x-pack/test_serverless/**/test_suites/common/painless_lab/ @elastic/kibana-management @@ -1432,15 +1561,46 @@ x-pack/test/api_integration/apis/management/index_management/inference_endpoints /x-pack/test_serverless/**/test_suites/common/grok_debugger/ @elastic/kibana-management /x-pack/test/api_integration/apis/management/ @elastic/kibana-management /x-pack/test/functional/apps/rollup_job/ @elastic/kibana-management +/x-pack/test/api_integration/apis/grok_debugger @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/advanced_settings.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/**/grok_debugger.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/helpers.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/home.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/index_lifecycle_management.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/ingest_node_pipelines.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/management.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/painless_lab.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group1/search_profiler.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/cross_cluster_replication.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/license_management.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/remote_clusters.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/rollup_jobs.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/upgrade_assistant.ts @elastic/kibana-management +/x-pack/test/accessibility/apps/group3/watcher.ts @elastic/kibana-management #CC# /x-pack/plugins/cross_cluster_replication/ @elastic/kibana-management # Security Solution +/x-pack/test/common/services/security_solution @elastic/security-solution +/x-pack/test/api_integration/services/security_solution_*.gen.ts @elastic/security-solution +/x-pack/test/accessibility/apps/group3/security_solution.ts @elastic/security-solution +/x-pack/test_serverless/functional/test_suites/security/config.ts @elastic/security-solution @elastic/appex-qa +/x-pack/test_serverless/functional/test_suites/security/config.feature_flags.ts @elastic/security-solution +/x-pack/test_serverless/api_integration/test_suites/observability/config.feature_flags.ts @elastic/security-solution +/x-pack/test_serverless/functional/test_suites/common/spaces/multiple_spaces_enabled.ts @elastic/security-solution /x-pack/test/functional/es_archives/endpoint/ @elastic/security-solution /x-pack/test/plugin_functional/test_suites/resolver/ @elastic/security-solution /x-pack/test/security_solution_api_integration @elastic/security-solution /x-pack/test/api_integration/apis/security_solution @elastic/security-solution +/x-pack/test/functional/es_archives/auditbeat/default @elastic/security-solution +/x-pack/test/functional/es_archives/auditbeat/hosts @elastic/security-solution +/x-pack/test_serverless/functional/page_objects/svl_management_page.ts @elastic/security-solution +/x-pack/test_serverless/api_integration/test_suites/security @elastic/security-solution + +/x-pack/test_serverless/functional/test_suites/security/index.feature_flags.ts @elastic/security-solution +/x-pack/test_serverless/functional/test_suites/security/index.ts @elastic/security-solution #CC# /x-pack/plugins/security_solution/ @elastic/security-solution +/x-pack/test/functional/es_archives/cases/signals/duplicate_ids @elastic/response-ops # Security Solution OpenAPI bundles /x-pack/plugins/security_solution/docs/openapi/serverless/security_solution_detections_api_* @elastic/security-detection-rule-management @@ -1485,6 +1645,7 @@ x-pack/test/security_solution_api_integration/test_suites/detections_response/us x-pack/test/security_solution_api_integration/test_suites/explore @elastic/security-threat-hunting-explore x-pack/test/security_solution_api_integration/test_suites/investigations @elastic/security-threat-hunting-investigations x-pack/test/security_solution_api_integration/test_suites/sources @elastic/security-detections-response +/x-pack/test/common/utils/security_solution/detections_response @elastic/security-detections-response # Security Solution sub teams @@ -1498,7 +1659,12 @@ x-pack/test/security_solution_api_integration/test_suites/sources @elastic/secur /x-pack/test/security_solution_playwright @elastic/security-engineering-productivity /x-pack/plugins/security_solution/scripts/run_cypress @MadameSheema @patrykkopycinski @maximpn @banderror -## Security Solution sub teams - Threat Hunting Investigations +## Security Solution sub teams - Threat Hunting + +/x-pack/plugins/security_solution/server/lib/siem_migrations @elastic/security-threat-hunting +/x-pack/plugins/security_solution/common/siem_migrations @elastic/security-threat-hunting + +## Security Solution Threat Hunting areas - Threat Hunting Investigations /x-pack/plugins/security_solution/common/api/timeline @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations @@ -1510,6 +1676,7 @@ x-pack/test/security_solution_api_integration/test_suites/sources @elastic/secur x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout @elastic/security-threat-hunting-investigations x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/common/timelines @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/common/components/alerts_viewer @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_action @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/common/components/event_details @elastic/security-threat-hunting-investigations @@ -1527,7 +1694,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/server/lib/timeline @elastic/security-threat-hunting-investigations -## Security Solution sub teams - Threat Hunting Explore +## Security Solution Threat Hunting areas - Threat Hunting Explore /x-pack/plugins/security_solution/common/api/tags @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram @elastic/security-threat-hunting-explore @@ -1570,6 +1737,11 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users @elastic/security-threat-hunting-explore +/x-pack/test/functional/es_archives/auditbeat/overview @elastic/security-threat-hunting-explore +/x-pack/test/functional/es_archives/auditbeat/users @elastic/security-threat-hunting-explore + +/x-pack/test/functional/es_archives/auditbeat/uncommon_processes @elastic/security-threat-hunting-explore + ## Generative AI owner connectors # OpenAI /x-pack/plugins/stack_connectors/public/connector_types/openai @elastic/security-generative-ai @elastic/obs-ai-assistant @elastic/appex-ai-infra @@ -1585,6 +1757,11 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/stack_connectors/server/connector_types/gemini @elastic/security-generative-ai @elastic/obs-ai-assistant @elastic/appex-ai-infra /x-pack/plugins/stack_connectors/common/gemini @elastic/security-generative-ai @elastic/obs-ai-assistant @elastic/appex-ai-infra +# Inference API +/x-pack/plugins/stack_connectors/public/connector_types/inference @elastic/appex-ai-infra @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/server/connector_types/inference @elastic/appex-ai-infra @elastic/security-generative-ai @elastic/obs-ai-assistant +/x-pack/plugins/stack_connectors/common/inference @elastic/appex-ai-infra @elastic/security-generative-ai @elastic/obs-ai-assistant + ## Defend Workflows owner connectors /x-pack/plugins/stack_connectors/public/connector_types/sentinelone @elastic/security-defend-workflows /x-pack/plugins/stack_connectors/server/connector_types/sentinelone @elastic/security-defend-workflows @@ -1646,6 +1823,9 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/common/api/detection_engine/signals_migration @elastic/security-detection-engine /x-pack/plugins/security_solution/common/cti @elastic/security-detection-engine /x-pack/plugins/security_solution/common/field_maps @elastic/security-detection-engine +/x-pack/test/functional/es_archives/entity/risks @elastic/security-detection-engine +/x-pack/test/functional/es_archives/entity/host_risk @elastic/security-detection-engine +/x-pack/test/api_integration/apis/lists @elastic/security-detection-engine /x-pack/plugins/security_solution/public/sourcerer @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/detection_engine/rule_creation @elastic/security-detection-engine @@ -1669,11 +1849,13 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine @elastic/security-detection-engine /x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/rule_gaps.ts @elastic/security-detection-engine /x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists @elastic/security-detection-engine +/x-pack/test/functional/es_archives/asset_criticality @elastic/security-detection-engine ## Security Threat Intelligence - Under Security Platform /x-pack/plugins/security_solution/public/common/components/threat_match @elastic/security-detection-engine ## Security Solution sub teams - security-defend-workflows +/x-pack/test/api_integration/apis/osquery @elastic/security-defend-workflows /x-pack/plugins/security_solution/public/management/ @elastic/security-defend-workflows /x-pack/plugins/security_solution/public/common/lib/endpoint/ @elastic/security-defend-workflows /x-pack/plugins/security_solution/public/common/components/endpoint/ @elastic/security-defend-workflows @@ -1728,6 +1910,7 @@ 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/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 /x-pack/test/api_integration/apis/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test/cloud_security_posture_functional/ @elastic/kibana-cloud-security-posture @@ -1739,7 +1922,10 @@ x-pack/plugins/osquery @elastic/security-defend-workflows /x-pack/plugins/fleet/public/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture /x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture /x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/setup_technology.* @elastic/fleet @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/cloud_posture_third_party_support_callout.* @elastic/fleet @elastic/kibana-cloud-security-posture /x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture +/x-pack/test/security_solution_cypress/cypress/e2e/cloud_security_posture/misconfiguration_contextual_flyout.cy.ts @elastic/kibana-cloud-security-posture +/x-pack/test/security_solution_cypress/cypress/e2e/cloud_security_posture/vulnerabilities_contextual_flyout.cy.ts @elastic/kibana-cloud-security-posture # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/security-threat-hunting-explore @@ -1759,7 +1945,8 @@ x-pack/plugins/security_solution/server/lib/security_integrations @elastic/secur /x-pack/plugins/monitoring/**/*.scss @elastic/observability-design # Ent. Search design -/x-pack/plugins/enterprise_search/**/*.scss @elastic/ent-search-design +/x-pack/plugins/enterprise_search/**/*.scss @elastic/search-design +/x-pack/test/accessibility/apps/group3/enterprise_search.ts @elastic/search-kibana # Security design /x-pack/plugins/endpoint/**/*.scss @elastic/security-design @@ -1768,6 +1955,7 @@ x-pack/plugins/security_solution/server/lib/security_integrations @elastic/secur /x-pack/plugins/security_solution_serverless/**/*.scss @elastic/security-design # Logstash +/x-pack/test/api_integration/apis/logstash @elastic/logstash #CC# /x-pack/plugins/logstash/ @elastic/logstash # EUI team @@ -1786,9 +1974,17 @@ x-pack/test/profiling_api_integration @elastic/obs-ux-infra_services-team x-pack/plugins/observability_solution/observability_shared/public/components/profiling @elastic/obs-ux-infra_services-team # Shared UX +/x-pack/test/api_integration/apis/content_management @elastic/appex-sharedux +/x-pack/test/accessibility/apps/group3/tags.ts @elastic/appex-sharedux +/x-pack/test/accessibility/apps/group3/snapshot_and_restore.ts @elastic/appex-sharedux +/x-pack/test_serverless/functional/test_suites/common/spaces/spaces_selection.ts @elastic/appex-sharedux +/x-pack/test_serverless/functional/test_suites/common/spaces/index.ts @elastic/appex-sharedux packages/react @elastic/appex-sharedux test/functional/page_objects/solution_navigation.ts @elastic/appex-sharedux /x-pack/test_serverless/functional/page_objects/svl_common_navigation.ts @elastic/appex-sharedux +/x-pack/test_serverless/functional/fixtures/kbn_archiver/reporting @elastic/appex-sharedux +/x-pack/test_serverless/functional/page_objects/svl_sec_landing_page.ts @elastic/appex-sharedux +/x-pack/test_serverless/functional/test_suites/security/ftr/navigation.ts @elastic/appex-sharedux # OpenAPI spec files oas_docs/.spectral.yaml @elastic/platform-docs diff --git a/.github/workflows/alert-failed-test.yml b/.github/workflows/alert-failed-test.yml index 4d465b03dd43f..90e7ef6371d1a 100644 --- a/.github/workflows/alert-failed-test.yml +++ b/.github/workflows/alert-failed-test.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout kibana-operations - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index dc9eaee70fa51..3f8bd9b75daba 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: ref: ${{ matrix.branch }} diff --git a/.github/workflows/deploy-my-kibana.yml b/.github/workflows/deploy-my-kibana.yml index 4eac490b2c0a7..391f2afc62d4e 100644 --- a/.github/workflows/deploy-my-kibana.yml +++ b/.github/workflows/deploy-my-kibana.yml @@ -22,10 +22,11 @@ jobs: deploy-my-kibana: if: ${{ github.event.issue.pull_request && github.event.comment.body == '/oblt-deploy' }} runs-on: ubuntu-latest + permissions: + # if you listen for PRs, use this to use some comment reactions + pull-requests: write steps: - - uses: elastic/apm-pipeline-library/.github/actions/deploy-my-kibana@current + - uses: elastic/oblt-actions/oblt-cli/deploy-my-kibana@v1 with: - vaultUrl: ${{ secrets.OBLT_VAULT_ADDR }} - vaultRoleId: ${{ secrets.OBLT_VAULT_ROLE_ID }} - vaultSecretId: ${{ secrets.OBLT_VAULT_SECRET_ID }} - serverless: false + github-app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }} + github-app-private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }} diff --git a/.github/workflows/label-failed-test.yml b/.github/workflows/label-failed-test.yml index 358ff08edecd1..b3732eff3b2e5 100644 --- a/.github/workflows/label-failed-test.yml +++ b/.github/workflows/label-failed-test.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout kibana-operations - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.github/workflows/launchdarkly-code-references.yml b/.github/workflows/launchdarkly-code-references.yml index eb32608d74928..1034d25b29e85 100644 --- a/.github/workflows/launchdarkly-code-references.yml +++ b/.github/workflows/launchdarkly-code-references.yml @@ -16,7 +16,7 @@ jobs: if: github.event.repository.fork == false runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 11 # This value must be set if the lookback configuration option is not disabled for find-code-references. Read more: https://github.com/launchdarkly/ld-find-code-refs#searching-for-unused-flags-extinctions - name: LaunchDarkly Code References diff --git a/.github/workflows/oblt-github-commands.yml b/.github/workflows/oblt-github-commands.yml index d3f4bd61b817e..1b475334bd80f 100644 --- a/.github/workflows/oblt-github-commands.yml +++ b/.github/workflows/oblt-github-commands.yml @@ -10,37 +10,21 @@ name: oblt-github-commands on: pull_request_target: types: - - opened + - labeled permissions: contents: read jobs: - comment-if-oblt-member: + comment: + if: ${{ github.event.label.name == 'ci:project-deploy-observability' }} runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write steps: - - uses: elastic/apm-pipeline-library/.github/actions/github-token@current + - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: - url: ${{ secrets.OBLT_VAULT_ADDR }} - roleId: ${{ secrets.OBLT_VAULT_ROLE_ID }} - secretId: ${{ secrets.OBLT_VAULT_SECRET_ID }} - - - id: is_team_member - name: Check if user is member of the Elastic org and Observability team - run: | - if gh api -H "Accept: application/vnd.github+json" \ - /orgs/elastic/teams/observability/memberships/${{ github.actor }} ; then - echo "result=true" >> $GITHUB_OUTPUT - else - echo "result=false" >> $GITHUB_OUTPUT - fi - env: - GH_TOKEN: ${{ env.GITHUB_TOKEN }} - - - if: ${{ steps.is_team_member.outputs.result == 'true' }} - uses: actions/github-script@v6 - with: - github-token: ${{ env.GITHUB_TOKEN }} script: | const body = ` ### :robot: GitHub comments diff --git a/.github/workflows/on-merge.yml b/.github/workflows/on-merge.yml index 20596bf155910..8a5868020aaea 100644 --- a/.github/workflows/on-merge.yml +++ b/.github/workflows/on-merge.yml @@ -25,7 +25,7 @@ jobs: ) steps: - name: Checkout Actions - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: 'elastic/kibana-github-actions' ref: main diff --git a/.github/workflows/skip-failed-test.yml b/.github/workflows/skip-failed-test.yml index 913ba7b9648d4..46c569aeeef08 100644 --- a/.github/workflows/skip-failed-test.yml +++ b/.github/workflows/skip-failed-test.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Actions - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: 'elastic/kibana-github-actions' ref: main @@ -30,7 +30,7 @@ jobs: token: ${{secrets.KIBANAMACHINE_TOKEN}} - name: Checkout kibana-operations - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: 'elastic/kibana-operations' ref: main diff --git a/.github/workflows/undeploy-my-kibana.yml b/.github/workflows/undeploy-my-kibana.yml index 778ab4c73e302..5cff76398987c 100644 --- a/.github/workflows/undeploy-my-kibana.yml +++ b/.github/workflows/undeploy-my-kibana.yml @@ -21,12 +21,8 @@ jobs: if: contains(github.event.pull_request.labels.*.name, 'ci:project-deploy-observability') runs-on: ubuntu-latest steps: - - uses: elastic/apm-pipeline-library/.github/actions/github-token@current - with: - url: ${{ secrets.OBLT_VAULT_ADDR }} - roleId: ${{ secrets.OBLT_VAULT_ROLE_ID }} - secretId: ${{ secrets.OBLT_VAULT_SECRET_ID }} - - uses: elastic/apm-pipeline-library/.github/actions/undeploy-my-kibana@current + - uses: elastic/oblt-actions/oblt-cli/undeploy-my-kibana@v1 with: - token: ${{ env.GITHUB_TOKEN }} + github-app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }} + github-app-private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }} diff --git a/.i18nrc.json b/.i18nrc.json index b65c71b1a0d44..036be597ac969 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -98,7 +98,7 @@ "presentationUtil": "src/plugins/presentation_util", "randomSampling": "x-pack/packages/kbn-random-sampling", "reactPackages": "packages/react", - "textBasedEditor": "packages/kbn-text-based-editor", + "esqlEditor": "packages/kbn-esql-editor", "esqlUtils": "packages/kbn-esql-utils", "reporting": "packages/kbn-reporting", "savedObjects": "src/plugins/saved_objects", @@ -109,6 +109,7 @@ "server": "src/legacy/server", "share": ["src/plugins/share", "packages/kbn-reporting-share"], "sharedUXPackages": "packages/shared-ux", + "searchApiKeysComponents": "packages/kbn-search-api-keys-components", "searchApiPanels": "packages/kbn-search-api-panels/", "searchErrors": "packages/kbn-search-errors", "searchIndexDocuments": "packages/kbn-search-index-documents", @@ -118,7 +119,7 @@ "serverlessPackages": "packages/serverless", "sse": [ "packages/kbn-sse-utils" ], "coloring": "packages/kbn-coloring/src", - "languageDocumentationPopover": "packages/kbn-language-documentation-popover/src", + "languageDocumentation": "packages/kbn-language-documentation/src", "esql": "src/plugins/esql", "esqlDataGrid": "src/plugins/esql_datagrid", "statusPage": "src/legacy/core_plugins/status_page", diff --git a/NOTICE.txt b/NOTICE.txt index 3cee52c089cb4..bdd6a95e57b04 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -68,68 +68,6 @@ Author Tobias Koppers @sokra --- This product has relied on ASTExplorer that is licensed under MIT. ---- -This product includes code that is based on Ace editor, which was available -under a "BSD" license. - -Distributed under the BSD license: - -Copyright (c) 2010, Ajax.org B.V. -All rights reserved. - - Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Ajax.org B.V. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- -This product includes code that is based on Ace editor, which was available -under a "BSD" license. - -Distributed under the BSD license: - -Copyright (c) 2010, Ajax.org B.V. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Ajax.org B.V. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - --- This product includes code that is based on flot-charts, which was available under a "MIT" license. diff --git a/api_docs/kbn_ace.devdocs.json b/api_docs/kbn_ace.devdocs.json deleted file mode 100644 index 31b9c39264e4d..0000000000000 --- a/api_docs/kbn_ace.devdocs.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "id": "@kbn/ace", - "client": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.addToRules", - "type": "Function", - "tags": [], - "label": "addToRules", - "description": [], - "signature": [ - "(otherRules: any, embedUnder: any) => void" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/x_json_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.addToRules.$1", - "type": "Any", - "tags": [], - "label": "otherRules", - "description": [], - "signature": [ - "any" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/x_json_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/ace", - "id": "def-common.addToRules.$2", - "type": "Any", - "tags": [], - "label": "embedUnder", - "description": [], - "signature": [ - "any" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/x_json_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/ace", - "id": "def-common.ElasticsearchSqlHighlightRules", - "type": "Function", - "tags": [], - "label": "ElasticsearchSqlHighlightRules", - "description": [], - "signature": [ - "(this: any) => void" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/elasticsearch_sql_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/ace", - "id": "def-common.installXJsonMode", - "type": "Function", - "tags": [], - "label": "installXJsonMode", - "description": [], - "signature": [ - "(editor: ", - "Editor", - ") => void" - ], - "path": "packages/kbn-ace/src/ace/modes/x_json/x_json.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.installXJsonMode.$1", - "type": "Object", - "tags": [], - "label": "editor", - "description": [], - "signature": [ - "Editor" - ], - "path": "packages/kbn-ace/src/ace/modes/x_json/x_json.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/ace", - "id": "def-common.ScriptHighlightRules", - "type": "Function", - "tags": [], - "label": "ScriptHighlightRules", - "description": [], - "signature": [ - "(this: any) => void" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/script_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.ScriptHighlightRules.$1", - "type": "Any", - "tags": [], - "label": "this", - "description": [], - "signature": [ - "any" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/script_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/ace", - "id": "def-common.XJsonHighlightRules", - "type": "Function", - "tags": [], - "label": "XJsonHighlightRules", - "description": [], - "signature": [ - "(this: any) => void" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/x_json_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.XJsonHighlightRules.$1", - "type": "Any", - "tags": [], - "label": "this", - "description": [], - "signature": [ - "any" - ], - "path": "packages/kbn-ace/src/ace/modes/lexer_rules/x_json_highlight_rules.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - } - ], - "interfaces": [], - "enums": [], - "misc": [ - { - "parentPluginId": "@kbn/ace", - "id": "def-common.XJsonMode", - "type": "Any", - "tags": [], - "label": "XJsonMode", - "description": [], - "signature": [ - "any" - ], - "path": "packages/kbn-ace/src/ace/modes/x_json/x_json.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "objects": [] - } -} \ No newline at end of file diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx deleted file mode 100644 index 810f590fdd2a4..0000000000000 --- a/api_docs/kbn_ace.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -#### -#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. -#### Reach out in #docs-engineering for more info. -#### -id: kibKbnAcePluginApi -slug: /kibana-dev-docs/api/kbn-ace -title: "@kbn/ace" -image: https://source.unsplash.com/400x175/?github -description: API docs for the @kbn/ace plugin -date: 2024-09-12 -tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] ---- -import kbnAceObj from './kbn_ace.devdocs.json'; - - - -Contact [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) for questions regarding this plugin. - -**Code health stats** - -| Public API count | Any count | Items lacking comments | Missing exports | -|-------------------|-----------|------------------------|-----------------| -| 11 | 5 | 11 | 0 | - -## Common - -### Functions - - -### Consts, variables and types - - diff --git a/api_docs/kbn_elastic_assistant_common.devdocs.json b/api_docs/kbn_elastic_assistant_common.devdocs.json index 2fc5def8c52ae..02ef917e993ec 100644 --- a/api_docs/kbn_elastic_assistant_common.devdocs.json +++ b/api_docs/kbn_elastic_assistant_common.devdocs.json @@ -844,7 +844,7 @@ "\nInterface for features available to the elastic assistant" ], "signature": [ - "{ readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantModelEvaluation: boolean; readonly assistantBedrockChat: boolean; }" + "{ readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantModelEvaluation: boolean; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/capabilities/index.ts", "deprecated": false, @@ -2574,7 +2574,7 @@ "label": "GetCapabilitiesResponse", "description": [], "signature": [ - "{ assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; assistantBedrockChat: boolean; }" + "{ assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/capabilities/get_capabilities_route.gen.ts", "deprecated": false, @@ -3413,7 +3413,7 @@ "label": "ReadKnowledgeBaseResponse", "description": [], "signature": [ - "{ elser_exists?: boolean | undefined; esql_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }" + "{ elser_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/knowledge_base/crud_kb_route.gen.ts", "deprecated": false, @@ -4522,7 +4522,7 @@ "\nDefault features available to the elastic assistant" ], "signature": [ - "{ readonly assistantKnowledgeBaseByDefault: false; readonly assistantModelEvaluation: false; readonly assistantBedrockChat: true; }" + "{ readonly assistantKnowledgeBaseByDefault: false; readonly assistantModelEvaluation: false; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/capabilities/index.ts", "deprecated": false, @@ -4987,7 +4987,7 @@ "label": "GetCapabilitiesResponse", "description": [], "signature": [ - "Zod.ZodObject<{ assistantBedrockChat: Zod.ZodBoolean; assistantKnowledgeBaseByDefault: Zod.ZodBoolean; assistantModelEvaluation: Zod.ZodBoolean; }, \"strip\", Zod.ZodTypeAny, { assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; assistantBedrockChat: boolean; }, { assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; assistantBedrockChat: boolean; }>" + "Zod.ZodObject<{ assistantKnowledgeBaseByDefault: Zod.ZodBoolean; assistantModelEvaluation: Zod.ZodBoolean; }, \"strip\", Zod.ZodTypeAny, { assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; }, { assistantKnowledgeBaseByDefault: boolean; assistantModelEvaluation: boolean; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/capabilities/get_capabilities_route.gen.ts", "deprecated": false, @@ -5692,7 +5692,7 @@ "label": "ReadKnowledgeBaseResponse", "description": [], "signature": [ - "Zod.ZodObject<{ elser_exists: Zod.ZodOptional; esql_exists: Zod.ZodOptional; index_exists: Zod.ZodOptional; is_setup_available: Zod.ZodOptional; is_setup_in_progress: Zod.ZodOptional; pipeline_exists: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { elser_exists?: boolean | undefined; esql_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }, { elser_exists?: boolean | undefined; esql_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }>" + "Zod.ZodObject<{ elser_exists: Zod.ZodOptional; index_exists: Zod.ZodOptional; is_setup_available: Zod.ZodOptional; is_setup_in_progress: Zod.ZodOptional; pipeline_exists: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { elser_exists?: boolean | undefined; esql_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }, { elser_exists?: boolean | undefined; esql_exists?: boolean | undefined; index_exists?: boolean | undefined; is_setup_available?: boolean | undefined; is_setup_in_progress?: boolean | undefined; pipeline_exists?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/knowledge_base/crud_kb_route.gen.ts", "deprecated": false, @@ -5941,4 +5941,4 @@ } ] } -} \ No newline at end of file +} diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 2f197f4d93ada..45da6cb04cb87 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -240,7 +240,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Package name           | Maintaining team | Description | API Cnt | Any Cnt | Missing
comments | Missing
exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 11 | 5 | 11 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 14 | 0 | 14 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 36 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 0 | 0 | @@ -778,4 +777,3 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1254 | 0 | 4 | 0 | | | [@elastic/security-detection-rule-management](https://github.com/orgs/elastic/teams/security-detection-rule-management) | - | 20 | 0 | 10 | 0 | - diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 9d4957972ff47..7364ea24cc677 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -485,7 +485,7 @@ "\nExperimental flag needed to enable the link" ], "signature": [ - "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" + "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -565,7 +565,7 @@ "\nExperimental flag needed to disable the link. Opposite of experimentalKey" ], "signature": [ - "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"assistantBedrockChat\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" + "\"assistantKnowledgeBaseByDefault\" | \"assistantModelEvaluation\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"responseActionsSentinelOneKillProcessEnabled\" | \"responseActionsSentinelOneProcessesEnabled\" | \"responseActionsCrowdstrikeManualHostIsolationEnabled\" | \"securitySolutionNotesEnabled\" | \"entityAlertPreviewDisabled\" | \"newUserDetailsFlyoutManagedUser\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jamfDataInAnalyzerEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineDisabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"prebuiltRulesCustomizationEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"unifiedManifestEnabled\" | \"valueListItemsModalEnabled\" | \"manualRuleRunEnabled\" | \"filterProcessDescendantsForEventFiltersEnabled\" | \"dataIngestionHubEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -1931,7 +1931,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/types.ts", "deprecated": false, @@ -3082,7 +3082,7 @@ "\nThe security solution generic experimental features" ], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/server/plugin_contract.ts", "deprecated": false, @@ -3258,7 +3258,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly assistantBedrockChat: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" + "{ readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly responseActionsSentinelOneKillProcessEnabled: boolean; readonly responseActionsSentinelOneProcessesEnabled: boolean; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: boolean; readonly securitySolutionNotesEnabled: boolean; readonly entityAlertPreviewDisabled: boolean; readonly assistantModelEvaluation: boolean; readonly assistantKnowledgeBaseByDefault: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jamfDataInAnalyzerEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineDisabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly prebuiltRulesCustomizationEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly unifiedManifestEnabled: boolean; readonly valueListItemsModalEnabled: boolean; readonly manualRuleRunEnabled: boolean; readonly filterProcessDescendantsForEventFiltersEnabled: boolean; readonly dataIngestionHubEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3324,7 +3324,7 @@ "\nA list of allowed values that can be used in `xpack.securitySolution.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: true; readonly responseActionsSentinelOneGetFileEnabled: true; readonly responseActionsSentinelOneKillProcessEnabled: true; readonly responseActionsSentinelOneProcessesEnabled: true; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: true; readonly securitySolutionNotesEnabled: false; readonly entityAlertPreviewDisabled: false; readonly assistantModelEvaluation: false; readonly assistantKnowledgeBaseByDefault: false; readonly assistantBedrockChat: true; readonly newUserDetailsFlyoutManagedUser: false; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: true; readonly jamfDataInAnalyzerEnabled: true; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineDisabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly prebuiltRulesCustomizationEnabled: false; readonly malwareOnWriteScanOptionAvailable: true; readonly unifiedManifestEnabled: true; readonly valueListItemsModalEnabled: true; readonly manualRuleRunEnabled: false; readonly filterProcessDescendantsForEventFiltersEnabled: true; readonly dataIngestionHubEnabled: false; }" + "{ readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: true; readonly responseActionsSentinelOneGetFileEnabled: true; readonly responseActionsSentinelOneKillProcessEnabled: true; readonly responseActionsSentinelOneProcessesEnabled: true; readonly responseActionsCrowdstrikeManualHostIsolationEnabled: true; readonly securitySolutionNotesEnabled: false; readonly entityAlertPreviewDisabled: false; readonly assistantModelEvaluation: false; readonly assistantKnowledgeBaseByDefault: false; readonly newUserDetailsFlyoutManagedUser: false; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: true; readonly jamfDataInAnalyzerEnabled: true; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineDisabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly prebuiltRulesCustomizationEnabled: false; readonly malwareOnWriteScanOptionAvailable: true; readonly unifiedManifestEnabled: true; readonly valueListItemsModalEnabled: true; readonly manualRuleRunEnabled: false; readonly filterProcessDescendantsForEventFiltersEnabled: true; readonly dataIngestionHubEnabled: false; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3333,4 +3333,4 @@ } ] } -} \ No newline at end of file +} diff --git a/config/serverless.es.yml b/config/serverless.es.yml index 62e201955d9c8..7df88be18e334 100644 --- a/config/serverless.es.yml +++ b/config/serverless.es.yml @@ -10,8 +10,6 @@ xpack.observability.enabled: false xpack.securitySolution.enabled: false xpack.serverless.observability.enabled: false enterpriseSearch.enabled: false -xpack.fleet.enabled: false -xpack.observabilityAIAssistant.enabled: false xpack.osquery.enabled: false ## Fine-tune the search solution feature privileges. Also, refer to `serverless.yml` for the project-agnostic overrides. @@ -34,6 +32,7 @@ xpack.cloud.serverless.project_type: search ## Enable the Serverless Search plugin xpack.serverless.search.enabled: true +xpack.searchIndices.enabled: true ## Set the home route uiSettings.overrides.defaultRoute: /app/elasticsearch @@ -56,7 +55,23 @@ xpack.painless_lab.enabled: false xpack.ml.ad.enabled: false xpack.ml.dfa.enabled: false -xpack.ml.nlp.enabled: true +xpack.ml.nlp: + enabled: true + modelDeployment: + allowStaticAllocations: true + vCPURange: + low: + min: 0 + max: 2 + static: 2 + medium: + min: 1 + max: 32 + static: 32 + high: + min: 1 + max: 512 + static: 512 xpack.ml.compatibleModuleType: 'search' data_visualizer.resultLinks.fileBeat.enabled: false @@ -70,8 +85,16 @@ xpack.searchInferenceEndpoints.ui.enabled: false # Search Notebooks xpack.search.notebooks.catalog.url: https://elastic-enterprise-search.s3.us-east-2.amazonaws.com/serverless/catalog.json -# Search Homepage -xpack.search.homepage.ui.enabled: true - # Semantic text UI -xpack.index_management.dev.enableSemanticText: false +xpack.index_management.dev.enableSemanticText: true + +# AI Assistant config +xpack.observabilityAIAssistant.enabled: true +xpack.searchAssistant.enabled: true +xpack.searchAssistant.ui.enabled: true +xpack.observabilityAIAssistant.scope: "search" +xpack.observabilityAIAssistant.enableKnowledgeBase: false +aiAssistantManagementSelection.preferredAIAssistantType: "observability" +xpack.observabilityAiAssistantManagement.logSourcesEnabled: false +xpack.observabilityAiAssistantManagement.spacesEnabled: false +xpack.observabilityAiAssistantManagement.visibilityEnabled: false diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml index 67b0cfe6ab4d5..91f1227ce0d9f 100644 --- a/config/serverless.oblt.yml +++ b/config/serverless.oblt.yml @@ -144,7 +144,7 @@ xpack.uptime.service.tls.key: /mnt/elastic-internal/http-certs/tls.key # Fleet specific configuration xpack.fleet.internal.registry.capabilities: ['apm', 'observability', 'uptime'] xpack.fleet.internal.registry.spec.min: '3.0' -xpack.fleet.internal.registry.spec.max: '3.2' +xpack.fleet.internal.registry.spec.max: '3.3' xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false xpack.fleet.internal.registry.excludePackages: [ # Security integrations @@ -183,13 +183,27 @@ xpack.apm.featureFlags.storageExplorerAvailable: false ## Set the AI Assistant type aiAssistantManagementSelection.preferredAIAssistantType: "observability" +xpack.observabilityAIAssistant.scope: "observability" # Specify in telemetry the project type telemetry.labels.serverless: observability xpack.ml.ad.enabled: true xpack.ml.dfa.enabled: false -xpack.ml.nlp.enabled: true +xpack.ml.nlp: + enabled: true + modelDeployment: + allowStaticAllocations: false + vCPURange: + low: + min: 0 + max: 2 + medium: + min: 1 + max: 32 + high: + min: 1 + max: 128 xpack.ml.compatibleModuleType: 'observability' # Disable the embedded Dev Console diff --git a/config/serverless.security.yml b/config/serverless.security.yml index 39346310f78f0..1abbe2f1fdcb4 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -76,7 +76,7 @@ telemetry.labels.serverless: security # Fleet specific configuration xpack.fleet.internal.registry.capabilities: ['security'] xpack.fleet.internal.registry.spec.min: '3.0' -xpack.fleet.internal.registry.spec.max: '3.2' +xpack.fleet.internal.registry.spec.max: '3.3' xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false xpack.fleet.internal.registry.excludePackages: [ # Oblt integrations @@ -100,8 +100,26 @@ xpack.fleet.packages: xpack.ml.ad.enabled: true xpack.ml.dfa.enabled: true -xpack.ml.nlp.enabled: true +xpack.ml.nlp: + enabled: true + modelDeployment: + allowStaticAllocations: false + vCPURange: + low: + min: 0 + max: 2 + medium: + min: 1 + max: 32 + high: + min: 1 + max: 128 xpack.ml.compatibleModuleType: 'security' # Disable the embedded Dev Console console.ui.embeddedEnabled: false + +# Experimental Security Solution features + +# This feature is disabled in Serverless until fully performance tested within a Serverless environment +xpack.securitySolution.enableExperimental: ['entityStoreDisabled'] diff --git a/config/serverless.yml b/config/serverless.yml index ddc54fef52299..6b1231d84d6e9 100644 --- a/config/serverless.yml +++ b/config/serverless.yml @@ -111,6 +111,9 @@ xpack.index_management.enableMappingsSourceFieldSection: false # Disable toggle for enabling data retention in DSL form from Index Management UI xpack.index_management.enableTogglingDataRetention: false +# Disable Manage Processors UI in Ingest Pipelines +xpack.ingest_pipelines.enableManageProcessors: false + # Keep deeplinks visible so that they are shown in the sidenav dev_tools.deeplinks.navLinkStatus: visible management.deeplinks.navLinkStatus: visible @@ -202,6 +205,7 @@ uiSettings: labs:dashboard:deferBelowFold: false # Task Manager +xpack.task_manager.claim_strategy: mget xpack.task_manager.allow_reading_invalid_state: false xpack.task_manager.request_timeouts.update_by_query: 60000 xpack.task_manager.metrics_reset_interval: 120000 diff --git a/dev_docs/contributing/dev_principles.mdx b/dev_docs/contributing/dev_principles.mdx index cbea79e658684..8633352863011 100644 --- a/dev_docs/contributing/dev_principles.mdx +++ b/dev_docs/contributing/dev_principles.mdx @@ -85,6 +85,8 @@ When the use of an external dependency is necessary, ensure there is sufficient Except in specific cases where widespread consensus was gained and clear ownership is established, third party dependencies should not be exposed directly as features of Kibana, whether it be through the UI, HTTP API, or programmatic interfaces. +See the for more information. + ## Don't share code prematurely There are many modules throughout Kibana's codebase where we have generic utilities that seem appropriate for use elsewhere in the codebase, but doing so is creating another public interface which has a cost in terms of maintenance, testing, documentation, and complexity that increases with each usage. Over the long term, shared utilities tend to accumulate additional complexity in order to be flexible enough for the various use cases of its consumers, particularly when they are shared across domain/plugin boundaries. diff --git a/dev_docs/contributing/standards.mdx b/dev_docs/contributing/standards.mdx index 80df5f4752131..bb63eda578451 100644 --- a/dev_docs/contributing/standards.mdx +++ b/dev_docs/contributing/standards.mdx @@ -17,46 +17,7 @@ Please read and abide by our . ## Adding dependencies -Looking for a dependency that isn't already available in Kibana? There are a few things to keep in mind before adding a new dependency. - -First, be sure you have read and are familiar with our . In particular, **Be wary of dependencies** -and **Prefer one way to do things** provide an overview of how we approach this question. - -In general, we have a bias toward **not** adding new dependencies unless there is a compelling reason to do so, as we want to -minimize Kibana's overall complexity. - -Should you find yourself evaluating a new dependency, here are some specific things to ask yourself: - -1. **Is there already another dependency that offers similar functionality?** If so, adding a new dependency may not be necessary. -Prefer one way to do things and use what's already there, unless there is an important reason not to do so. -2. **Does this dependency appear to be well-maintained?** A dependency that hasn't been updated in years is usually more of a -liability than an asset. Make sure the depedency has recent activity, that bugs and security vulnerabilities appear to be addressed -in a timely manner, and that there is active participation from the maintainers and community. -3. **How large is the dependency?** For client-side plugins, heavy dependencies can have a real impact on user experience, -especially if they are included in the initial page bundle and not loaded asynchronously. In some cases it might make more sense -to roll your own rather than include a bloated depedency, especially if you are only using a single piece of functionality. -4. **Does this dependency have a license that's compatible with Kibana's?** Most common open source licenses such as BSD, MIT, -and Apache 2.0/1.1 are okay to use with Kibana. Others may not be, or may require special attribution. -5. **Will this dependency need to be prebuilt?** Due to our build process, native module dependencies should include at least a prebuild -step so at install time it simply downloads instead of building from source. This allows us to optimize bootstrap times. -6. **Am I committed to maintaining this dependency?** Once you add a dependency to the `package.json`, someone else isn't going to -keep it updated for you. That means you will be responsible for updating it regularly, keeping an eye out for security vulnerabilities, -and dealing with any breaking changes that may arise during an upgrade. We recommend relying on the renovate bot to help keep the -dependency updated; be sure to mark your ownership of the package in the -[`renovate.json`](https://github.com/elastic/kibana/blob/main/renovate.json`) file. - -If you have any questions about whether adding a dependency is appropriate, feel free to reach out to one of the following teams -on Github: - -- **@elastic/kibana-tech-leads** -- **@elastic/kibana-core** -- **@elastic/kibana-operations** -- **@elastic/kibana-security** - - - If you are unsure of which licenses are okay to use, refer to the - [Permitted Open Source Licenses list](https://github.com/elastic/open-source/blob/main/elastic-product-policy.md#permitted-licenses-list). - +Please read and abide by our . ## RESTful HTTP APIs diff --git a/dev_docs/contributing/third_party_dependencies.mdx b/dev_docs/contributing/third_party_dependencies.mdx new file mode 100644 index 0000000000000..ea8eb9cd154a9 --- /dev/null +++ b/dev_docs/contributing/third_party_dependencies.mdx @@ -0,0 +1,74 @@ +--- +id: kibThirdPartyDependencies +slug: /kibana-dev-docs/third-party-dependencies +title: Managing third-party dependencies +description: Expectations for working with third-party dependencies +date: 2024-10-01 +tags: ['contributor', 'dev', 'kibana', 'npm', 'dependencies', 'third-party', 'dependency'] +--- + +## Third-party dependencies + +Third-party dependencies allow us to leverage the broader web development community to effeciently bring ideas to life, without having to re-invent the wheel. +This is an attractive proposition, but using someone else's code does not absolve us of responsibility. + +The Kibana project is not just the code we commit to the repo but rather the combined total of all of the source code from our own repo and all of the external dependencies we rely on. When a user encounters a deficiency in Kibana, it matters not whether the root cause is in code we've written or external code we depend on. Additionally, relying on a dependency is a considerable expense in terms of cognitive burden, maintenance overhead, and risk. + +Except for highly specialized functionality, dependencies often do more harm in the long term than their short term benefits justify. Always be critical of new external dependencies being added to the project, and frequently re-evaluate the use of existing dependencies. + +When the use of an external dependency is necessary, ensure there is sufficient integration testing in Kibana to ensure it continues to operate the way we'd expect when we change the consuming code in Kibana or upgrade the dependency code. + +Except in specific cases where widespread consensus was gained and clear ownership is established, third party dependencies should not be exposed directly as features of Kibana, whether it be through the UI, HTTP API, or programmatic interfaces. + + + +Treat third-party code as if it was your own. We share the responsibility for the efficacy, performance, and security of both the code we integrate and the code we develop. + + + +## Adding new dependencies + +Looking for a dependency that isn't already available in Kibana? There are a few things to keep in mind before adding a new dependency. + +First, be sure you have read and are familiar with our . In particular, **Be wary of dependencies** +and **Prefer one way to do things** provide an overview of how we approach this question. + +In general, we have a bias toward **not** adding new dependencies unless there is a compelling reason to do so, as we want to +minimize Kibana's overall complexity. + +Should you find yourself evaluating a new dependency, here are some specific things to ask yourself: + +1. **Is there already another dependency that offers similar functionality?** If so, adding a new dependency may not be necessary. +Prefer one way to do things and use what's already there, unless there is an important reason not to do so. +2. **Does this dependency appear to be well-maintained?** A dependency that hasn't been updated in years is usually more of a +liability than an asset. Make sure the depedency has recent activity, that bugs and security vulnerabilities appear to be addressed +in a timely manner, and that there is active participation from the maintainers and community. +3. **How large is the dependency?** For client-side plugins, heavy dependencies can have a real impact on user experience, +especially if they are included in the initial page bundle and not loaded asynchronously. In some cases it might make more sense +to roll your own rather than include a bloated depedency, especially if you are only using a single piece of functionality. +4. **Does this dependency have a license that's compatible with Kibana's?** Most common open source licenses such as BSD, MIT, +and Apache 2.0/1.1 are okay to use with Kibana. Others may not be, or may require special attribution. +5. **Will this dependency need to be prebuilt?** Due to our build process, native module dependencies are only supported for development (`devDependencies`), and are not supported for production (`dependencies`). +6. **Am I committed to maintaining this dependency?** Once you add a dependency to the `package.json`, someone else isn't going to +keep it updated for you. That means you will be responsible for updating it regularly, keeping an eye out for security vulnerabilities, +and dealing with any breaking changes that may arise during an upgrade. We recommend (and will soon require) relying on the renovate bot to help keep the +dependency updated; be sure to mark your ownership of the package in the +[`renovate.json`](https://github.com/elastic/kibana/blob/main/renovate.json`) file. + +If you have any questions about whether adding a dependency is appropriate, feel free to reach out to one of the following teams +on Github: + +- **@elastic/kibana-tech-leads** +- **@elastic/kibana-core** +- **@elastic/kibana-operations** +- **@elastic/kibana-security** + + + If you are unsure of which licenses are okay to use, refer to the + [Permitted Open Source Licenses list](https://github.com/elastic/open-source/blob/main/elastic-product-policy.md#permitted-licenses-list). + + +## Using existing dependencies + +Using an existing dependency is typically preferred over adding a new one. +Please consult with the owning team before using an existing dependency, as they may have specific guidelines or concerns about its use. diff --git a/dev_docs/nav-kibana-dev.docnav.json b/dev_docs/nav-kibana-dev.docnav.json index 2a9893898e8c5..a7d696fc10574 100644 --- a/dev_docs/nav-kibana-dev.docnav.json +++ b/dev_docs/nav-kibana-dev.docnav.json @@ -51,6 +51,9 @@ }, { "id": "kibGitHub" + }, + { + "id": "kibThirdPartyDependencies" } ] }, @@ -136,10 +139,6 @@ }, { "id": "kibDevDocsEmbeddables" - }, - { - "id": "kibCloudExperimentsPlugin", - "label": "A/B testing on Elastic Cloud" } ] }, @@ -205,6 +204,10 @@ }, { "id": "kibDevTutorialCcsSetup" + }, + { + "id": "kibFeatureFlagsService", + "label": "Feature Flags" } ] }, @@ -222,7 +225,7 @@ "id": "ktCustomServerlessImage" }, { - "id": "kibDevTutorialsServerlessProjectNavigation" + "id": "kibDevTutorialsSolutionNavigation" } ] }, @@ -240,8 +243,8 @@ "pageId": "kibDevDocsSharedUxOverview", "items": [ { - "label": "Serverless Project Navigation", - "id": "kibDevTutorialsServerlessProjectNavigation" + "label": "Solution Navigation (stateful solution nav and serverless navigation", + "id": "kibDevTutorialsSolutionNavigation" }, { "id": "kibDevTutorialFileService", @@ -275,6 +278,10 @@ { "id": "kibDevReactKibanaContext", "label": "Kibana React Contexts" + }, + { + "id": "kibDevDocsChromeRecentlyAccessed", + "label": "Recently Viewed" } ] }, diff --git a/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.mdx b/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.mdx new file mode 100644 index 0000000000000..cca466bcf1ac3 --- /dev/null +++ b/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.mdx @@ -0,0 +1,66 @@ +--- +id: kibDevDocsChromeRecentlyAccessed +slug: /kibana-dev-docs/chrome/recently-accessed +title: Chrome Recently Viewed +description: How to use chrome's recently accessed service to add your links to the recently viewed list in the side navigation. +date: 2024-10-04 +tags: ['kibana', 'dev', 'contributor', 'chrome', 'navigation', 'shared-ux'] +--- + +## Introduction + +The service allows applications to register recently visited objects. These items are displayed in the "Recently Viewed" section of a side navigation menu, providing users with quick access to their previously visited resources. This service includes methods for adding, retrieving, and subscribing to the recently accessed history. + +![Recently viewed section in the sidenav](./chrome_recently_accessed.png) + +## Guidelines + +The service should be used thoughtfully to provide users with easy access to key resources they've interacted with. Unlike browser history, this feature is for important items that users may want to revisit. + +### DOs + +- Register important resources that users may want to revisit. Like a dashboard, a saved search, or another specific object. +- Update the link when the state of the current resource changes. For example, if a user changes the time range while on a dashboard, update the recently viewed link to reflect the latest viewed state where possible. See below for instructions on how to update the link when state changes. + +### DON'Ts + +- Don't register every page view. +- Don't register temporary or transient states as individual items. +- Prevent overloading. Keep the list focused on high-value resources. +- Don't add a recently viewed object without first speaking to relevant Product Managers. + +## Usage + +To register an item with the `ChromeRecentlyAccessed` service, provide a unique `id`, a `label`, and a `link`. The `id` is used to identify and deduplicate the item, the `label` is displayed in the "Recently Viewed" list and the `link` is used to navigate to the item when selected. + +```ts +const link = '/app/map/1234'; +const label = 'Map 1234'; +const id = 'map-1234'; + +coreStart.chrome.recentlyAccessed.add(link, label, id); +``` + +To update the link when state changes, add another item with the same `id`. This will replace the existing item in the "Recently Viewed" list. + +```ts +const link = '/app/map/1234'; +const label = 'Map 1234'; + +coreStart.chrome.recentlyAccessed.add(`/app/map/1234`, label, id); + +// User changes the time range and we want to update the link in the "Recently Viewed" list +coreStart.chrome.recentlyAccessed.add( + `/app/map/1234?timeRangeFrom=now-30m&timeRangeTo=now`, + label, + id +); +``` + +## Implementation details + +The services is based on package. This package provides a `RecentlyAccessedService` that uses browser local storage to manage records of recently accessed objects. Internally it implements the queue with a maximum length of 20 items. When the queue is full, the oldest item is removed. +Applications can create their own instance of `RecentlyAccessedService` to manage their own list of recently accessed items scoped to their application. + +- is a service available via `coreStart.chrome.recentlyAccessed` and should be used to add items to chrome's sidenav. +- is package that `ChromeRecentlyAccessed` is using internally and the package can be used to create your own instance and manage your own list of recently accessed items that is independent for chrome's sidenav. \ No newline at end of file diff --git a/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.png b/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.png new file mode 100644 index 0000000000000..41d3913b048a2 Binary files /dev/null and b/dev_docs/shared_ux/chrome_recently_accessed/chrome_recently_accessed.png differ diff --git a/dev_docs/shared_ux/shared_ux_landing.mdx b/dev_docs/shared_ux/shared_ux_landing.mdx index 2b6bc7661dedd..d96798eefa61f 100644 --- a/dev_docs/shared_ux/shared_ux_landing.mdx +++ b/dev_docs/shared_ux/shared_ux_landing.mdx @@ -27,7 +27,7 @@ layout: landing sectionTitle="Our Catalog" items={[ { - pageId: 'kibDevTutorialsServerlessProjectNavigation', + pageId: 'kibDevTutorialsSolutionNavigation', title: 'Serverless Project Navigation', description: 'Learn how to work with the new chrome navigation in serverless projects', }, @@ -66,5 +66,10 @@ layout: landing title: 'Kibana React Contexts', description: 'Learn how to use common React contexts in Kibana', }, + { + pageId: 'kibDevDocsChromeRecentlyAccessed', + title: 'Chrome Recently Viewed', + description: 'Learn how to add recently viewed items to the side navigation', + }, ]} /> diff --git a/dev_docs/tutorials/performance/adding_performance_journey.mdx b/dev_docs/tutorials/performance/adding_performance_journey.mdx index 2f7f37452c285..a9c4fe7ef6bc5 100644 --- a/dev_docs/tutorials/performance/adding_performance_journey.mdx +++ b/dev_docs/tutorials/performance/adding_performance_journey.mdx @@ -89,6 +89,27 @@ simulate real life internet connection. This means that all requests have a fixe In order to keep track on performance metrics stability, journeys are run on main branch with a scheduled interval. Bare metal machine is used to produce results as stable and reproducible as possible. +#### Running subset of journeys for the PR + +Some code changes might affect the Kibana performance and it might be benefitial to run relevant journeys against the PR +and compare performance metrics vs. the ones on main branch. + +In oder to trigger the build for Kibana PR, you can follow these steps: + +- Create a new kibana-single-user-performance [build](https://buildkite.com/elastic/kibana-single-user-performance#new) +- Provide the following arguments: + - Branch: `refs/pull//head` + - Under Options, set the environment variable: `JOURNEYS_GROUP=` + +Currently supported journey groups: + +- kibanaStartAndLoad +- crud +- dashboard +- discover +- maps +- ml + #### Machine specifications All benchmarks are run on bare-metal machines with the [following specifications](https://www.hetzner.com/dedicated-rootserver/ex100): diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index d12d5a91f8273..6747aa955713a 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -10,6 +10,10 @@ Review important information about the {kib} 8.x releases. +* <> +* <> +* <> +* <> * <> * <> * <> @@ -72,6 +76,515 @@ Review important information about the {kib} 8.x releases. -- + +include::upgrade-notes.asciidoc[] + + +[[release-notes-8.16.0]] +== {kib} 8.16.0 + +For information about the {kib} 8.16.0 release, review the following information. + +The 8.16.0 release includes the following known issues. + +[float] +[[known-issues-8.16.0]] +=== Known issues + +[discrete] +[[known-199902]] +.Stack Monitoring shows "Unable to load page error" +[%collapsible] +==== +*Details* + +The Stack Monitoring pages Overview, Nodes, Logs can stop working with the error "Unable to load page error". The Stack trace mentions `TypeError: Cannot read properties of undefined (reading 'logsLocator')`. + +*Workaround* + +Disabling the `Set feature visibility > Logs` feature at Kibana Space settings level will prevent the error from occurring. Please note the `Logs` feature will not be available on such space. + +It's also possible to set the `Observability > Logs` feature privilege to `None` on the role level. This will hide the `Logs` feature for individual users and prevent the error for these users as well. + +For more information, refer to {kibana-issue}199902[#199902]. +==== + +[discrete] +[[known-199891-199892]] +.Onboarding, tutorial of APM and OpenTelemetry and some "Beats Only" integrations will show the error "Unable to load page error" +[%collapsible] +==== +*Details* + +Tutorials linked from the {kib} home page show an "Unable to load page" error. The Stack trace mentions `The above error occurred in tutorial_TutorialUi`. + +*Workaround* + +The APM / OpenTelemetry tutorials represented a shortcut to quickly add important parameters to the configuration files. +It is still possible to obtain the same parameters following the tutorials in the APM documentation. + +More information can be found in the {observability-guide}/apm-collect-application-data.html[APM documentation] and the {observability-guide}/get-started-with-fleet-apm-server.html[Fleet documentation]. + +For information about how to create APM API keys, please check the {observability-guide}/apm-api-key.html#apm-create-an-api-key[API key documentation]. + + +For more information, refer to {kibana-issue}199891[#199891] and {kibana-issue}199892[#199892]. +==== + +[float] +[[deprecations-8.16.0]] +=== Deprecations + +The following functionality is deprecated in 8.16.0, and will be removed in 9.0.0. +Deprecated functionality does not have an immediate impact on your application, but we strongly recommend +you make the necessary updates after you upgrade to 8.16.0. + +[discrete] +.The Logs Stream is now hidden by default in favor of the Logs Explorer app. +[%collapsible] +==== +*Details* + +You can find the Logs Explorer app in the navigation menu under Logs > Explorer, or as a separate tab in Discover. For more information, refer to ({kibana-pull}194519[#194519]). + +*Impact* + +You can still show the Logs Stream app again by navigating to Stack Management > Advanced Settings and by enabling the `observability:enableLogsStream` setting. +==== + +[discrete] +.Deprecates the Observability AI Assistant specific advanced setting `observability:aiAssistantLogsIndexPattern`. +[%collapsible] +==== +*Details* + +The Observability AI Assistant specific advanced setting for Logs index patterns `observability:aiAssistantLogsIndexPattern` is deprecated and no longer used. The AI Assistant will now use the existing **Log sources** setting `observability:logSources` instead. For more information, refer to ({kibana-pull}192003[#192003]). + +//*Impact* + +//!!TODO!! +==== + + + +[float] +[[features-8.16.0]] +=== Features +{kib} 8.16.0 adds the following new and notable features. + +AGPL license:: +* Adds AGPL 3.0 license ({kibana-pull}192025[#192025]). +Alerting:: +* Adds TheHive connector ({kibana-pull}180138[#180138]). +* Adds flapping settings per rule ({kibana-pull}189341[#189341]). +* Efficiency improvements in the Kibana task manager and alerting frameworks ({kibana-issue}188194[#188194]) +Cases:: +* Support TheHive connector in cases ({kibana-pull}180931[#180931]). +Dashboards and visualizations:: +* Adds the ability to star your favorite dashboards and quickly find them ({kibana-pull}189285[#189285]). +* Adds a chart showing usage statistics to the dashboard details ({kibana-pull}187993[#187993]). +* Adds metric styling options in *Lens* ({kibana-pull}186929[#186929]). +* Adds support for coloring table cells by terms with color mappings assignments. This is supported for both Rows and Metric dimensions ({kibana-pull}189895[#189895]). +Data ingestion and Fleet:: +* Support content packages in UI ({kibana-pull}195831[#195831]). +* Advanced agent monitoring options UI for HTTP endpoint and diagnostics ({kibana-pull}193361[#193361]). +* Adds option to have Kafka dynamic topics in outputs ({kibana-pull}192720[#192720]). +* Adds support for GeoIP processor databases in Ingest Pipelines ({kibana-pull}190830[#190830]). +// !!TODO!! The above PR had a lengthy release note description: +// The Ingest Pipelines app now supports adding and managing databases for the GeoIP processor. Additionally, the pipeline creation flow now includes support for the IP Location processor. +* Adds agentless ux creation flow ({kibana-pull}189932[#189932]). +* Enable feature flag for reusable integration policies ({kibana-pull}187153[#187153]). +Discover:: +* When writing ES|QL queries, you now get recommendations to help you get started ({kibana-pull}194418[#194418]). +* Enhances the inline documentation experience in ES|QL mode ({kibana-pull}192156[#192156]). +* Adds the ability to break down the histogram by field for ES|QL queries in Discover ({kibana-pull}193820[#193820]). +* Adds a summary column to the Documents table when exploring log data in Discover ({kibana-pull}192567[#192567]). +* Adds row indicators to the Documents table when exploring log data in Discover ({kibana-pull}190676[#190676]). +* Moves the button to switch between ES|QL and classic modes to the toolbar ({kibana-pull}188898[#188898]). +* Adds density settings to allow further customization of the Documents table layout ({kibana-pull}188495[#188495]). +* Enables the time picker for indices without the @timestamp field when editing ES|QL queries ({kibana-pull}184361[#184361]). +Elastic Observability solution:: +* Show monitors from all permitted spaces !! ({kibana-pull}196109[#196109]). +* Adds experimental logs overview to the observability hosts and service overviews ({kibana-pull}195673[#195673]). +* Show alerts for entities ({kibana-pull}195250[#195250]). +* Create sub-feature role to manage APM settings write permissions ({kibana-pull}194419[#194419]). +* Adds related alerts tab to the alert details page ({kibana-pull}193263[#193263]). +* Adds labels field !! ({kibana-pull}193250[#193250]). +* Implement _ignored root cause identification flow ({kibana-pull}192370[#192370]). +* Enable page for synthetics ({kibana-pull}191846[#191846]). +* Settings add config to enable default rules ({kibana-pull}190800[#190800]). +* Added alerts page ({kibana-pull}190751[#190751]). +* Monitor list add bulk delete ({kibana-pull}190674[#190674]). +* Delete monitor API via id param !! ({kibana-pull}190210[#190210]). +* Enable metrics and traces in the Data Set Quality page ({kibana-pull}190043[#190043]). +* Adds alert grouping functionality to the observability alerts page ({kibana-pull}189958[#189958]). +* Adds a new SLO Burn Rate embeddable ({kibana-pull}189429[#189429]). +* The Slack Web API Alert Connector is now supported as a default connector for Synthetics and Uptime rules ({kibana-pull}188437[#188437]). +* Adds option to enable backfill transform ({kibana-pull}188379[#188379]). +* Save the ECS group by fields at the AAD root level ({kibana-pull}188241[#188241]). +* Adds last value aggregation ({kibana-pull}187082[#187082]). +* Improve synthetics alerting ({kibana-pull}186585[#186585]). +* Make overview grid embeddable ({kibana-pull}160597[#160597]). +Elastic Security solution:: +For the Elastic Security 8.16.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Kibana security:: +* Adds an API endpoint `POST security/roles` that can be used to bulk create or update roles ({kibana-pull}189173[#189173]). +* Automatic Import can now create integrations for logs in the CSV format ({kibana-pull}194386[#194386]). +* Adds an error handling framework to Automatic Import that provides error messages with more context to user ({kibana-pull}193577[#193577]). +* When running in FIPS mode, Kibana forbids usage of PKCS12 configuration options ({kibana-pull}192627[#192627]). +Machine Learning:: +* Adds new section for creating daylight saving time calendar events ({kibana-pull}193605[#193605]). +* Anomaly Detection: Adds a page to list supplied job configurations ({kibana-pull}191564[#191564]). +* Redesigns start/update model deployment dialog to support adaptive resources ({kibana-pull}190243[#190243]). +* File upload: Adds support for PDF files ({kibana-pull}186956[#186956]). +* Adds Pattern analysis embeddable for dashboards ({kibana-pull}186539[#186539]). +Management:: +* This release introduces a fresh, modern look for the console, now featuring the Monaco editor. We've added a file import and export functionality, and the console is fully responsive with stackable panels for a smoother experience. New buttons allow for quick clearing of editor values and output. Additionally, the history and config tabs were improved to enhance usability. ({kibana-pull}189748[#189748]). + +For more information about the features introduced in 8.16.0, refer to <>. + +[[enhancements-and-bug-fixes-v8.16.0]] +=== Enhancements and bug fixes + +For detailed information about the 8.16.0 release, review the enhancements and bug fixes. + + +[float] +[[enhancement-v8.16.0]] +=== Enhancements +Alerting:: +* Allow users to select template while adding a case action in the rule ({kibana-pull}190701[#190701]). +* New full-page rule form in the Stack Management app ({kibana-pull}194655[#194655]). +Dashboards and visualizations:: +* Adds compressed style for dashboard controls ({kibana-pull}190636[#190636]). +* Adds the ability to duplicate a managed dashboard from its `managed` badge ({kibana-pull}189404[#189404]). +* Adds the ability to expand the height of various sections in the Edit ES|QL visualization flyout ({kibana-pull}193453[#193453]). +* Improves the query authoring experience when editing an ES|QL visualization ({kibana-pull}186875[#186875]). +* Syncs the cursor for time series charts powered by ES|QL ({kibana-pull}192837[#192837]). +* Gauge and metric Lens visualizations are no longer experimental ({kibana-pull}192359[#192359]). +* Sets gauge default palette to "temperature" in *Lens* ({kibana-pull}191853[#191853]). +* Supports fuzzy search on field pickers and field lists in *Lens* ({kibana-pull}186894[#186894]). +Data ingestion and Fleet:: +* Update max supported package version ({kibana-pull}196551[#196551]). +* Adds additional columns to Agent Logs UI ({kibana-pull}192262[#192262]). +* Show `+build` versions for Elastic Agent upgrades ({kibana-pull}192171[#192171]). +* Added format parameter to `agent_policies` APIs ({kibana-pull}191811[#191811]). +* Adds toggles for `agent.monitoring.http.enabled` and `agent.monitoring.http.buffer.enabled` to agent policy advanced settings ({kibana-pull}190984[#190984]). +* Support integration policies without agent policy references (aka orphaned integration policies) ({kibana-pull}190649[#190649]). +* Changed the UX of the Edit Integration Policy page to update agent policies ({kibana-pull}190583[#190583]). +* Allow `traces` to be added to the `monitoring_enabled` array in Agent policies ({kibana-pull}189908[#189908]). +* Create task that periodically unenrolls inactive agents ({kibana-pull}189861[#189861]). +* Adds setup technology selector to add integration page ({kibana-pull}189612[#189612]). +* Support integration-level outputs ({kibana-pull}189125[#189125]). +Discover:: +* Renames the Documents tab to Results in ES|QL mode ({kibana-pull}197833[#197833]). +* Adds a cluster details tab for CCS data sources when inspecting requests in ES|QL mode ({kibana-pull}195373[#195373]). +* Adds the query time to the list of statistics when inspecting requests in ES|QL mode ({kibana-pull}194806[#194806]). +* Improves display of error messages in ES|QL mode ({kibana-pull}191320[#191320]). +* Adds a help menu to the ES|QL mode ({kibana-pull}190579[#190579]). +* Initializes the ES|QL editor with time named parameters when switching from the classic mode with a data view without @timestamp ({kibana-pull}189367[#189367]). +* Adds the ability to select multiple rows from the Documents table using "Shift + Select" ({kibana-pull}193619[#193619]). +* Adds the ability to filter on field names and values in the expanded document view ({kibana-pull}192299[#192299]). +* Adds filtering for selected fields ({kibana-pull}191930[#191930]). +* Adds a dedicated column to the document viewer flyout for pinning and unpinning rows ({kibana-pull}190344[#190344]). +* Improves absolute column width handling ({kibana-pull}190288[#190288]). +* Allows filtering by field type in the document viewer flyout ({kibana-pull}189981[#189981]). +* Improves the document viewer flyout to remember the last active tab ({kibana-pull}189806[#189806]). +* Adds ability to hide fields with null values from the document viewer ({kibana-pull}189601[#189601]). +* Adds the ability to copy selected rows as text ({kibana-pull}189512[#189512]). +* Adds a log level badge cell renderer to the Discover logs profile ({kibana-pull}188281[#188281]). +* Shows ECS field descriptions in Discover and adds markdown support for field descriptions ({kibana-pull}187160[#187160]). +* Adds support for the Log overview tab to the Discover log profile ({kibana-pull}186680[#186680]). +* Adds default app state extension and log integration data source profiles ({kibana-pull}186347[#186347]). +* Allows to select and deselect all rows in the grid at once ({kibana-pull}184241[#184241]). +* Limits the height of long field values by default ({kibana-pull}183736[#183736]). +ES|QL editor:: +* Changes the auto-focus to be on the ES|QL editor when loading the page ({kibana-pull}193800[#193800]). +* Updates the autocomplete behavior for `SORT` to be in line with other field-list-based experiences like `KEEP` in ES|QL queries ({kibana-pull}193595[#193595]). +* Adds `all (*)` to the list of suggestions for `COUNT` functions in ES|QL queries ({kibana-pull}192205[#192205]). +* Improves ES|QL autocomplete suggestions for `case()` expressions ({kibana-pull}192135[#192135]). +* Opens suggestions automatically for sources lists and `ENRICH` functions when writing ES|QL queries ({kibana-pull}191312[#191312]). +* Improves wrapping and readability for ES|QL queries ({kibana-pull}191269[#191269]). +* Improves suggestions based on previous function arguments and date suggestions for `bucket` functions in ES|QL queries ({kibana-pull}190828[#190828]). +* Show the `LIMIT` information in the ES|QL editor's footer ({kibana-pull}190498[#190498]). +* Opens suggestions automatically for field lists in ES|QL queries ({kibana-pull}190466[#190466]). +* Integrates a time picker for date fields into the ES|QL editor ({kibana-pull}187047[#187047]). +* Improves ES|QL support for Elasticsearch sub-types in AST for both validation and autocomplete ({kibana-pull}189689[#189689]). +* Adds ECS information to the ES|QL editor suggestions and prioritizes fields based on ECS information on the editor ({kibana-pull}187922[#187922]). +* Improves `BY` suggestions in ES|QL queries to include pipe and comma operators ({kibana-pull}189458[#189458]). +* Makes the suggestion menu open automatically in more places in ES|QL queries ({kibana-pull}189585[#189585]). +* Adds hints upon hover for function argument types and time system types ({kibana-pull}191881[#191881]). +Elastic Observability solution:: +* Enable Kubernetes Otel flow ({kibana-pull}196531[#196531]). +* Pass function responses when copying conversation ({kibana-pull}195635[#195635]). +* Turn 'fast filter' on by default and ensure tech preview badge shows when turned on ({kibana-pull}193710[#193710]). +* Custom Service Name Cell ({kibana-pull}192381[#192381]). +* Remove manage_transform and manage_ingest_pipeline privilege requirements ({kibana-pull}190572[#190572]). +* Create new formula for CPU Usage metric ({kibana-pull}189261[#189261]). +* Adds customizable header for quickstart flows ({kibana-pull}188340[#188340]). +* Change Kubernetes guide to link to observability onboarding ({kibana-pull}188322[#188322]). +* Adds KB user instructions ({kibana-pull}187607[#187607]). +* Refactor Synthetics Overview page for increased scalability ({kibana-pull}187092[#187092]). +* Improve synthetics alerting ({kibana-pull}186585[#186585]). +* Annotations Initial phase ({kibana-pull}184325[#184325]). +Elastic Search solution:: +* Adds Alibaba AI Search to Deletion, search and filtering of inference endpoints ({kibana-pull}190783[#190783]). +Elastic Security solution:: +For the Elastic Security 8.16.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Kibana security:: +* Enhances Open API spec generation to include Route Security Authorization if available ({kibana-pull}197001[#197001]). +* Automatic Import now analyzes larger number of samples to generate an integration ({kibana-pull}196233[#196233]). +* Extended `KibanaRouteOptions` to include security configuration at the route definition level ({kibana-pull}191973[#191973]). +* Adds several UX improvements to the management of Spaces in **Stack Management > Spaces**, including the ability to assign Roles to an existing Space. ({kibana-pull}191795[#191795]). +* Displays an "invalid file" error when selecting unsupported file types for the user profile image ({kibana-pull}190077[#190077]). +* Displays a warning to users whenever role mappings with empty `any` or `all` rules are created or updated ({kibana-pull}189340[#189340]). +* Adds support for CHIPS cookies ({kibana-pull}188519[#188519]). +* Adds support for Permissions Policy reporting ({kibana-pull}186892[#186892]). +Machine Learning:: +* File upload: enables check for model allocations ({kibana-pull}197395[#197395]). +* Data visualizer: Adds icons for semantic text, sparse vector, and dense vector ({kibana-pull}196069[#196069]). +* Updates vCPUs ranges for start model deployment ({kibana-pull}195617[#195617]). +* Adds ML tasks to the Kibana audit log ({kibana-pull}195120[#195120]). +* Anomaly Detection: adds ability to delete forecasts from job ({kibana-pull}194896[#194896]). +* Updates for Trained Models table layout and model states ({kibana-pull}194614[#194614]). +* Log rate analysis: ensures ability to sort on Log rate change ({kibana-pull}193501[#193501]). +* Single Metric Viewer: Enables cross-filtering for 'by', 'over', and 'partition' field values ({kibana-pull}193255[#193255]). +* Adds link to anomaly detection configurations from Integration > Assets tab ({kibana-pull}193105[#193105]). +* Anomaly Explorer: Displays markers for scheduled events in distribution-type anomaly charts ({kibana-pull}192377[#192377]). +* Serverless Security: Adds ES|QL visualizer menu item to the nav ({kibana-pull}192314[#192314]). +* Updates icons for Machine Learning embeddable dashboard panel types ({kibana-pull}191718[#191718]). +* AIOps: Uses no minimum time range by default for pattern analysis ({kibana-pull}191192[#191192]). +* Links to ML assets from Integration > Assets tab ({kibana-pull}189767[#189767]). +* Utilizes the `DataViewLazy` in ML plugin ({kibana-pull}189188[#189188]). +* AIOps: Chunks groups of field candidates into single queries for top items and histograms ({kibana-pull}189155[#189155]). +* AIOps: Updates fields filter popover to be able to filter fields from analysis (not just grouping) ({kibana-pull}188913[#188913]). +* Single Metric Viewer embeddable: adds forecasting ({kibana-pull}188791[#188791]). +* Adds new custom rule action to force time shift ({kibana-pull}188710[#188710]). +* AIOps: Chunks groups of field candidates into single queries ({kibana-pull}188137[#188137]). +* AIOps: Adds log rate analysis to alert details page contextual insight ({kibana-pull}187690[#187690]). +* Adds ability to toggle visibility for empty fields when choosing an aggregation or field in Anomaly detection, data frame analytics ({kibana-pull}186670[#186670]). +* Anomaly Detection: Adds popover links menu to anomaly explorer charts ({kibana-pull}186587[#186587]). +Management:: +* Adds an option to show or hide empty fields in dropdown lists in Transform ({kibana-pull}195485[#195485]). +* Adds a confirmation dialog when deleting a transform from a warning banner ({kibana-pull}192080[#192080]). +* Improves the autocomplete to suggest fields for the `dense_vector` type in Console ({kibana-pull}190769[#190769]). +* Adds the ability to view an ILM policy details in read-only mode ({kibana-pull}186955[#186955]). + +[float] +[[fixes-v8.16.0]] +=== Bug fixes +Alerting:: +* Show up to 1k maintenance windows in the UI ({kibana-pull}198504[#198504]) +* Skip scheduling actions for the alerts without scheduledActions ({kibana-pull}195948[#195948]). +* Fixes Stack Alerts feature API access control ({kibana-pull}193948[#193948]). +* Remove unintended internal find routes API with public access ({kibana-pull}193757[#193757]). +* Convert timestamp before passing to validation ({kibana-pull}192379[#192379]). +* Grouped over field is not populated correctly when editing a rule ({kibana-pull}192297[#192297]). +* Mark slack rate-limiting errors as user errors ({kibana-pull}192200[#192200]). +* Fixes maintenance window filtering with wildcards ({kibana-pull}194777[#194777]). +* Fixes search filters in rules, alerts, and maintenance windows ({kibana-pull}193623[#193623]). +Cases:: +* Use absolute time ranges when adding visualizations to a case ({kibana-pull}189168[#189168]). +* Fixes custom fields with long text that could not be edited in the UI ({kibana-pull}190490[#190490]). +Dashboards and visualizations:: +* Correctly show full screen mode when opening a dashboard or panel from a URL that contains the fullScreenMode parameter ({kibana-pull}196275[#196275]) and ({kibana-pull}190086[#190086]). +* Fixes an issue that could cause a the dashboard list to stay in loading state ({kibana-pull}195277[#195277]). +* Correctly use the same field icons as Discover ({kibana-pull}194095[#194095]). +* Fixes an issue where panels could disappear from a dashboard when canceling edit after saving the dashboard ({kibana-pull}193914[#193914]). +* Adds scroll margin to panels ({kibana-pull}193430[#193430]). +* Fixes an issue with the breadcrumb update icon not working when clicked ({kibana-pull}192240[#192240]). +* Fixes an issue where unsaved changes could remain after saving a dashboard ({kibana-pull}190165[#190165]). +* Fixes an issue causing the flyout to close when canceling the Save to library action ({kibana-pull}188995[#188995]). +* Fixes incomplete string escaping and encoding in *TSVB* ({kibana-pull}196248[#196248]). +* Fixes an issue where label truncation in heat map legends was not working properly in *Lens* ({kibana-pull}195928[#195928]). +* Fixes an issue where the color picker and axis side settings were incorrectly available in the breakdown dimension editor for XY charts in *Lens* ({kibana-pull}195845[#195845]). +* Fixes the tooltip position on faceted charts in *Vega* ({kibana-pull}194620[#194620]). +* Fixes the filter out legend action for ES|QL visualizations ({kibana-pull}194374[#194374]). +* Fixes element sizing issues in full screen mode in *Vega* ({kibana-pull}194330[#194330]). +* Fixes the default cell text alignment setting for non-numeric field types in *Lens* ({kibana-pull}193886[#193886]). +* Limits the height of the query bar input for long KQL queries ({kibana-pull}193737[#193737]). +* Makes the title correctly align left after removing an icon in **Lens** metric charts ({kibana-pull}191057[#191057]). +* Fixes a "No data" error caused by the "Collapse by" setting in **Lens** metric charts ({kibana-pull}190966[#190966]). +* Fixes an issue causing the color of a cell to disappear when clicking the "Expand cell" icon in *Lens* ({kibana-pull}190618[#190618]). +* Removes unnecessary index pattern references from Lens charts ({kibana-pull}190296[#190296]). +* Fixes several accessibility issues ({kibana-pull}188624[#188624]). +Data ingestion and Fleet:: +* Revert "Fix client-side validation for agent policy timeout fields" ({kibana-pull}194338[#194338]). +* Adds proxy arguments to install snippets ({kibana-pull}193922[#193922]). +* Rollover if dimension mappings changed in dynamic templates ({kibana-pull}192098[#192098]). +Discover:: +* Fixes an issue with search highlighting ({kibana-pull}197607[#197607]). +* Correctly pass embeddable filters to the Surrounding Documents page ({kibana-pull}197190[#197190]). +* Fixes trailing decimals dropped from client side validation messages ({kibana-pull}196570[#196570]). +* Fixes several validation issues and creates an expression type evaluator for ES|QL queries ({kibana-pull}195989[#195989]). +* Fixes duplicate autocomplete suggestions for `WHERE` clauses and suggestions with no space in between in ES|QL queries ({kibana-pull}195771[#195771]). +* Improves variable and field name handling in ES|QL queries ({kibana-pull}195149[#195149]). +* Fixes an issue where the Unified Field List popover could get cut off ({kibana-pull}195147[#195147]). +* Fixes the width for saved object type columns ({kibana-pull}194388[#194388]). +* Adds tooltips to Discover button icons ({kibana-pull}192963[#192963]). +* Excludes inactive integration data stream suggestions ({kibana-pull}192953[#192953]). +* Fixes new variables being suggested in incorrect places ({kibana-pull}192405[#192405]). +* Only log requests in the Inspector when they completed ({kibana-pull}191232[#191232]). +ES|QL editor:: +* Fixes an issue where the autocomplete suggestions could cause duplicate entries in ES|QL queries ({kibana-pull}190465[#190465]). +* Fixes several styling issues in the ES|QL editor ({kibana-pull}190170[#190170]). +Elastic Observability solution:: +* Change the slice outcome from bad to good whenever there is no data during the slice window ({kibana-pull}196942[#196942]). +* Make agent names generic with otel-native mode ({kibana-pull}195594[#195594]). +* Avoid showing unnecessary error toast ({kibana-pull}195331[#195331]). +* Use `fields` instead of `_source` on APM queries ({kibana-pull}195242[#195242]). +* Fixes ping heatmap payload ({kibana-pull}195107[#195107]). +* Fixes rule modal warnings in the developer console ({kibana-pull}194766[#194766]). +* Avoid AI assistant overlaying AI conversations ({kibana-pull}194722[#194722]). +* Improve loading state for metric items ({kibana-pull}192930[#192930]). +* Fixes issue where heatmap UI crashes on undefined histogram data ({kibana-pull}192508[#192508]). +* Calculate the latest metadata lookback based on the calculated history delay ({kibana-pull}191324[#191324]). +* Remove dedicated language setting ({kibana-pull}190983[#190983]). +* Change latest metric to use @timestamp ({kibana-pull}190417[#190417]). +* Prevent initial error when adding filters ({kibana-pull}190214[#190214]). +* Display error message when failing to enable machine learning anomaly detection in Inventory ({kibana-pull}189627[#189627]). +* Convert route validation to Zod ({kibana-pull}188691[#188691]). +* Fixes functions table height in asset details view profiling tab ({kibana-pull}188650[#188650]). +* Adds four decimal places float validation for transaction_sample_rate ({kibana-pull}188555[#188555]). +* Centralize data fetching and better control of when data can be refreshed ({kibana-pull}187736[#187736]). +* Fixes heatmap on monitor detail/history page for very large doc counts ({kibana-pull}184177[#184177]). +* Adds settings to serverless allowlist ({kibana-pull}190098[#190098]). +* Set missing group to false by default and show checkbox value in disable mode ({kibana-pull}188402[#188402]). +Elastic Search solution:: +* Fixes an issue with the {ref}/es-connectors-network-drive.html[Network Drive connector] where advanced configuration fields were not displayed for CSV file role mappings with `Drive Type: Linux` selected. +Elastic Security solution:: +For the Elastic Security 8.16.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Kibana platform:: +* Fixes an issue causing a wrong date to show in the header of a report when generated from relative date ({kibana-pull}197027[#197027]). +* Fixes an issue where the Created and Updated timestamps for Dashboards were ignoring the default timezone settings in Advanced settings. ({kibana-pull}196977[#196977]). +* Fixes an issue causing searches including a colon `:` character to show inaccurate results ({kibana-pull}190464[#190464]). +Kibana security:: +* Fixes an issue where an LLM was likely to generate invalid processors containing array access in Automatic Import ({kibana-pull}196207[#196207]). +Machine Learning:: +* File upload: fixes PDF character count limit ({kibana-pull}197333[#197333]). +* Data Drift: Updates brush positions on window resize fix ({kibana-pull}196830[#196830]). +* AIOps: Fixes issue where some queries cause filters to not be applied ({kibana-pull}196585[#196585]). +* Transforms: Limits the data grid result window ({kibana-pull}196510[#196510]). +* Fixes Anomaly Swim Lane Embeddable not updating properly on query change ({kibana-pull}195090[#195090]). +* Hides ES|QL based saved searches in ML & Transforms ({kibana-pull}195084[#195084]). +* Fixes query for pattern analysis and change point analysis ({kibana-pull}194742[#194742]). +* Anomaly explorer: Shows data gaps and connect anomalous points on Single Metric Charts ({kibana-pull}194119[#194119]). +* Fixes file upload with no ingest pipeline ({kibana-pull}193744[#193744]). +* Disables field statistics panel in Dashboard if ES|QL is disabled ({kibana-pull}193587[#193587]). +* Fixes display of assignees when attaching ML panels to a new case ({kibana-pull}192163[#192163]). +* Anomaly explorer: Fixes the order of the coordinates displayed on the map tooltip ({kibana-pull}192077[#192077]). +* Fixes links to the Single Metric Viewer from the Annotations and Forecasts tables ({kibana-pull}192000[#192000]). +* Trained models: fixes responsiveness of state column for smaller displays ({kibana-pull}191900[#191900]). +* File upload: increases timeout for upload request ({kibana-pull}191770[#191770]). +* Improves expired license check ({kibana-pull}191503[#191503]). +Management:: +* Fixes the pagination of the source documents data grid in Transforms ({kibana-pull}196119[#196119]). +* Fixes autocomplete suggestions after a comma in Console ({kibana-pull}189656[#189656]). + +[[release-notes-8.15.4]] +== {kib} 8.15.4 + +The 8.15.4 release includes the following bug fixes. + +[float] +[[fixes-v8.15.4]] +=== Bug fixes +Dashboards and visualizations:: +* Fixes incomplete string escaping and encoding in *TSVB* ({kibana-pull}196248[#196248]). +* Adds scroll margin to panels ({kibana-pull}193430[#193430]). +* Fixes an issue where label truncation in heat map legends was not working properly in *Lens* ({kibana-pull}195928[#195928]). +Discover:: +* Fixes the width for saved object Type column ({kibana-pull}194388[#194388]). +Elastic Observability solution:: +* Changes the slice outcome from bad to good whenever there is no data during the slice window ({kibana-pull}196942[#196942]). +Elastic Search solution:: +* Fixes a bug with the {ref}/es-connectors-network-drive.html[Network Drive connector] where advanced configuration fields were not displayed for CSV file role mappings with `Drive Type: Linux` selected ({kibana-pull}195567[#195567]). +Elastic Security solution:: +For the Elastic Security 8.15.4 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Kibana platform:: +* Fixes an issue causing the wrong date to show in the header of a report when generated from a relative date ({kibana-pull}197027[#197027]). +* Fixes an issue with the export options for PNG/PDF reports in a dashboard ({kibana-pull}192530[#192530]). +Machine Learning:: +* Fixes an issue preventing Anomaly swim lane panels from updating on query changes ({kibana-pull}195090[#195090]). +Management:: +* Fixes the pagination of the source documents data grid in Transforms ({kibana-pull}196119[#196119]). + +[[release-notes-8.15.3]] +== {kib} 8.15.3 + +The 8.15.3 release includes the following bug fixes. + +[float] +[[fixes-v8.15.3]] +=== Bug fixes +Alerting:: +* Fixes a storage configuration error that could prevent the Stack Management > Alerts page from loading correctly ({kibana-pull}194785[#194785]). +* Fixes a bug preventing certain alerts with Role visibility set to "Stack Rules" from being shown on the Stack Management page ({kibana-pull}194615[#194615]). +* Fixes an issue where rules created from Discover before version 8.11.0 could no longer be accessed after upgrading ({kibana-pull}192321[#192321]). +Dashboards:: +* Fixes an issue where the `embed=true` parameter was missing when sharing a dashboard with the Embed code option ({kibana-pull}194366[#194366]). +Discover:: +* Fixes an issue with the document viewer panel not opening in focus mode ({kibana-pull}191039[#191039]). +Elastic Observability solution:: +* Fixes the OpenTelemetry guided onboarding for MacOS with x86_64 architectures ({kibana-pull}194915[#194915]). +* Fixes a bug where the SLO creation form was allowing multiple values for timestamp fields ({kibana-pull}194311[#194311]). +Elastic Search solution:: +* Fixes a bug with the https://www.elastic.co/guide/en/enterprise-search/8.15/connectors-network-drive.html[Network Drive connector] where advanced configuration fields were not displayed for CSV file role mappings with `Drive Type: Linux` selected ({kibana-pull}195567[#195567]). +Elastic Security solution:: +For the Elastic Security 8.15.3 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Kibana security:: +* Automatic Import no longer asks the LLM to map fields to reserved ECS fields ({kibana-pull}195168[#195168]). +* Fixes an issue that was causing the Grok processor to return non-ECS compatible fields when processing structured or unstructured syslog samples in Automatic Import ({kibana-pull}194727[#194727]). +* Fixes the integrationName when uploading a new version of an existing integration using a ZIP upload ({kibana-pull}194298[#194298]). +* Fixes a bug that caused the Deploy step of Automatic Import to fail after a pipeline was edited and saved ({kibana-pull}194203[#194203]). +* Fixes an issue in the Kibana Management > Roles page where users could not sort the table by clicking the column headers ({kibana-pull}194196[#194196]). +Lens & Visualizations:: +* Fixes an issue where the legend label truncation setting wasn't working properly for heat maps in Lens ({kibana-pull}195928[#195928]). +Machine Learning:: +* Fixes an issue preventing Anomaly swim lane panels from updating on query changes ({kibana-pull}195090[#195090]). +* Fixes an issue that could cause the "rows per page" option to disappear from the Anomaly timeline view in the Anomaly Explorer ({kibana-pull}194531[#194531]). +* Fixes an issue causing screen flickering on the Results Explorer and Analytics Map pages when no jobs are available ({kibana-pull}193890[#193890]). + + +[[release-notes-8.15.2]] +== {kib} 8.15.2 + +The 8.15.2 release includes the following enhancements and bug fixes. + +[float] +[[enhancement-v8.15.2]] +=== Enhancements +Elastic Security solution:: +For the Elastic Security 8.15.2 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Fleet:: +* Bumps maximum supported package spec version to 3.2 ({kibana-pull}193574[#193574]). +Kibana security:: +* Adds a feature to add support for handling `syslogs with unsupported message body` ({kibana-pull}192817[#192817]). +* Automatic Import now performs reproducible sampling from the list of log entries instead of just truncating them ({kibana-pull}191598[#191598]). +* Adds support for Google Gemini, OpenAI, and Azure OpenAI connectors to Automatic Import ({kibana-pull}191577[#191577]). +* Displays better error messages for issues with logs sample file upload in Automatic Import ({kibana-pull}191310[#191310]). + +[float] +[[fixes-v8.15.2]] +=== Bug fixes +Alerting:: +* Fixes error when saving a rule after toggling alerts filter properties on and off ({kibana-pull}192522[#192522]). +Dashboards:: +* Fixes map layers that disappear from map panel when using session storage to continue editing a dashboard ({kibana-pull}193629[#193629]). +Discover:: +* Fixes "View conflicts" button when a data view ID has special characters ({kibana-pull}192374[#192374]). +Elastic Observability solution:: +* Fixes OpenTelemetry agent names ({kibana-pull}193134[#193134]). +* Resolves an issue for multi-step browser journeys where timings for cached resources within the same step were inaccurate within the waterfall chart ({kibana-pull}193089[#193089]). +* Updates parsing to skip replacing missing values in Synthetics monitors ({kibana-pull}192662[#192662]). +Elastic Security solution:: +For the Elastic Security 8.15.2 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Fleet:: +* Prevents extra agent_status call with empty policyId ({kibana-pull}192549[#192549]). +* Sets correct title for Restart upgrade agent modal under agent list ({kibana-pull}192536[#192536]). +Kibana security:: +* Stops removing message field for unstructured logs when using Automatic Import ({kibana-pull}193678[#193678]). +* Integrations created using Automatic Import now indicate that they have been developed by the `Community` instead of Elastic ({kibana-pull}193002[#193002]). +* Fixes issues with rendering the package manifest in Automatic Import ({kibana-pull}192316[#192316]). +Machine Learning:: +* Fixes deletion in Check interval input for anomaly detection rule ({kibana-pull}193420[#193420]). +* Fixes unnecessary ML services initialization during plugin setup ({kibana-pull}193153[#193153]). +* Fixes link to anomaly detection wizard from pattern analysis in Discover ({kibana-pull}192375[#192375]). +* Fixes an issue with the `http_endpoint` input config loading incorrectly in an Automatic Import workflow ({kibana-pull}191964[#191964]). + + [[release-notes-8.15.1]] == {kib} 8.15.1 @@ -186,6 +699,14 @@ you make the necessary updates after you upgrade to 8.15.0. The Uptime app is already hidden from Kibana when there is no recent Heartbeat data, but will be completely removed in 9.0.0. You should migrate to Synthetics as an alternative. For more details, refer to the {observability-guide}/uptime-intro.html[Uptime documentation]. ==== +[discrete] +.<> are deprecated in 8.15.0 and will be removed in a future version. +[%collapsible] +==== +*Details* + +Search sessions are now deprecated and will be removed in a future version. By default, queries that take longer than 10 minutes (the default for the advanced setting `search:timeout`) will be canceled. To allow queries to run longer, consider increasing `search:timeout` or setting it to `0` which will allow queries to continue running as long as a user is waiting on-screen for results. +==== + [float] [[breaking-changes-8.15.0]] === Breaking changes @@ -194,7 +715,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.15.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-184036]] .Adds rate limiting to install by upload endpoint. [%collapsible] ==== @@ -613,7 +1133,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.14.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-182074]] .Renamed an advanced setting to enable {esql}. [%collapsible] ==== @@ -1064,7 +1583,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.13.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-176879]] .Removes conditional topics for Kafka outputs [%collapsible] ==== @@ -1073,7 +1591,6 @@ The Kafka output no longer supports conditional topics. For more information, re ==== [discrete] -[[breaking-176443]] .Most Fleet installed integrations are now read-only and labelled with a *Managed* tag in the Kibana UI [%collapsible] ==== @@ -1089,7 +1606,6 @@ For more information, refer to ({kibana-pull}172393[#172393]). ==== [discrete] -[[breaking-174674]] .Removes `is_nan`, `is_finite`, and `is_infinite` functions from {esql} [%collapsible] ==== @@ -1465,7 +1981,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.12.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-172224]] .New SLO architecture [%collapsible] ==== @@ -1489,7 +2004,6 @@ Be aware that when installing a new SLO (or after resetting an SLO), we install ==== [discrete] -[[breaking-170635]] .A new sub-feature privilege to control user access to the cases settings [%collapsible] ==== @@ -1873,21 +2387,21 @@ Before you upgrade to 8.11.0, review the breaking changes, then mitigate the imp [discrete] -[[breaking-167085]] .Improve config output validation for default output. [%collapsible] ==== *Details* + Improve config output validation to not allow to defining multiple default outputs in {kib} configuration. For more information, refer to ({kibana-pull}167085[#167085]). ==== + [discrete] -[[breaking-161806]] .Convert filterQuery to KQL. [%collapsible] ==== *Details* + Converts `filterQuery` to a KQL query string. For more information, refer to ({kibana-pull}161806[#161806]). ==== + [float] [[deprecations-8.11.0]] === Deprecations @@ -2217,7 +2731,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.10.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-162665]] .New summary search capabilities cause existing SLOs to stop working [%collapsible] ==== @@ -2295,7 +2808,6 @@ DELETE .slo-observability.sli-v1* ==== [discrete] -[[breaking-162506]] .Get case metrics APIs now internal [%collapsible] ==== @@ -2304,7 +2816,6 @@ The get case metrics APIs are now internal. For more information, refer to ({kib ==== [discrete] -[[breaking-162492]] .Case limits [%collapsible] ==== @@ -2326,7 +2837,6 @@ For the full list, refer to {kib-issue}146945[#146945]. ==== [discrete] -[[breaking-159041]] .`addProcessorDefinition` is removed [%collapsible] ==== @@ -2335,7 +2845,6 @@ The function `addProcessorDefinition` is removed from the Console plugin start c ==== [discrete] -[[breaking-162288]] .The Download CSV endpoint has changed. [%collapsible] ==== @@ -2652,7 +3161,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.9.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-159118]] .Hide Uptime app if no data is available [%collapsible] ==== @@ -2662,7 +3170,6 @@ For synthetic monitoring, we now recommend to use the new Synthetics app. For mo ==== [discrete] -[[breaking-159012]] .Remove synthetics pattern from Uptime settings [%collapsible] ==== @@ -3235,7 +3742,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.8.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-155470]] .Removes legacy project monitor API [%collapsible] ==== @@ -3247,7 +3753,6 @@ In 8.8.0 and later, an error appears when you use the project monitor API. ==== [discrete] -[[breaking-147985]] .Changes the privileges for alerts and cases [%collapsible] ==== @@ -3752,7 +4257,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.7.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-149482]] .Removes the fields list sampling setting [%collapsible] ==== @@ -3764,7 +4268,6 @@ In 8.1.0 and later, {kib} uses the field caps API, by default, to determine the ==== [discrete] -[[breaking-146990]] .Removes the legacy pie chart visualization setting [%collapsible] ==== @@ -3772,11 +4275,10 @@ In 8.1.0 and later, {kib} uses the field caps API, by default, to determine the `visualization:visualize:legacyPieChartsLibrary` has been removed from *Advanced Settings*. The setting allowed you to create aggregation-based pie chart visualizations using the legacy charts library. For more information, refer to {kibana-pull}146990[#146990]. *Impact* + -In 7.14.0 and later, the new aggregation-based pie chart visualization is available by default. For more information, check link:https://www.elastic.co/guide/en/kibana/current/add-aggregation-based-visualization-panels.html[Aggregation-based]. +In 7.14.0 and later, the new aggregation-based pie chart visualization is available by default. For more information, check <>. ==== [discrete] -[[breaking-147616]] .Removes the current_upgrades endpoint [%collapsible] ==== @@ -3788,7 +4290,6 @@ When you upgrade to 8.7.0, use the `/action_status` endpoint. ==== [discrete] -[[breaking-147199]] .Removes the preconfiguration API route [%collapsible] ==== @@ -4251,7 +4752,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.6.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-143081]] .Changes the `histogram:maxBars` default setting [%collapsible] ==== @@ -4267,7 +4767,6 @@ For each {kibana-ref}/xpack-spaces.html[space], complete the following to change ==== [discrete] -[[breaking-158338]] .CSV reports use PIT instead of Scroll [%collapsible] ==== @@ -4695,7 +5194,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.5.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-141757]] .Updates bulk action API to return actionId instead of agent success [%collapsible] ==== @@ -4707,7 +5205,6 @@ When you use `FleetBulkResponse`, you now receive only `actionId` responses. ==== [discrete] -[[breaking-139431]] .Removes filter validation for ad-hoc data views [%collapsible] ==== @@ -4719,7 +5216,6 @@ Filters associated with unknown data views now display a warning message instead ==== [discrete] -[[breaking-138677]] .Removes the `package_policies` field from the agent policy saved object [%collapsible] ==== @@ -5193,7 +5689,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.4.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-135669]] .xpack.agents.* are uneditable in UI when defined in kibana.yml [%collapsible] ==== @@ -5207,7 +5702,6 @@ To configure `setxpack.fleet.agents.fleet_server.hosts` and `xpack.fleet.agents. ==== [discrete] -[[breaking-134336]] .Removes the legacy charts library [%collapsible] ==== @@ -5784,7 +6278,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-129581]] .Removes Quandl and Graphite integrations [%collapsible] ==== @@ -5798,7 +6291,6 @@ To leave your feedback about the removal of `.quandl` and `.graphite`, go to the ==== [discrete] -[[breaking-134855]] .Makes Osquery All with All base privilege [%collapsible] ==== @@ -6775,7 +7267,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.1.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-121435]] .Removes legacy CSV export type [%collapsible] ==== @@ -6787,7 +7278,6 @@ If you are using 7.13.0 and earlier, {kibana-ref-all}/8.1/automating-report-gene ==== [discrete] -[[breaking-121369]] .Removes legacy PDF shim [%collapsible] ==== @@ -7139,7 +7629,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.0.0, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-123754]] .Removes the `console.ssl` setting [%collapsible] ==== @@ -7267,7 +7756,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-122722]] .Removes the ability to use `elasticsearch.username: elastic` in production [%collapsible] ==== @@ -7349,7 +7837,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-118854]] .Splits package policy `upgrade` endpoint for Fleet [%collapsible] ==== @@ -7385,7 +7872,6 @@ The endpoint is now split into two separate endpoints: ==== [discrete] -[[breaking-119945]] .Removes APM jobs from Machine Learning [%collapsible] ==== @@ -7397,7 +7883,6 @@ When you upgrade to 8.0.0, you are unable to create and view the APM Node.js and ==== [discrete] -[[breaking-118300]] .Fails migrations for unknown types [%collapsible] ==== @@ -7409,7 +7894,6 @@ To complete the migration, re enable plugins or delete documents from the index ==== [discrete] -[[breaking-116821]] .Removes deprecated config fields from Logs and Metrics APIs and saved objects [%collapsible] ==== @@ -7440,7 +7924,6 @@ To review the breaking changes in previous versions, refer to the following: Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade. [discrete] -[[deprecation-120689]] .Renames the `autocreate` data view APM setting [%collapsible] ==== @@ -7452,7 +7935,6 @@ To automatically create data views in APM, use `xpack.apm.autoCreateApmDataView` ==== [discrete] -[[deprecation-119494]] .Updates Fleet API to improve consistency [%collapsible] ==== @@ -7649,7 +8131,6 @@ To review the breaking changes in previous versions, refer to the following: ==== Alerting [discrete] -[[breaking-114558]] .Removes `xpack.task_manager.index` [%collapsible] ==== @@ -7661,7 +8142,6 @@ Before you upgrade to 8.0.0, remove `xpack.task_manager.index` from kibana.yml. ==== [discrete] -[[breaking-113461]] .Removes ability to remove plugins [%collapsible] ==== @@ -7677,7 +8157,6 @@ Before you upgrade to 8.0.0, remove `xpack.actions.enabled` from kibana.yml. ==== Lens & visualizations [discrete] -[[breaking-113516]] .Removes display options from legacy gauge [%collapsible] ==== @@ -7689,7 +8168,6 @@ When you create aggregation-based gauge visualizations, the *Display warnings* o ==== [discrete] -[[breaking-112643]] .Removes settings from visEditors plugins [%collapsible] ==== @@ -7734,7 +8212,6 @@ Before you upgrade, make the following changes in kibana.yml: ==== [discrete] -[[breaking-111704]] .Removes dimming opacity setting [%collapsible] ==== @@ -7746,7 +8223,6 @@ When you upgrade to 8.0.0, you are no longer able to configure the dimming opact ==== [discrete] -[[breaking-110985]] .Removes Less stylesheet support [%collapsible] ==== @@ -7758,7 +8234,6 @@ Existing less stylesheets are automatically converted to CSS stylesheets. ==== [discrete] -[[breaking-110571]] .Disables the input string mode [%collapsible] ==== @@ -7780,7 +8255,6 @@ To use index patterns and {es} indices in *TSVB* visualizations: ==== Logs [discrete] -[[breaking-115974]] .Removes deprecated alias config entries [%collapsible] ==== @@ -7792,7 +8266,6 @@ Before you upgrade, remove the settings from kibana.yml, then configure the sett ==== [discrete] -[[breaking-61302]] .Removes configurable fields in settings [%collapsible] ==== @@ -7808,7 +8281,6 @@ Configure the settings in https://www.elastic.co/guide/en/ecs/current/ecs-refere ==== Machine learning [discrete] -[[breaking-115444]] .Grants access to machine learning features when base privileges are used [%collapsible] ==== @@ -7824,7 +8296,6 @@ If you do not want to grant users privileges to machine learning features, updat ==== Maps [discrete] -[[breaking-116184]] .Removes proxyElasticMapsServiceInMaps [%collapsible] ==== @@ -7840,7 +8311,6 @@ Install the on-prem version of the <>, ==== Operations [discrete] -[[breaking-111535]] .Removes environment variables [%collapsible] ==== @@ -7856,7 +8326,6 @@ Replace the `CONFIG_PATH` environment variable with `KBN_PATH_CONF`, and replace ==== Platform [discrete] -[[breaking-114379]] .Removes supports for csp.rules configuration [%collapsible] ==== @@ -7868,7 +8337,6 @@ Configuring the default `csp.script_src`, `csp.workers_src`, and `csp.style_src` ==== [discrete] -[[breaking-113653]] .Changes and removes deprecated core settings and deprecated settings from core plugins [%collapsible] ==== @@ -7902,7 +8370,6 @@ For more information, refer to {kibana-pull}113653[#113653]. ==== [discrete] -[[breaking-113495]] .Removes `enabled` settings from plugins [%collapsible] ==== @@ -7919,7 +8386,6 @@ Before you upgrade to 8.0.0: ==== [discrete] -[[breaking-113367]] .Removes `--plugin-dir` cli option [%collapsible] ==== @@ -7931,7 +8397,6 @@ Before you upgrade to 8.0.0, remove `plugins.scanDirs` from kibana.yml. ==== [discrete] -[[breaking-113296]] .Removes support for `optimize.*` settings [%collapsible] ==== @@ -7965,7 +8430,6 @@ To run the `@kbn/optimizer` separately in development, pass `--no-optimizer` to ==== [discrete] -[[breaking-113173]] .Removes `so/server/es` settings [%collapsible] ==== @@ -7984,7 +8448,6 @@ Before you upgrade to 8.0.0., remove these settings from kibana.yml. ==== [discrete] -[[breaking-113068]] .Adds requirement for inline scripting [%collapsible] ==== @@ -7996,7 +8459,6 @@ Enable {ref}/modules-scripting-security.html[inline scripting]. ==== [discrete] -[[breaking-112773]] .Removes `kibana.index` settings [%collapsible] ==== @@ -8008,7 +8470,6 @@ Use spaces, cross-cluster replication, or cross-cluster search. To migrate to << ==== [discrete] -[[breaking-112305]] .Removes legacy logging [%collapsible] ==== @@ -8024,7 +8485,6 @@ Use the new <>. ==== Reporting [discrete] -[[breaking-114216]] .Removes reporting settings [%collapsible] ==== @@ -8050,7 +8510,6 @@ Before you upgrade to 8.0.0, remove the settings from kibana.yml. ==== REST API [discrete] -[[breaking-114730]] .Removes `/api/settings` [%collapsible] ==== @@ -8066,7 +8525,6 @@ Use `/api/stats`. ==== Security [discrete] -[[breaking-116191]] .Removes legacy audit logger [%collapsible] ==== @@ -8153,7 +8611,6 @@ Breaking changes can prevent your application from optimal operation and perform To review the breaking changes in the previous version, refer to <>. [discrete] -[[breaking-110830]] .Changes the `GET /api/status` default behavior [%collapsible] ==== @@ -8165,7 +8622,6 @@ To retrieve the {kib} status in the previous format, use `GET /api/status?v7form ==== [discrete] -[[breaking-110738]] .Removes support for legacy exports [%collapsible] ==== @@ -8177,7 +8633,6 @@ Using the user interface to import saved objects is restricted to `.ndjson` form ==== [discrete] -[[breaking-109896]] .Removes `map.regionmap.*` [%collapsible] ==== @@ -8195,7 +8650,6 @@ If you have maps that use `map.regionmap` layers: ==== [discrete] -[[breaking-109798]] .Removes `kibana.defaultAppId` [%collapsible] ==== @@ -8207,7 +8661,6 @@ When you upgrade, remove `kibana.defaultAppId` from your kibana.yml file. To con ==== [discrete] -[[breaking-109350]] .Removes `courier:batchSearches` [%collapsible] ==== @@ -8219,7 +8672,6 @@ When you upgrade, the `courier:batchSearches` setting will no longer be availabl ==== [discrete] -[[breaking-108111]] .Removes `xpack.task_manager.index` [%collapsible] ==== @@ -8231,7 +8683,6 @@ When you upgrade, remove `xpack.task_manager.index` from your kibana.yml file. ==== [discrete] -[[breaking-108103]] .Removes dashboard-only mode [%collapsible] ==== @@ -8243,7 +8694,6 @@ To grant users access to only dashboards, create a new role, then assign only th ==== [discrete] -[[breaking-105979]] .Removes `xpack.maps.showMapVisualizationTypes` [%collapsible] ==== @@ -8296,7 +8746,6 @@ Breaking changes can prevent your application from optimal operation and perform ==== Enterprise Search changes [discrete] -[[breaking-106307]] .Required security plugin in 8.0 [%collapsible] ==== @@ -8312,7 +8761,6 @@ Enable X-Pack Security. ==== Index pattern changes [discrete] -[[breaking-35173]] .Removed support for time-based interval index patterns [%collapsible] ==== @@ -8328,7 +8776,6 @@ You must migrate your time_based index patterns to a wildcard pattern. For examp ==== Operations changes [discrete] -[[breaking-93835]] .Removed platform from archive root directory [%collapsible] ==== @@ -8340,7 +8787,6 @@ To use the new folder, update the configuration management tools and automation. ==== [discrete] -[[breaking-90511]] .Removed default support for TLS v1.0 and v1.1 [%collapsible] ==== @@ -8352,7 +8798,6 @@ To enable support, set `--tls-min-1.0` in the `node.options` configuration file. ==== [discrete] -[[breaking-74424]] .Removed support for sysv init [%collapsible] ==== @@ -8364,7 +8809,6 @@ If your installation uses .deb or .rpm packages with SysV, migrate to systemd. ==== [discrete] -[[breaking-42353]] .Disabled response logging as a default [%collapsible] ==== @@ -8400,7 +8844,6 @@ logging: ==== Reporting changes [discrete] -[[breaking-52539]] .Legacy job parameters are no longer supported [%collapsible] ==== @@ -8416,7 +8859,6 @@ If you use POST URL snippets to automatically generate PDF reports, regenerate t ==== Security changes [discrete] -[[breaking-47929]] .Removed `/api/security/v1/saml` route [%collapsible] ==== @@ -8428,7 +8870,6 @@ Use the `/api/security/saml/callback` route, or wait to upgrade to 8.0.0-alpha2 ==== [discrete] -[[breaking-41700]] .Reject legacy browsers by default [%collapsible] ==== @@ -8444,7 +8885,6 @@ To enable support for legacy browsers, set `csp.strict: false` in kibana.yml. To ==== Settings changes [discrete] -[[breaking-106061]] .Use new session timeout defaults [%collapsible] ==== @@ -8459,7 +8899,6 @@ Use the following default values: ==== [discrete] -[[breaking-87114]] .Removed support for setting `server.host` to '0' [%collapsible] ==== @@ -8471,7 +8910,6 @@ You are now unable to use `0` as the `server.host`. ==== [discrete] -[[breaking-38657]] .Removed `xpack.security.public` and `xpack.security.authProviders` [%collapsible] ==== @@ -8483,7 +8921,6 @@ Use the `xpack.security.authc.saml.realm` and `xpack.security.authc.providers` s ==== [discrete] -[[breaking-22696]] .Removed useUTC deprecation [%collapsible] ==== @@ -8495,7 +8932,6 @@ The default timezone is UTC. To change the timezone, set `logging.timezone: fals ==== [discrete] -[[breaking-32049]] .Removed environment variables `CONFIG_PATH` and `DATA_PATH` [%collapsible] ==== @@ -8513,7 +8949,6 @@ Use the environment variable `KBN_PATH_CONF` instead of `CONFIG_PATH`. Use the The following functionality is deprecated in 8.0.0, and will be removed in 9.0.0. Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade. [discrete] -[[deprecation-74424]] .Removed support for SysV init [%collapsible] ==== @@ -8525,7 +8960,6 @@ If your system doesn't have `service` aliased to use kibana.service, use `system ==== [discrete] -[[deprecation-33603]] .Removed `xpack:defaultAdminEmail` setting [%collapsible] ==== diff --git a/docs/api/osquery-manager.asciidoc b/docs/api/osquery-manager.asciidoc index 2607bdad1f54f..3e7176e30f31f 100644 --- a/docs/api/osquery-manager.asciidoc +++ b/docs/api/osquery-manager.asciidoc @@ -1,6 +1,12 @@ [[osquery-manager-api]] == Osquery manager API +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Run live queries, manage packs and saved queries Use the osquery manager APIs for managing packs and saved queries. diff --git a/docs/api/osquery-manager/live-queries/create.asciidoc b/docs/api/osquery-manager/live-queries/create.asciidoc index c080cfe08a903..fcddf247e3e8e 100644 --- a/docs/api/osquery-manager/live-queries/create.asciidoc +++ b/docs/api/osquery-manager/live-queries/create.asciidoc @@ -4,6 +4,12 @@ Create live query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Create live queries. diff --git a/docs/api/osquery-manager/live-queries/get-all.asciidoc b/docs/api/osquery-manager/live-queries/get-all.asciidoc index 58845d3c498e6..3586c52577ae3 100644 --- a/docs/api/osquery-manager/live-queries/get-all.asciidoc +++ b/docs/api/osquery-manager/live-queries/get-all.asciidoc @@ -4,6 +4,12 @@ Get live queries ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Get live queries. diff --git a/docs/api/osquery-manager/live-queries/get-results.asciidoc b/docs/api/osquery-manager/live-queries/get-results.asciidoc index 9c7fa1833e0de..53fcaa35abf09 100644 --- a/docs/api/osquery-manager/live-queries/get-results.asciidoc +++ b/docs/api/osquery-manager/live-queries/get-results.asciidoc @@ -4,6 +4,12 @@ Get live query results ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Retrieve a single live query result by ID. diff --git a/docs/api/osquery-manager/live-queries/get.asciidoc b/docs/api/osquery-manager/live-queries/get.asciidoc index 8cf5a3abd1c3c..b2a1e9bf7bfd1 100644 --- a/docs/api/osquery-manager/live-queries/get.asciidoc +++ b/docs/api/osquery-manager/live-queries/get.asciidoc @@ -4,6 +4,12 @@ Get live query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Retrieves a single live query by ID. diff --git a/docs/api/osquery-manager/packs/create.asciidoc b/docs/api/osquery-manager/packs/create.asciidoc index 84e8c3e71eb5c..c23d2e40a4ba2 100644 --- a/docs/api/osquery-manager/packs/create.asciidoc +++ b/docs/api/osquery-manager/packs/create.asciidoc @@ -4,6 +4,12 @@ Create pack ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Create packs. diff --git a/docs/api/osquery-manager/packs/delete.asciidoc b/docs/api/osquery-manager/packs/delete.asciidoc index ae0834e6f2b4a..8a7832d91e3c7 100644 --- a/docs/api/osquery-manager/packs/delete.asciidoc +++ b/docs/api/osquery-manager/packs/delete.asciidoc @@ -4,6 +4,12 @@ Delete pack ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Delete packs. WARNING: Once you delete a pack, _it cannot be recovered_. diff --git a/docs/api/osquery-manager/packs/get-all.asciidoc b/docs/api/osquery-manager/packs/get-all.asciidoc index 44c36947f46b0..bf007d44e61a1 100644 --- a/docs/api/osquery-manager/packs/get-all.asciidoc +++ b/docs/api/osquery-manager/packs/get-all.asciidoc @@ -4,6 +4,12 @@ Get packs ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Get packs. diff --git a/docs/api/osquery-manager/packs/get.asciidoc b/docs/api/osquery-manager/packs/get.asciidoc index 795adef90e24d..6686751d6902e 100644 --- a/docs/api/osquery-manager/packs/get.asciidoc +++ b/docs/api/osquery-manager/packs/get.asciidoc @@ -4,6 +4,12 @@ Get pack ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Retrieve a single pack by ID. diff --git a/docs/api/osquery-manager/packs/update.asciidoc b/docs/api/osquery-manager/packs/update.asciidoc index d098d2567f1ac..2e7f6004fd008 100644 --- a/docs/api/osquery-manager/packs/update.asciidoc +++ b/docs/api/osquery-manager/packs/update.asciidoc @@ -4,6 +4,12 @@ Update pack ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Update packs. WARNING: You are unable to update a prebuilt pack (`read_only = true`). diff --git a/docs/api/osquery-manager/saved-queries/create.asciidoc b/docs/api/osquery-manager/saved-queries/create.asciidoc index 75b764ded6023..e137c6cb78484 100644 --- a/docs/api/osquery-manager/saved-queries/create.asciidoc +++ b/docs/api/osquery-manager/saved-queries/create.asciidoc @@ -4,6 +4,12 @@ Create saved query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Create saved queries. diff --git a/docs/api/osquery-manager/saved-queries/delete.asciidoc b/docs/api/osquery-manager/saved-queries/delete.asciidoc index 5518159a1aa1b..7d0b36de0405d 100644 --- a/docs/api/osquery-manager/saved-queries/delete.asciidoc +++ b/docs/api/osquery-manager/saved-queries/delete.asciidoc @@ -4,6 +4,12 @@ Delete saved query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Delete saved queries. WARNING: Once you delete a saved query, _it cannot be recovered_. diff --git a/docs/api/osquery-manager/saved-queries/get-all.asciidoc b/docs/api/osquery-manager/saved-queries/get-all.asciidoc index 3fc8d1d5da93c..829ee51c6d6e4 100644 --- a/docs/api/osquery-manager/saved-queries/get-all.asciidoc +++ b/docs/api/osquery-manager/saved-queries/get-all.asciidoc @@ -4,6 +4,12 @@ Get saved-queries ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Get saved queries. diff --git a/docs/api/osquery-manager/saved-queries/get.asciidoc b/docs/api/osquery-manager/saved-queries/get.asciidoc index c1d2cd43bab86..b9764c8d27a3f 100644 --- a/docs/api/osquery-manager/saved-queries/get.asciidoc +++ b/docs/api/osquery-manager/saved-queries/get.asciidoc @@ -4,6 +4,12 @@ Get saved query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Retrieve a single saved query by ID. diff --git a/docs/api/osquery-manager/saved-queries/update.asciidoc b/docs/api/osquery-manager/saved-queries/update.asciidoc index 025a69b28e0f0..b7d620efc7692 100644 --- a/docs/api/osquery-manager/saved-queries/update.asciidoc +++ b/docs/api/osquery-manager/saved-queries/update.asciidoc @@ -4,6 +4,12 @@ Update saved query ++++ +.New API Reference +[sidebar] +-- +For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs]. +-- + experimental[] Update saved queries. WARNING: You are unable to update a prebuilt saved query (`prebuilt = true`). diff --git a/docs/api/role-management.asciidoc b/docs/api/role-management.asciidoc index 7fbded3e57dd3..837e63bff74f0 100644 --- a/docs/api/role-management.asciidoc +++ b/docs/api/role-management.asciidoc @@ -1,4 +1,3 @@ -[role="xpack"] [[role-management-api]] == {kib} role management APIs @@ -6,19 +5,4 @@ Manage the roles that grant <>. WARNING: Do not use the {ref}/security-api.html#security-role-apis[{es} role management APIs] to manage {kib} roles. -The following {kib} role management APIs are available: - -* <> to create a new {kib} role, or update the attributes of an existing role -* <> to create a new {kib} roles, or update the attributes of existing roles - -* <> to retrieve all {kib} roles - -* <> to retrieve a specific role - -* <> to delete a {kib} role - -include::role-management/put.asciidoc[] -include::role-management/get.asciidoc[] -include::role-management/get-all.asciidoc[] -include::role-management/delete.asciidoc[] -include::role-management/put-bulk.asciidoc[] +For the latest API details, refer to {api-kibana}/group/endpoint-roles[role APIs]. diff --git a/docs/api/role-management/delete.asciidoc b/docs/api/role-management/delete.asciidoc deleted file mode 100644 index 530e1e252ef8f..0000000000000 --- a/docs/api/role-management/delete.asciidoc +++ /dev/null @@ -1,26 +0,0 @@ -[[role-management-api-delete]] -=== Delete role API -++++ -Delete role -++++ - -experimental[] Delete a {kib} role. - -[[role-management-api-delete-prereqs]] -==== Prerequisite - -To use the delete role API, you must have the `manage_security` cluster privilege. - -[[role-management-api-delete-request-body]] -==== Request - -`DELETE :/api/security/role/my_admin_role` - -[[role-management-api-delete-response-codes]] -==== Response codes - -`204`:: - Indicates a successful call. - -`404`:: - Indicates an unsuccessful call. diff --git a/docs/api/role-management/get-all.asciidoc b/docs/api/role-management/get-all.asciidoc deleted file mode 100644 index 56c8b2c78859b..0000000000000 --- a/docs/api/role-management/get-all.asciidoc +++ /dev/null @@ -1,80 +0,0 @@ -[[role-management-api-get]] -=== Get all {kib} roles API -++++ -Get all roles -++++ - -experimental[] Retrieve all {kib} roles. - -[[role-management-api-get-prereqs]] -==== Prerequisite - -To use the get role API, you must have the `manage_security` cluster privilege. - -[[role-management-api-retrieve-all-request-body]] -==== Request - -`GET :/api/security/role` - -[[role-management-api-retrieve-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[role-management-api-retrieve-all-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "name": "my_kibana_role", - "description": "My kibana role description", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "indices": [ ], - "cluster": [ ], - "run_as": [ ] - }, - "kibana": [{ - "base": [ - "all" - ], - "feature": {}, - "spaces": [ - "*" - ] - }] - }, - { - "name": "my_admin_role", - "description": "My admin role description", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "cluster" : [ "all" ], - "indices" : [ { - "names" : [ "index1", "index2" ], - "privileges" : [ "all" ], - "field_security" : { - "grant" : [ "title", "body" ] - }, - "query" : "{\"match\": {\"title\": \"foo\"}}" - } ], - }, - "kibana": [ ] - } -] --------------------------------------------------- diff --git a/docs/api/role-management/get.asciidoc b/docs/api/role-management/get.asciidoc deleted file mode 100644 index 95f944a56e150..0000000000000 --- a/docs/api/role-management/get.asciidoc +++ /dev/null @@ -1,106 +0,0 @@ -[[role-management-specific-api-get]] -=== Get specific role API -++++ -Get specific role -++++ - -experimental[] Retrieve a specific role. - -[[role-management-specific-api-get-prereqs]] -==== Prerequisite - -To use the get specific role API, you must have the `manage_security` cluster privilege. - -[[role-management-specific-api-retrieve-all-request-body]] -===== Request - -`GET :/api/security/role/my_restricted_kibana_role` - -[[role-management-specific-api-retrieve-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[role-management-specific-api-retrieve-all-example]] -===== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "name": "my_restricted_kibana_role", - "description": "My restricted kibana role description", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ], - "run_as": [ ] - }, - "kibana": [ - { - "base": [ - "read" - ], - "feature": {}, - "spaces": [ - "marketing" - ] - }, - { - "base": [], - "feature": { - "discover": [ - "all" - ], - "visualize": [ - "all" - ], - "dashboard": [ - "all" - ], - "dev_tools": [ - "read" - ], - "advancedSettings": [ - "read" - ], - "indexPatterns": [ - "read" - ], - "graph": [ - "all" - ], - "apm": [ - "read" - ], - "maps": [ - "read" - ], - "canvas": [ - "read" - ], - "infrastructure": [ - "all" - ], - "logs": [ - "all" - ], - "uptime": [ - "all" - ] - }, - "spaces": [ - "sales", - "default" - ] - } - ] -} --------------------------------------------------- diff --git a/docs/api/role-management/put-bulk.asciidoc b/docs/api/role-management/put-bulk.asciidoc deleted file mode 100644 index a11de47167e05..0000000000000 --- a/docs/api/role-management/put-bulk.asciidoc +++ /dev/null @@ -1,377 +0,0 @@ -[[role-management-api-put-bulk]] -=== Bulk create or update roles API -++++ -Bulk create or update roles API -++++ - -preview::["This functionality is in technical preview, and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."] - -experimental[] Create new {kib} roles, or update the attributes of an existing roles. {kib} roles are stored in the -{es} native realm. - -[[role-management-api-put-bulk-request]] -==== Request - -`POST :/api/security/roles` - -[[role-management-api-put-bulk-prereqs]] -==== Prerequisite - -To use the bulk create or update roles API, you must have the `manage_security` cluster privilege. - -[role="child_attributes"] -[[role-management-api-bulk-response-body]] -==== Request body - -`roles`:: - (object) Object that specifies the roles to add as a role name to role map. -`` (required):: (string) The role name. -`description`:: - (Optional, string) Description for the role. - -`metadata`:: - (Optional, object) In the `metadata` object, keys that begin with `_` are reserved for system usage. - -`elasticsearch`:: - (Optional, object) {es} cluster and index privileges. Valid keys include - `cluster`, `indices`, `remote_indices`, `remote_cluster`, and `run_as`. For more information, see - {ref}/defining-roles.html[Defining roles]. - -`kibana`:: - (list) Objects that specify the <> for the role. -+ -.Properties of `kibana` -[%collapsible%open] -===== -`base` ::: - (Optional, list) A base privilege. When specified, the base must be `["all"]` or `["read"]`. - When the `base` privilege is specified, you are unable to use the `feature` section. - "all" grants read/write access to all {kib} features for the specified spaces. - "read" grants read-only access to all {kib} features for the specified spaces. - -`feature` ::: - (object) Contains privileges for specific features. - When the `feature` privileges are specified, you are unable to use the `base` section. - To retrieve a list of available features, use the <>. - -`spaces` ::: - (list) The spaces to apply the privileges to. - To grant access to all spaces, set to `["*"]`, or omit the value. -===== - -[[role-management-api-bulk-put-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -==== Examples - -Grant access to various features in all spaces: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/security/roles -{ - "roles": { - "my_kibana_role_1": { - "description": "my_kibana_role_1_description", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": ["all"], - "visualize": ["all"], - "dashboard": ["all"], - "dev_tools": ["read"], - "advancedSettings": ["read"], - "indexPatterns": ["read"], - "graph": ["all"], - "apm": ["read"], - "maps": ["read"], - "canvas": ["read"], - "infrastructure": ["all"], - "logs": ["all"], - "uptime": ["all"] - }, - "spaces": ["*"] - } - ] - }, - "my_kibana_role_2": { - "description": "my_kibana_role_2_description", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": ["all"], - "visualize": ["all"], - "dashboard": ["all"], - "dev_tools": ["read"], - "logs": ["all"], - "uptime": ["all"] - }, - "spaces": ["*"] - } - ] - } - } -} --------------------------------------------------- -// KIBANA - -Grant dashboard-only access to only the Marketing space for `my_kibana_role_1` and dashboard-only access to only Sales space for `my_kibana_role_2`: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/security/roles -{ - "roles": { - "my_kibana_role_1": { - "description": "Grants dashboard-only access to only the Marketing space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "dashboard": ["read"] - }, - "spaces": ["marketing"] - } - ] - }, - "my_kibana_role_2": { - "description": "Grants dashboard-only access to only the Sales space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "dashboard": ["read"] - }, - "spaces": ["sales"] - } - ] - } - } -} - --------------------------------------------------- -// KIBANA - -Grant full access to all features in the Default space for `my_kibana_role_1` and `my_kibana_role_2`: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/security/roles -{ - "roles": { - "my_kibana_role_1": { - "description": "Grants full access to all features in the Default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": ["all"], - "feature": {}, - "spaces": ["default"] - } - ] - }, - "my_kibana_role_2": { - "description": "Grants full access to all features in the Default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": ["all"], - "feature": {}, - "spaces": ["default"] - } - ] - } - } -} - --------------------------------------------------- -// KIBANA - -Grant different access to different spaces: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/security/roles -{ - "roles": { - "my_kibana_role_1": { - "description": "Grants full access to discover and dashboard features in the default space. Grants read access in the marketing, and sales spaces.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": ["all"], - "dashboard": ["all"] - }, - "spaces": ["default"] - }, - { - "base": ["read"], - "spaces": ["marketing", "sales"] - } - ] - }, - "my_kibana_role_2": { - "description": "Grants full access to discover and dashboard features in the default space. Grants read access in the marketing space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [], - "indices": [] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": ["all"], - "dashboard": ["all"] - }, - "spaces": ["default"] - }, - { - "base": ["read"], - "spaces": ["marketing"] - } - ] - } - } -} - --------------------------------------------------- -// KIBANA - -Grant access to {kib} and {es}: - -[source,sh] --------------------------------------------------- -$ curl -X POST api/security/roles -{ - "roles": { - "my_kibana_role_1": { - "description": "Grants all cluster privileges and full access to index1 and index2. Grants full access to remote_index1 and remote_index2, and the monitor_enrich cluster privilege on remote_cluster1. Grants all Kibana privileges in the default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": ["all"], - "indices": [ - { - "names": ["index1", "index2"], - "privileges": ["all"] - } - ], - "remote_indices": [ - { - "clusters": ["remote_cluster1"], - "names": ["remote_index1", "remote_index2"], - "privileges": ["all"] - } - ], - "remote_cluster": [ - { - "clusters": ["remote_cluster1"], - "privileges": ["monitor_enrich"] - } - ] - }, - "kibana": [ - { - "base": ["all"], - "feature": {}, - "spaces": ["default"] - } - ] - }, - "my_kibana_role_2": { - "description": "Grants all cluster privileges and full access to index1. Grants full access to remote_index1, and the monitor_enrich cluster privilege on remote_cluster1. Grants all Kibana privileges in the default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": ["all"], - "indices": [ - { - "names": ["index1"], - "privileges": ["all"] - } - ], - "remote_indices": [ - { - "clusters": ["remote_cluster1"], - "names": ["remote_index1"], - "privileges": ["all"] - } - ], - "remote_cluster": [ - { - "clusters": ["remote_cluster1"], - "privileges": ["monitor_enrich"] - } - ] - }, - "kibana": [ - { - "base": ["all"], - "feature": {}, - "spaces": ["default"] - } - ] - } - } -} - --------------------------------------------------- -// KIBANA diff --git a/docs/api/role-management/put.asciidoc b/docs/api/role-management/put.asciidoc deleted file mode 100644 index d68f3928a4063..0000000000000 --- a/docs/api/role-management/put.asciidoc +++ /dev/null @@ -1,238 +0,0 @@ -[[role-management-api-put]] -=== Create or update role API -++++ -Create or update role -++++ - -experimental[] Create a new {kib} role, or update the attributes of an existing role. {kib} roles are stored in the -{es} native realm. - -[[role-management-api-put-request]] -==== Request - -`PUT :/api/security/role/my_kibana_role` - -[[role-management-api-put-prereqs]] -==== Prerequisite - -To use the create or update role API, you must have the `manage_security` cluster privilege. - -[role="child_attributes"] -[[role-management-api-response-body]] -==== Request body - -`description`:: - (Optional, string) Description for the role. - -`metadata`:: - (Optional, object) In the `metadata` object, keys that begin with `_` are reserved for system usage. - -`elasticsearch`:: - (Optional, object) {es} cluster and index privileges. Valid keys include - `cluster`, `indices`, `remote_indices`, `remote_cluster`, and `run_as`. For more information, see - {ref}/defining-roles.html[Defining roles]. - -`kibana`:: - (list) Objects that specify the <> for the role. -+ -.Properties of `kibana` -[%collapsible%open] -===== -`base` ::: - (Optional, list) A base privilege. When specified, the base must be `["all"]` or `["read"]`. - When the `base` privilege is specified, you are unable to use the `feature` section. - "all" grants read/write access to all {kib} features for the specified spaces. - "read" grants read-only access to all {kib} features for the specified spaces. - -`feature` ::: - (object) Contains privileges for specific features. - When the `feature` privileges are specified, you are unable to use the `base` section. - To retrieve a list of available features, use the <>. - -`spaces` ::: - (list) The spaces to apply the privileges to. - To grant access to all spaces, set to `["*"]`, or omit the value. -===== - -[[role-management-api-put-query-params]] -==== Query parameters - -`createOnly`:: - (Optional, boolean) When `true`, will prevent overwriting the role if it already exists. - -[[role-management-api-put-response-codes]] -==== Response code - -`204`:: - Indicates a successful call. - -`409`:: - When `createOnly` is true, indicates a conflict with an existing role. - -==== Examples - -Grant access to various features in all spaces: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "description": "my_kibana_role_description", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ] - }, - "kibana": [ - { - "base": [ ], - "feature": { - "discover": [ "all" ], - "visualize": [ "all" ], - "dashboard": [ "all" ], - "dev_tools": [ "read" ], - "advancedSettings": [ "read" ], - "indexPatterns": [ "read" ], - "graph": [ "all" ], - "apm": [ "read" ], - "maps": [ "read" ], - "canvas": [ "read" ], - "infrastructure": [ "all" ], - "logs": [ "all" ], - "uptime": [ "all" ] - }, - "spaces": [ "*" ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant dashboard-only access to only the Marketing space: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "description": "Grants dashboard-only access to only the Marketing space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ] - }, - "kibana": [ - { - "base": [ ], - "feature": { - "dashboard": [ "read" ] - }, - "spaces": [ "marketing" ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant full access to all features in the Default space: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "description": "Grants full access to all features in the Default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ] - }, - "kibana": [ - { - "base": [ "all" ], - "feature": { }, - "spaces": [ "default" ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant different access to different spaces: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "description": "Grants full access to discover and dashboard features in the default space. Grants read access in the marketing, and sales spaces.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ] - }, - "kibana": [ - { - "base": [ ], - "feature": { - "discover": [ "all" ], - "dashboard": [ "all" ] - }, - "spaces": [ "default" ] - }, - { - "base": [ "read"] , - "spaces": [ "marketing", "sales" ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant access to {kib} and {es}: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "description": "Grants all cluster privileges and full access to index1 and index2. Grants full access to remote_index1 and remote_index2, and the monitor_enrich cluster privilege on remote_cluster1. Grants all Kibana privileges in the default space.", - "metadata": { - "version": 1 - }, - "elasticsearch": { - "cluster": [ "all" ], - "indices": [ - { - "names": [ "index1", "index2" ], - "privileges": [ "all" ] - } - ], - "remote_indices": [ - { - "clusters": [ "remote_cluster1" ], - "names": [ "remote_index1", "remote_index2" ], - "privileges": [ "all" ] - } - ], - "remote_cluster": [ - { - "clusters": [ "remote_cluster1" ], - "privileges": [ "monitor_enrich" ] - } - ] - }, - "kibana": [ - { - "base": [ "all" ], - "feature": { }, - "spaces": [ "default" ] - } - ] -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/spaces-management.asciidoc b/docs/api/spaces-management.asciidoc index 91b7ae349b9a8..7390a3815cd65 100644 --- a/docs/api/spaces-management.asciidoc +++ b/docs/api/spaces-management.asciidoc @@ -1,38 +1,4 @@ -[role="xpack"] [[spaces-api]] == {kib} spaces APIs -Manage your {kib} spaces. - -The following {kib} spaces APIs are available: - -* <> to create a {kib} space - -* <> to update an existing {kib} space - -* <> to retrieve a specified {kib} space - -* <> to retrieve all {kib} spaces - -* <> to delete a {kib} space - -* <> to copy saved objects between spaces - -* <> to overwrite saved objects returned as errors from the copy saved objects to space API - -* <> to disable legacy URL aliases if an error is encountered - -* <> to update one or more saved objects to add and/or remove them from specified spaces - -* <> to collect references and spaces context for saved objects - -include::spaces-management/post.asciidoc[] -include::spaces-management/put.asciidoc[] -include::spaces-management/get.asciidoc[] -include::spaces-management/get_all.asciidoc[] -include::spaces-management/delete.asciidoc[] -include::spaces-management/copy_saved_objects.asciidoc[] -include::spaces-management/resolve_copy_saved_objects_conflicts.asciidoc[] -include::spaces-management/disable_legacy_url_aliases.asciidoc[] -include::spaces-management/update_objects_spaces.asciidoc[] -include::spaces-management/get_shareable_references.asciidoc[] +For the latest details, refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. diff --git a/docs/api/spaces-management/copy_saved_objects.asciidoc b/docs/api/spaces-management/copy_saved_objects.asciidoc deleted file mode 100644 index 32f7480a39b87..0000000000000 --- a/docs/api/spaces-management/copy_saved_objects.asciidoc +++ /dev/null @@ -1,491 +0,0 @@ -[role="xpack"] -[[spaces-api-copy-saved-objects]] -=== Copy saved objects to space API -++++ -Copy saved objects to space -++++ - -experimental[] Copy saved objects between spaces. - -It also allows you to automatically copy related objects, so when you copy a `dashboard`, this can automatically copy over the -associated visualizations, {data-sources}, and saved searches, as required. - -You can request to overwrite any objects that already exist in the target space if they share an ID, or you can use the -<> to do this on a per-object basis. - -[[spaces-api-copy-saved-objects-request]] -==== {api-request-title} - -`POST :/api/spaces/_copy_saved_objects` - -`POST :/s//api/spaces/_copy_saved_objects` - -[[spaces-api-copy-saved-objects-path-params]] -==== {api-path-parms-title} - -`space_id`:: - (Optional, string) The ID of the space that contains the saved objects you want to copy. When `space_id` is unspecified in the URL, the - default space is used. - -[role="child_attributes"] -[[spaces-api-copy-saved-objects-request-body]] -==== {api-request-body-title} - -`spaces`:: - (Required, string array) The IDs of the spaces where you want to copy the specified objects. - -`objects`:: - (Required, object array) The saved objects to copy. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -`includeReferences`:: - (Optional, boolean) When set to `true`, all saved objects related to the specified saved objects will also be copied into the target - spaces. The default value is `false`. - -`createNewCopies`:: - (Optional, boolean) Creates new copies of saved objects, regenerates each object ID, and resets the origin. When used, potential conflict - errors are avoided. The default value is `true`. -+ -NOTE: This option cannot be used with the `overwrite` and `compatibilityMode` options. - -`overwrite`:: - (Optional, boolean) When set to `true`, all conflicts are automatically overridden. When a saved object with a matching `type` and `id` - exists in the target space, that version is replaced with the version from the source space. The default value is `false`. -+ -NOTE: This option cannot be used with the `createNewCopies` option. - -`compatibilityMode`:: - (Optional, boolean) Applies various adjustments to the saved objects that are being copied to maintain compatibility between different {kib} - versions. Use this option only if you encounter issues with copied saved objects. -+ -NOTE: This option cannot be used with the `createNewCopies` option. - -[[spaces-api-copy-saved-objects-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -`404`:: - Indicates that the request failed because one or more of the objects specified could not be found. A list of the unresolved objects are included in the 404 response attributes. - -[role="child_attributes"] -[[spaces-api-copy-saved-objects-response-body]] -==== {api-response-body-title} - -``:: - (object) An object that describes the result of the copy operation for the space. Includes the dynamic keys in the response. -+ -.Properties of `` -[%collapsible%open] -===== - `success`::: - (boolean) The copy operation was successful. When set to `false`, some objects may have been copied. For additional information, refer - to the `errors` and `successResults` properties. - - `successCount`::: - (number) The number of objects that successfully copied. - - `errors`::: - (Optional, array) The errors that occurred during the copy operation. When errors are reported, the `success` flag is set to `false`. -+ -NOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and a -`conflict` error. -+ -.Properties of `errors` -[%collapsible%open] -====== - `id`:::: - (string) The saved object ID that failed to copy. - `type`:::: - (string) The type of saved object that failed to copy. - `error`:::: - (object) The error that caused the copy operation to fail. -+ -.Properties of `error` -[%collapsible%open] -======= - `type`:::: - (string) The type of error. For example, `conflict`, `ambiguous_conflict`, `missing_references`, `unsupported_type`, or `unknown`. - Errors marked as `conflict` or `ambiguous_conflict` may be resolved by using the <>. - `destinationId`:::: - (Optional, string) The destination ID that was used during the copy attempt. This is only present on `conflict` error types. - `destinations`:::: - (Optional, array) A list of possible object destinations with `id`, `title`, and `updatedAt` fields to describe each one. This is - only present on `ambiguous_conflict` error types. -======= -====== - - `successResults`::: - (Optional, array) Indicates successfully copied objects, with any applicable metadata. -+ -NOTE: Objects are created when all resolvable errors are addressed, including conflict and missing references errors. For more information, -refer to the <>. - -===== -[[spaces-api-copy-saved-objects-example]] -==== {api-examples-title} - -[[spaces-api-copy-saved-objects-example-1]] -===== Successful copy (with `createNewCopies` enabled) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization, and that has a reference to a {data-source}: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "destinationId": "1e127098-5b80-417f-b0f1-c60c8395358f", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "destinationId": "a610ed80-1c73-4507-9e13-d3af736c8e04", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "destinationId": "bc3c9c70-bf6f-4bec-b4ce-f4189aa9e26b", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all three objects are created. Since these objects were created as new copies, each entry in the -`successResults` array includes a `destinationId` attribute. - -[[spaces-api-copy-saved-objects-example-2]] -===== Successful copy (with `createNewCopies` disabled) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization, and that has a reference to a {data-source}: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true, - "createNewCopies": false -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all three objects are created. - -[[spaces-api-copy-saved-objects-example-3]] -===== Failed copy (with conflict errors) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` and `sales` spaces. In -this example, the dashboard has a reference to a visualization and a *Canvas* workpad, and the visualization has a reference to an index -pattern: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing", "sales"], - "includeReferences": true, - "createNewCopies": false -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 4, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - }, - "sales": { - "success": false, - "successCount": 1, - "errors": [ - { - "id": "my-pattern", - "type": "index-pattern", - "title": "my-pattern-*", - "error": { - "type": "conflict" - }, - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-visualization", - "type": "my-vis", - "title": "Look at my visualization", - "error": { - "type": "conflict", - "destinationId": "another-vis" - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "title": "Look at my canvas", - "error": { - "type": "ambiguous_conflict", - "destinations": [ - { - "id": "another-canvas", - "title": "Look at another canvas", - "updatedAt": "2020-07-08T16:36:32.377Z" - }, - { - "id": "yet-another-canvas", - "title": "Look at yet another canvas", - "updatedAt": "2020-07-05T12:29:54.849Z" - } - ] - }, - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - } - ], - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy for the `marketing` space, and an unsuccessful copy for the `sales` space because the {data-source}, -visualization, and *Canvas* workpad each resulted in a conflict error: - -* A {data-source} with the same ID already exists, which resulted in a conflict error. To resolve the error, overwrite the existing object, -or skip the object. - -* A visualization with a different ID, but the same origin already exists, which resulted in a conflict error. The `destinationId` field -contains the `id` of the other visualization, which caused the conflict. The behavior is added to make sure that new objects that can be -shared between spaces behave in a similar way as legacy non-shareable objects. When a shareable object is copied into a new space, it -retains its origin so that the conflicts are encountered as expected. To resolve, overwrite the specified destination object, or skip the -object. - -* Two *Canvas* workpads with different IDs, but the same origin, already exist, which resulted in a conflict error. The `destinations` array -describes the other workpads which caused the conflict. When a shareable object is copied into a new space, then shared to another space -where an object of the same origin exists, the conflict error occurs. To resolve, pick a destination object to overwrite, or skip the -object. - -Objects are created when the error is resolved using the <>. - -[[spaces-api-copy-saved-objects-example-4]] -===== Failed copy (with missing reference errors) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization and a *Canvas* workpad, and the visualization has a reference to a {data-source}: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true, - "createNewCopies": false -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": false, - "successCount": 2, - "errors": [ - { - "id": "my-vis", - "type": "visualization", - "title": "Look at my visualization", - "error": { - "type": "missing_references", - "references": [ - { - "type": "index-pattern", - "id": "my-pattern-*" - } - ] - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - ] - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - } - ], - } -} ----- - -The result indicates an unsuccessful copy because the visualization resulted in a missing references error. - -Objects are created when the errors are resolved using the <>. diff --git a/docs/api/spaces-management/delete.asciidoc b/docs/api/spaces-management/delete.asciidoc deleted file mode 100644 index b1b453a0e2d3e..0000000000000 --- a/docs/api/spaces-management/delete.asciidoc +++ /dev/null @@ -1,23 +0,0 @@ -[[spaces-api-delete]] -=== Delete space API -++++ -Delete space -++++ - -experimental[] Delete a {kib} space. - -WARNING: When you delete a space, all saved objects that belong to the space are automatically deleted, which is permanent and cannot be undone. - -[[spaces-api-delete-request]] -==== Request - -`DELETE :/api/spaces/space/` - -[[spaces-api-delete-errors-codes]] -==== Response codes - -`204`:: - Indicates a successful call. - -`404`:: - Indicates that the request failed. diff --git a/docs/api/spaces-management/disable_legacy_url_aliases.asciidoc b/docs/api/spaces-management/disable_legacy_url_aliases.asciidoc deleted file mode 100644 index 3f713d9d0c25e..0000000000000 --- a/docs/api/spaces-management/disable_legacy_url_aliases.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -[[spaces-api-disable-legacy-url-aliases]] -=== Disable legacy URL aliases API -++++ -Disable legacy URL aliases -++++ - -experimental[] Disable a <> in {kib}. - -[[spaces-api-disable-legacy-url-aliases-request]] -==== {api-request-title} - -`POST :/api/spaces/_disable_legacy_url_aliases` - -[role="child_attributes"] -[[spaces-api-disable-legacy-url-aliases-request-body]] -==== {api-request-body-title} - -`aliases`:: - (Required, object array) The aliases to disable. -+ -.Properties of `aliases` -[%collapsible%open] -===== - `targetSpace`::: - (Required, string) The space where the alias target object exists. - - `targetType`::: - (Required, string) The type of the alias target object. - - `sourceId`::: - (Required, string) The ID of the alias source object. This is the "legacy" object ID. -===== - -[[spaces-api-disable-legacy-url-aliases-response-codes]] -==== {api-response-codes-title} - -`204`:: - Indicates a successful call. - -[[spaces-api-disable-legacy-url-aliases-example]] -==== {api-examples-title} - -[source,sh] --------------------------------------------------- -$ curl -X POST api/spaces/_disable_legacy_url_aliases -{ - "aliases": [ - { - "targetSpace": "bills-space", - "targetType": "dashboard", - "sourceId": "123" - } - ] -} --------------------------------------------------- -// KIBANA - -This example leaves the alias intact, but the legacy URL for this alias, http://localhost:5601/s/bills-space/app/dashboards#/view/123, will -no longer function. The dashboard still exists, and you can access it with the new URL. \ No newline at end of file diff --git a/docs/api/spaces-management/get.asciidoc b/docs/api/spaces-management/get.asciidoc deleted file mode 100644 index f3e3462b2e0da..0000000000000 --- a/docs/api/spaces-management/get.asciidoc +++ /dev/null @@ -1,37 +0,0 @@ -[[spaces-api-get]] -=== Get a space API -++++ -Get space -++++ - -experimental[] Retrieve a specified {kib} space. - -[[spaces-api-get-request]] -==== Request - -`GET :/api/spaces/space/marketing` - -[[spaces-api-get-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[spaces-api-get-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": [], - "imageUrl": "", - "solution": "es" -} --------------------------------------------------- diff --git a/docs/api/spaces-management/get_all.asciidoc b/docs/api/spaces-management/get_all.asciidoc deleted file mode 100644 index 92a65d670ad87..0000000000000 --- a/docs/api/spaces-management/get_all.asciidoc +++ /dev/null @@ -1,138 +0,0 @@ -[[spaces-api-get-all]] -=== Get all {kib} spaces API -++++ -Get all spaces -++++ - -experimental[] Retrieve all {kib} spaces. - -[[spaces-api-get-all-request]] -==== Request - -`GET :/api/spaces/space` - -[[spaces-api-get-all-query-params]] -==== Query parameters - -`purpose`:: - (Optional, string) Valid options include `any`, `copySavedObjectsIntoSpace`, and `shareSavedObjectsIntoSpace`. This determines what - authorization checks are applied to the API call. If `purpose` is not provided in the URL, the `any` purpose is used. - -`include_authorized_purposes`:: - (Optional, boolean) When enabled, the API will return any spaces that the user is authorized to access in any capacity, and each space - will contain the purpose(s) for which the user is authorized. This can be useful to determine which spaces a user can read but not take a - specific action in. If the Security plugin is not enabled, this will have no effect, as no authorization checks would take place. -+ -NOTE: This option cannot be used in conjunction with `purpose`. - -[[spaces-api-get-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[spaces-api-get-all-example]] -==== Examples - -[[spaces-api-get-all-example-1]] -===== Default options - -Retrieve all spaces without specifying any options: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/spaces/space --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": "default", - "name": "Default", - "description" : "This is the Default Space", - "disabledFeatures": [], - "imageUrl": "", - "_reserved": true - }, - { - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "disabledFeatures": ["apm"], - "initials": "MK", - "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSU" - }, - { - "id": "sales", - "name": "Sales", - "initials": "MK", - "disabledFeatures": ["discover"], - "imageUrl": "", - "solution": "oblt" - } -] --------------------------------------------------- - -[[spaces-api-get-all-example-2]] -===== Custom options - -The user has read-only access to the Sales space. Retrieve all spaces and specify options: - -[source,sh] --------------------------------------------------- -$ curl -X GET api/spaces/space?purpose=shareSavedObjectsIntoSpace&include_authorized_purposes=true --------------------------------------------------- - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": "default", - "name": "Default", - "description" : "This is the Default Space", - "disabledFeatures": [], - "imageUrl": "", - "_reserved": true, - "authorizedPurposes": { - "any": true, - "copySavedObjectsIntoSpace": true, - "findSavedObjects": true, - "shareSavedObjectsIntoSpace": true, - } - }, - { - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "disabledFeatures": ["apm"], - "initials": "MK", - "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSU", - "authorizedPurposes": { - "any": true, - "copySavedObjectsIntoSpace": true, - "findSavedObjects": true, - "shareSavedObjectsIntoSpace": true, - } - }, - { - "id": "sales", - "name": "Sales", - "initials": "MK", - "disabledFeatures": ["discover"], - "imageUrl": "", - "authorizedPurposes": { - "any": true, - "copySavedObjectsIntoSpace": false, - "findSavedObjects": true, - "shareSavedObjectsIntoSpace": false, - } - } -] --------------------------------------------------- diff --git a/docs/api/spaces-management/get_shareable_references.asciidoc b/docs/api/spaces-management/get_shareable_references.asciidoc deleted file mode 100644 index 8066736c0c15d..0000000000000 --- a/docs/api/spaces-management/get_shareable_references.asciidoc +++ /dev/null @@ -1,81 +0,0 @@ -[role="xpack"] -[[spaces-api-get-shareable-references]] -=== Get shareable references API -++++ -Get shareable references -++++ - -experimental[] Get shareable references. - -Collects references and spaces context for saved objects. - -[[spaces-api-get-shareable-references-request]] -==== {api-request-title} - -`POST :/api/spaces/_get_shareable_references` - -[[spaces-api-get-shareable-references-request-body]] -==== {api-request-body-title} - -`objects`:: - (Required, object array) The saved objects to collect outbound references for. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -[role="child_attributes"] -[[spaces-api-get-shareable-references-response-body]] -==== {api-response-body-title} - -`objects`:: - (object array) The returned input object or one of its references, with additional context. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (string) The saved object type. - - `id`::: - (string) The saved object ID. - - `originId`::: - (string) The origin ID of the referenced object (if it has one). - - `inboundReferences`::: - (object array) References to this object. -+ -NOTE: This does not contain _all inbound references everywhere_, it only contains inbound references to this object within the scope of this operation. -+ -.Properties of `inboundReferences` -[%collapsible%open] -====== - `type`:::: - (string) The type of the object that has the inbound reference. - - `id`:::: - (string) The ID of the object that has the inbound reference. - - `name`:::: - (string) The name of the inbound reference. -====== - - `spaces`::: - (string array) The space(s) that the referenced saved object exists in. - - `spacesWithMatchingAliases`::: - (string array) The space(s) that legacy URL aliases matching this type/id exist in. (if there are any) - - `spacesWithMatchingOrigins`::: - (string array) The space(s) that objects matching this origin exist in (including this one). (if there are any) - - `isMissing`::: - (boolean) Whether or not this object or reference is missing. -===== diff --git a/docs/api/spaces-management/post.asciidoc b/docs/api/spaces-management/post.asciidoc deleted file mode 100644 index 4c5976249f80e..0000000000000 --- a/docs/api/spaces-management/post.asciidoc +++ /dev/null @@ -1,64 +0,0 @@ -[[spaces-api-post]] -=== Create space API -++++ -Create space -++++ - -experimental[] Create a {kib} space. - -[[spaces-api-post-request]] -==== Request - -`POST :/api/spaces/space` - -[[spaces-api-post-request-body]] -==== Request body - -`id`:: - (Required, string) The space ID that is part of the Kibana URL when inside the space. Space IDs are limited to lowercase alphanumeric, underscore, and hyphen characters (a-z, 0-9, '_', and '-'). You are unable to change the ID with the update operation. - -`name`:: - (Required, string) The display name for the space. - -`description`:: - (Optional, string) The description for the space. - -`disabledFeatures`:: - (Optional, string array) The list of disabled features for the space. To get a list of available feature IDs, use the <>. - -`initials`:: - (Optional, string) The initials shown in the space avatar. By default, the initials are automatically generated from the space name. Initials must be 1 or 2 characters. - -`color`:: - (Optional, string) The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name. - -`imageUrl`:: - (Optional, string) The data-URL encoded image to display in the space avatar. If specified, `initials` will not be displayed, and the `color` will be visible as the background color for transparent images. - For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images. - -`solution`:: - (Optional, string) The solution defined for the space. Can be one of `security`, `oblt`, `es`, `classic` - -[[spaces-api-post-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[spaces-api-post-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/spaces/space -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": [], - "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAABACAYAAABC6cT1AAAGf0lEQVRoQ+3abYydRRUH8N882xYo0IqagEVjokQJKAiKBjXExC9G/aCkGowCIghCkRcrVSSKIu/FEiqgGL6gBIlAYrAqUTH6hZgQFVEMKlQFfItWoQWhZe8z5uzMLdvbfbkLxb13d+fbvfe588x/zpn/+Z9zJpmnI81T3BaAzzfLL1h8weLzZAcWXH2eGHo7zAWLL1h8nuzAjFw9G1N6Kzq8HnuM36MR8iibF3Fv4q+7cv8yDV6K13bYq2furSP8Ag8ncr/vnSnwRViJT2GfCV7yL1yHGxLb+l3EdM9lluNEnIC9xz+f2ZL4Er6Z2DrdXN3fZwp8CU7OfDHxggle8lTLbQ1nJ/7Z7yKmey5zYGZt4h2IzR8/trRc2PDlxJPTzfVcgJ+CC0wMPOa9F6cm7up3EVM9V9386MxliVdM8GwAv6hh/awCz/w7lY25OtF5ruBz4ZLP42NYNrDAFbC3YPWuILnMAfgq3oaRQQYea/stViV+sgssvjKzLvGySeaaNVfP4d7Btokgvxj/bblgpueuF1hmWcyTCmfE3J3M1lTcv0vMswM88zR+jpw4osu6me8kzkpsfLZWzxyRuabO22buxxOJ12FxnXfWgEe83pB5sOE47BsLymzscOoi7nw2JJfZreUjiUsTyzKPZm5NvBDvSuw268AzNzV8H5/Am+qCnsAXgpgSW2Zq9cyKlksbPlTd+te4quWNieMHBfiNDdciYnwsdI/MaOaWhnMTf54J8CqNj8x8JXFIZltYu+HqlmNT8YSBsHgAPw/vxvlVV4du/s0oaxbxg0TbL/jMni0nNcVjQq7+HZfgtpbzBg342TgQ63AkmsymxBW4IjE6A+D7Vzd/fyWxIM/VuCe+HzTgZ2Jpy/kNJ2FJLmLm24mPJ/42A+Bvrxt4SISwlhsaPodH26LZB8rVA3inwwebsrixJCZzX+KMxI/7AV61eVh3DV6Mx3EOvh4kN6jAg8nfUCXm4d1wE66OyxNPTQc+s3/o/MoXizL3JE5O3F3P/uBZPPF4Zr+Wi5uSO48ZPRdyCwn7YB/A35m5KhWNHox4fcNnIs0ddOCRSBxf8+cQG+Huf0l8NJVYP+nI7NXy2ar4QqIGm69JfKPOE2w/mBavCzwM11R2D+ChsUO7hyUfmwx55qDM1xJvqZ7y08TpifuGBfjeURVJnNIVGpkNiXNS0ds7jcySDitDCCWW56LJ10fRo8sNA+3qXUSZD2CtQlZh9T+1rB7h9oliembflnMbzqgSNZKbKGHdPm7OwXb1CvQ1metSETMpszmzvikCJNh/h5E5PHNl4qga/+/cxqrdeWDYgIe7X5L4cGJPJX2940lOX8pD41FnFnc4riluvQKbK0dcHJFi2IBHNTQSlguru4d2/wPOTNzRA3x5y+U1E1uqWDkETOT026XuUJzx6u7ReLhSYenQ7uHua0fKZmwfmcPqsQjxE5WVONcRxn7X89zgn/EKPMRMxOVQXmP18Mx3q3b/Y/0cQE/IhFtHESMsHFlZ1Ml3CH3DZPHImY+pxcKumNmYirtvqMBfhMuU6s3iqOQkTsMPe1tCQwO8Ajs0lxr7W+vnp1MJc9EgCNd/cy6x+9D4veXmprj5wxMw/3C4egW6zzgZOlYZzfwo3F2J7ael0pJamvlPKgWNKFft1AAcKotXoFEbD7kaoSoQPVKB35+5KHF0lai/rJo+up87jWEE/qqqwY+qrL21LWLm95lPJ16ppKw31XC3PXYPJauPEx7B6BHCgrSizRs18qiaRp8tlN3ueCTYPHH9RNaunjI8Z7wLYpT3jZSCYXQ8e9vTsRE/q+no3XMKeObgGtaintbb/AvXj4JDkNw/5hrwYPfIvlZFUbLn7G5q+eQIN09Vnho6cqvnM/Lt99RixH49wO8K0ZL41WTWHoQzvsNVkOheZqKhEGpsp3SzB+BBtZAYve7uOR9tuTaaB6l0XScdYfEQPpkTUyHEGP+XqyDBzu+NBCITUjNWHynkrbWKOuWFn1xKzqsyx0bdvS78odp0+N503Zao0uCsWuSIDku8/7EO60b41vN5+Ses9BKlTdvd8bhp9EBvJjWJAIn/vxwHe6b3tSk6JFPV4nq85oAOrx555v/x/rh3E6Lo+bnuNS4uB4Cuq0ZfvO8X1rM6q/+vnjLVqZq7v83onttc2oYF4HPJmv1gWbB4P7s0l55ZsPhcsmY/WBYs3s8uzaVn5q3F/wf70mRuBCtbjQAAAABJRU5ErkJggg==" -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/spaces-management/put.asciidoc b/docs/api/spaces-management/put.asciidoc deleted file mode 100644 index 88d0d41114eb5..0000000000000 --- a/docs/api/spaces-management/put.asciidoc +++ /dev/null @@ -1,64 +0,0 @@ -[[spaces-api-put]] -=== Update space API -++++ -Update space -++++ - -experimental[] Update an existing {kib} space. - -[[spaces-api-put-api-request]] -==== Request - -`PUT :/api/spaces/space/` - -[[spaces-api-put-request-body]] -==== Request body - -`id`:: - (Required, string) The space ID that is part of the {kib} URL when inside the space. You are unable to change the ID with the update operation. - -`name`:: - (Required, string) The display name for the space. - -`description`:: - (Optional, string) The description for the space. - -`disabledFeatures`:: - (Optional, string array) The list of disabled features for the space. To get a list of available feature IDs, use the <>. - -`initials`:: - (Optional, string) Specifies the initials shown in the space avatar. By default, the initials are automatically generated from the space name. Initials must be 1 or 2 characters. - -`color`:: - (Optional, string) Specifies the hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name. - -`imageUrl`:: - (Optional, string) Specifies the data-url encoded image to display in the space avatar. If specified, `initials` will not be displayed, and the `color` will be visible as the background color for transparent images. - For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images. - -`solution`:: - (Optional, string) The solution defined for the space. Can be one of `security`, `oblt`, `es`, `classic`. - -[[spaces-api-put-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[sample-api-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/spaces/space/marketing -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": [], - "imageUrl": "" -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc b/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc deleted file mode 100644 index 0ca5c72070a86..0000000000000 --- a/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc +++ /dev/null @@ -1,317 +0,0 @@ -[role="xpack"] -[[spaces-api-resolve-copy-saved-objects-conflicts]] -=== Resolve copy saved objects to space conflicts API -++++ -Resolve copy to space conflicts -++++ - -experimental[] Overwrite saved objects that are returned as errors from the <>. - -[[spaces-api-resolve-copy-saved-objects-conflicts-request]] -==== {api-request-title} - -`POST :/api/spaces/_resolve_copy_saved_objects_errors` - -`POST :/s//api/spaces/_resolve_copy_saved_objects_errors` - -[[spaces-api-resolve-copy-saved-objects-conflicts-prereqs]] -==== {api-prereq-title} - -Execute the <>, which returns the errors for you to resolve. - -[[spaces-api-resolve-copy-saved-objects-conflicts-path-params]] -==== {api-path-parms-title} - -`space_id`:: -(Optional, string) The ID of the space that contains the saved objects you want to copy. When `space_id` is unspecified in the URL, the default space is used. The `space_id` must be the same value used during the failed <> operation. - -[role="child_attributes"] -[[spaces-api-resolve-copy-saved-objects-conflicts-request-body]] -==== {api-request-body-title} - -`objects`:: - (Required, object array) The saved objects to copy. The `objects` must be the same values used during the failed <> operation. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -`includeReferences`:: - (Optional, boolean) When set to `true`, all saved objects related to the specified saved objects are copied into the target spaces. The `includeReferences` must be the same values used during the failed <> operation. The default value is `false`. - -`createNewCopies`:: - (Optional, boolean) Creates new copies of the saved objects, regenerates each object ID, and resets the origin. When enabled during the - initial copy, also enable when resolving copy errors. The default value is `true`. - -`retries`:: - (Required, object) The retry operations to attempt, which can specify how to resolve different types of errors. Object keys represent the - target space IDs. -+ -.Properties of `retries` -[%collapsible%open] -===== - ``::: - (Required, array) The errors to resolve for the specified ``. -+ - -.Properties of `` -[%collapsible%open] -====== - `type`:::: - (Required, string) The saved object type. - `id`:::: - (Required, string) The saved object ID. - `overwrite`:::: - (Required, boolean) When set to `true`, the saved object from the source space (designated by the <>) overwrites the conflicting object in the destination space. When set to `false`, this does nothing. - `destinationId`:::: - (Optional, string) Specifies the destination ID that the copied object should have, if different from the current ID. - `ignoreMissingReferences`::: - (Optional, boolean) When set to `true`, any missing references errors are ignored. When set to `false`, does nothing. -====== -===== - -[role="child_attributes"] -[[spaces-api-resolve-copy-saved-objects-conflicts-response-body]] -==== {api-response-body-title} - -``:: - (object) An object that describes the result of the copy operation for the space. Includes the dynamic keys in the response. -+ -.Properties of `` -[%collapsible%open] -===== - `success`::: - (boolean) The copy operation was successful. When set to `false`, some objects may have been copied. For additional information, refer to the `successCount` and `errors` properties. - - `successCount`::: - (number) The number of objects that successfully copied. - - `errors`::: - (Optional, array) The errors that occurred during the copy operation. When errors are reported, the `success` flag is set to `false`. -+ -NOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and a -`conflict` error. -+ - -.Properties of `errors` -[%collapsible%open] -====== - `id`:::: - (string) The saved object ID that failed to copy. - - `type`:::: - (string) The type of saved object that failed to copy. - - `error`:::: - (object) The error that caused the copy operation to fail. -+ - -.Properties of `error` -[%collapsible%open] -======= - `type`:::: - (string) The type of error. For example, `conflict`, `ambiguous_conflict`, `missing_references`, `unsupported_type`, or `unknown`. - `destinationId`:::: - (Optional, string) The destination ID that was used during the copy attempt. This is only present on `conflict` errors types. - `destinations`:::: - (Optional, array) A list of possible object destinations with `id`, `title`, and `updatedAt` fields to describe each one. This is - only present on `ambiguous_conflict` error types. -======= -====== - -`successResults`::: - (Optional, array) Indicates successfully copied objects, with any applicable metadata. -+ -NOTE: Objects are created when all resolvable errors are addressed, including conflict and missing references errors. For more information, -refer to the <>. - -===== - -[[spaces-api-resolve-copy-saved-objects-conflicts-example]] -==== {api-examples-title} - -[[spaces-api-resolve-copy-saved-objects-conflicts-example-1]] -===== Resolve conflict errors - -This example builds upon the <>. - -Resolve conflict errors for a {data-source}, visualization, and *Canvas* workpad by overwriting the existing saved objects: - -[source,sh] ----- -$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "includeReferences": true, - "createNewCopies": false, - "retries": { - "sales": [ - { - "type": "index-pattern", - "id": "my-pattern", - "overwrite": true - }, - { - "type": "visualization", - "id": "my-vis", - "overwrite": true, - "destinationId": "another-vis" - }, - { - "type": "canvas", - "id": "my-canvas", - "overwrite": true, - "destinationId": "yet-another-canvas" - }, - { - "type": "dashboard", - "id": "my-dashboard" - } - ] - } -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "sales": { - "success": true, - "successCount": 4, - "successResults": [ - { - "id": "my-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-vis", - "type": "visualization", - "destinationId": "another-vis", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "destinationId": "yet-another-canvas", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all four objects are created. - -TIP: If a prior copy attempt resulted in resolvable errors, you must include a retry for each object you want to copy, including any that -were returned in the `successResults` array. In this example, we retried copying the dashboard accordingly. - -[[spaces-api-resolve-copy-saved-objects-conflicts-example-2]] -===== Resolve missing reference errors - -This example builds upon the <>. - -Resolve missing reference errors for a visualization by ignoring the error: - -[source,sh] ----- -$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "includeReferences": true, - "createNewCopies": false, - "retries": { - "marketing": [ - { - "type": "visualization", - "id": "my-vis", - "ignoreMissingReferences": true - }, - { - "type": "canvas", - "id": "my-canvas" - }, - { - "type": "dashboard", - "id": "my-dashboard" - } - ] - } -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy and all three objects are created. - -TIP: If a prior copy attempt resulted in resolvable errors, you must include a retry for each object you want to copy, including any that -were returned in the `successResults` array. In this example, we retried copying the dashboard and canvas accordingly. diff --git a/docs/api/spaces-management/update_objects_spaces.asciidoc b/docs/api/spaces-management/update_objects_spaces.asciidoc deleted file mode 100644 index dec846fd6fee0..0000000000000 --- a/docs/api/spaces-management/update_objects_spaces.asciidoc +++ /dev/null @@ -1,142 +0,0 @@ -[role="xpack"] -[[spaces-api-update-objects-spaces]] -=== Update saved objects spaces API -++++ -Update saved objects spaces -++++ - -experimental[] Update saved objects spaces. - -Updates one or more saved objects to add and/or remove them from specified spaces. - -[[spaces-api-update-objects-spaces-request]] -==== {api-request-title} - -`POST :/api/spaces/_update_objects_spaces` - -[[spaces-api-update-objects-spaces-request-body]] -==== {api-request-body-title} - -`objects`:: - (Required, object array) The saved objects to update. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -`spacesToAdd`:: - (Required, string array) The IDs of the spaces the specified objects should be added to. - -`spacesToRemove`:: - (Required, string array) The IDs of the spaces the specified objects should be removed from. - -[role="child_attributes"] -[[spaces-api-update-objects-spaces-response-body]] -==== {api-response-body-title} - -`objects`:: - (object array) The saved objects that have been updated. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (string) The saved object type. - - `id`::: - (string) The saved object ID. - - `spaces`::: - (string array) The space(s) that the referenced saved object exists in. - - `errors`::: - (string) Included if there was an error updating this object's spaces. -===== - -[[spaces-api-update-objects-spaces-example]] -==== {api-examples-title} - -[[spaces-api-update-objects-spaces-example-1]] -===== Sharing saved objects - -To share a saved object to a space programmatically follow these steps: - -1. Collect reference graph and spaces context for each saved object that you want to share using <>: -+ -[source,sh] ----- -$ curl -X POST /api/spaces/_get_shareable_references -{ - "objects": [ - { - "type": "index-pattern", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247" - } - ] -} ----- -+ -The API returns the following: -+ -[source,json] ----- -{ - "objects": [ - { - "type": "index-pattern", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "spaces": ["default"], - "inboundReferences": [], - "spacesWithMatchingOrigins": ["default"] - } - ] -} ----- - -2. Check each saved object for `spacesWithMatchingOrigins` conflicts. -+ -Objects should not be shared to spaces with matching origins or you will create URL conflicts (causing the same URL to point to different saved objects). - -3. Check each saved object for `spacesWithMatchingAliases` conflicts. -+ -If these match the space(s) that these saved objects will be shared to you should disable legacy URL aliases for them using <>. -+ -When sharing to all spaces (`*`) all entries in `spacesWithMatchingAliases` should be checked. - -4. Update spaces of each saved object and all its references: -+ -[source,sh] ----- -$ curl -X POST /api/spaces/_update_objects_spaces -{ - "objects": [ - { - "type": "index-pattern", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247" - } - ], - "spacesToAdd": ["test"], - "spacesToRemove": [] -} ----- -+ -The API returns the following: -+ -[source,json] ----- -{ - "objects": [ - { - "type": "index-pattern", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "spaces": ["default", "test"] - } - ] -} ----- diff --git a/docs/api/synthetics/params/edit-param.asciidoc b/docs/api/synthetics/params/edit-param.asciidoc index e615dd0c0bd1f..07a2568207dfe 100644 --- a/docs/api/synthetics/params/edit-param.asciidoc +++ b/docs/api/synthetics/params/edit-param.asciidoc @@ -26,13 +26,13 @@ You must have `all` privileges for the *Synthetics* feature in the *{observabili [[parameter-edit-request-body]] ==== Request body -The request body should contain the following attributes: +The request body can contain the following attributes, it can't be empty at least one attribute is required.: `key`:: -(Required, string) The key of the parameter. +(Optional, string) The key of the parameter. `value`:: -(Required, string) The updated value associated with the parameter. +(Optional, string) The updated value associated with the parameter. `description`:: (Optional, string) The updated description of the parameter. diff --git a/docs/canvas/canvas-tutorial.asciidoc b/docs/canvas/canvas-tutorial.asciidoc index 5016dbec88aac..666d8885c2885 100644 --- a/docs/canvas/canvas-tutorial.asciidoc +++ b/docs/canvas/canvas-tutorial.asciidoc @@ -9,15 +9,11 @@ To familiarize yourself with *Canvas*, add the Sample eCommerce orders data, the To create a workpad of the eCommerce store data, add the data set, then create the workpad. -. On the home page, click *Try sample data*. +. <>. -. Click *Other sample data sets*. +. Go to **Canvas** using the navigation menu or the <>. -. On the *Sample eCommerce orders* card, click *Add data*. - -. Open the main menu, then click *Canvas*. - -. On the *Canvas workpads* page, click *Create workpad*. +. Select *Create workpad*. [float] === Customize your workpad with images diff --git a/docs/concepts/data-views.asciidoc b/docs/concepts/data-views.asciidoc index 2eba42aed3051..2a260e611a060 100644 --- a/docs/concepts/data-views.asciidoc +++ b/docs/concepts/data-views.asciidoc @@ -168,7 +168,7 @@ and field popularity data. Deleting a {data-source} does not remove any indices WARNING: Deleting a {data-source} breaks all visualizations, saved searches, and other saved objects that reference the data view. -. Open the main menu, and then click *Stack Management > Data Views*. +. Go to the **Data Views** management page using the navigation menu or the <>. . Find the {data-source} that you want to delete, and then click image:management/index-patterns/images/delete.png[Delete icon] in the *Actions* column. diff --git a/docs/concepts/esql.asciidoc b/docs/concepts/esql.asciidoc index 0390f9f6e2bc7..a3a091a4c6d0a 100644 --- a/docs/concepts/esql.asciidoc +++ b/docs/concepts/esql.asciidoc @@ -8,15 +8,12 @@ Based on the query, Lens suggestions in Discover create a visualization of the q {esql} comes with its own dedicated {esql} Compute Engine for greater efficiency. With one query you can search, aggregate, calculate and perform data transformations without leaving **Discover**. Write your query directly in **Discover** or use the **Dev Tools** with the {ref}/esql-rest.html[{esql} API]. -Here's how to use {esql} in the data view selector in **Discover**: +You can switch to the ES|QL mode of Discover from the application menu bar. -[role="screenshot"] -image:images/esql-data-view-menu.png[An image of the Discover UI where users can access the {esql} feature, width=30%, align="center"] - -{esql} also features in-app help, so you can get started faster and don't have to leave the application to check syntax. +{esql} also features in-app help and suggestions, so you can get started faster and don't have to leave the application to check syntax. [role="screenshot"] -image:images/esql-in-app-help.png[An image of the Discover UI where users can browse the in-app help] +image:images/esql-in-app-help.png[The ES|QL syntax reference and the autocomplete menu] You can also use ES|QL queries to create panels on your dashboards, create enrich policies, and create alerting rules. diff --git a/docs/concepts/images/esql-in-app-help.png b/docs/concepts/images/esql-in-app-help.png index 5f00248c10af2..00db2cf8e50c8 100644 Binary files a/docs/concepts/images/esql-in-app-help.png and b/docs/concepts/images/esql-in-app-help.png differ diff --git a/docs/dev-tools/console/console.asciidoc b/docs/dev-tools/console/console.asciidoc index c65a2f8b760eb..62f2161532ced 100644 --- a/docs/dev-tools/console/console.asciidoc +++ b/docs/dev-tools/console/console.asciidoc @@ -1,16 +1,17 @@ [[console-kibana]] -== Run API requests +== Run API requests with Console -Interact with the REST APIs of {es} and {kib} with *Console*. With *Console*, you can: +**Console** lets you interact with https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html[{es} APIs] and https://www.elastic.co/docs/api[{kib} APIs] from within {kib}. -* Send requests and view the responses -* View API documentation -* Get your request history +[role="screenshot"] +image::dev-tools/console/images/console.png["Console", width="75%"] + +To go to **Console**, find **Dev Tools** in the navigation menu or use the <>. -To get started, open the main menu, click *Dev Tools*, then click *Console*. +You can also find Console directly on certain Search solution and Elasticsearch serverless project pages, where you can expand it from the footer. This Console, called **Persistent Console**, has the same capabilities and shares the same history as the Console in **Dev Tools**. [role="screenshot"] -image::dev-tools/console/images/console.png["Console"] +image::dev-tools/console/images/persistent-console.png["Console", width="75%"] [float] [[console-api]] @@ -48,11 +49,6 @@ Prepend requests to a {kib} API endpoint with `kbn:` GET kbn:/api/index_management/indices -------------------------------------------------- -When you paste the command into *Console*, {kib} automatically converts it -to *Console* syntax. Alternatively, if you want to see *Console* syntax in cURL, -click the action icon (image:dev-tools/console/images/wrench.png[]) and select *Copy as cURL*. -Once copied, the username and password will need to be provided -for the calls to work from external environments. [float] [[console-autocomplete]] @@ -60,8 +56,9 @@ for the calls to work from external environments. When you're typing a command, *Console* makes context-sensitive suggestions. These suggestions show you the parameters for each API and speed up your typing. -To configure your preferences for autocomplete, go to -<>. + +You can configure your preferences for autocomplete in the +<>. [float] [[console-comments]] @@ -155,74 +152,106 @@ GET /locations/_search ==== Auto-formatting The auto-formatting -capability can help you format requests. Select one or more requests that you -want to format, click the action icon (image:dev-tools/console/images/wrench.png[]), -and then select *Auto indent*. +capability can help you format requests to be more readable. Select one or more requests that you +want to format, open the contextual menu, and then select *Auto indent*. -For example, you might have a request formatted like this: +[float] +[[keyboard-shortcuts]] +==== Keyboard shortcuts -[role="screenshot"] -image::dev-tools/console/images/unformatted-request.png["Unformatted request", width=75%] +Go to line number:: +`Ctrl/Cmd` + `L` -*Console* adjusts the JSON body of the request to apply the indents. +Auto-indent current request:: +`Ctrl/Cmd` + `I` + +Jump to next request end:: +`Ctrl/Cmd` + `↓` + +Jump to previous request end:: +`Ctrl/Cmd` + `↑` + +Open documentation for current request:: +`Ctrl/Cmd` + `/` + +Run current request:: +`Ctrl/Cmd` + `Enter` + +Apply current or topmost term in autocomplete menu:: +`Enter` or `Tab` + +Close autocomplete menu:: +`Esc` + +Navigate items in autocomplete menu:: +`↓` + `↑` -[role="screenshot"] -image::dev-tools/console/images/formatted-request.png["Formatted request", width=75%] -If you select *Auto indent* on a request that is already well formatted, -*Console* collapses the request body to a single line per document. -This is helpful when working with the {es} {ref}/docs-bulk.html[bulk APIs]. + +[float] +[[console-view-api]] +==== View API docs + +To view the documentation for an API endpoint, select the request, then open the contextual menu and select +*Open API reference*. [float] [[console-request]] -=== Submit requests +=== Run requests + +When you're ready to run a request, select the request, and click the play button. -When you're ready to submit the request to {es}, click the green triangle. +The result of the request execution is displayed in the response panel, where you can see: -You can select multiple requests and submit them together. -*Console* sends the requests to {es} one by one and shows the output -in the response pane. Submitting multiple requests is helpful +* the JSON response +* the HTTP status code corresponding to the request +* The execution time, in ms. + +TIP: You can select multiple requests and submit them together. +*Console* executes the requests one by one. Submitting multiple requests is helpful when you're debugging an issue or trying query combinations in multiple scenarios. + + [float] -[[console-view-api]] -=== View API docs +[[import-export-console-requests]] +=== Import and export requests + +You can export requests: + +* **to a TXT file**, by using the **Export requests** button. When using this method, all content of the input panel is copied, including comments, requests, and payloads. All of the formatting is preserved and allows you to re-import the file later, or to a different environment, using the **Import requests** button. ++ +TIP: When importing a TXT file containing Console requests, the current content of the input panel is replaced. Export it first if you don't want to lose it, or find it in the **History** tab if you already ran the requests. -To view the documentation for an API endpoint, click -the action icon (image:dev-tools/console/images/wrench.png[]) and select -*Open documentation*. +* by copying them individually as **curl**, **JavaScript**, or **Python**. To do this, select a request, then open the contextual menu and select **Copy as**. When using this action, requests are copied individually to your clipboard. You can save your favorite language to make the copy action faster the next time you use it. ++ +When running copied requests from an external environment, you'll need to add https://www.elastic.co/docs/api/doc/kibana/authentication[authentication information] to the request. [float] [[console-history]] === Get your request history -*Console* maintains a list of the last 500 requests that {es} successfully executed. -To view your most recent requests, click *History*. If you select a request -and click *Apply*, {kib} adds it to the editor at the current cursor position. +*Console* maintains a list of the last 500 requests that you tried to execute. +To view them, open the *History* tab. + +You can run a request from your history again by selecting the request and clicking **Add and run**. If you want to add it back to the Console input panel without running it yet, click **Add** instead. It is added to the editor at the current cursor position. [float] [[configuring-console]] === Configure Console settings -You can configure the *Console* font size, JSON syntax, -and autocomplete suggestions in *Settings*. - -[role="screenshot"] -image::dev-tools/console/images/console-settings.png["Console Settings", width=60%] - -[float] -[[keyboard-shortcuts]] -=== Get keyboard shortcuts +Go to the **Config** tab of **Console** to customize its display, autocomplete, and accessibility settings. -For a list of available keyboard -shortcuts, click *Help*. [float] -[[console-settings]] +[[disable-console]] === Disable Console If you don’t want to use *Console*, you can disable it by setting `console.ui.enabled` to `false` in your `kibana.yml` configuration file. Changing this setting causes the server to regenerate assets on the next startup, which might cause a delay before pages start being served. + +You can also choose to only disable the persistent console that shows in the footer of several Kibana pages. To do that, go to **Stack Management** > **Advanced Settings**, and turn off the `devTools:enablePersistentConsole` setting. + diff --git a/docs/dev-tools/console/images/console-settings.png b/docs/dev-tools/console/images/console-settings.png deleted file mode 100644 index e7aaa0d9881d8..0000000000000 Binary files a/docs/dev-tools/console/images/console-settings.png and /dev/null differ diff --git a/docs/dev-tools/console/images/console.png b/docs/dev-tools/console/images/console.png index 93034b97c68aa..84e4c4f3a7aa5 100644 Binary files a/docs/dev-tools/console/images/console.png and b/docs/dev-tools/console/images/console.png differ diff --git a/docs/dev-tools/console/images/formatted-request.png b/docs/dev-tools/console/images/formatted-request.png deleted file mode 100644 index c95b54dc95b0a..0000000000000 Binary files a/docs/dev-tools/console/images/formatted-request.png and /dev/null differ diff --git a/docs/dev-tools/console/images/persistent-console.png b/docs/dev-tools/console/images/persistent-console.png new file mode 100644 index 0000000000000..813cc919d1e14 Binary files /dev/null and b/docs/dev-tools/console/images/persistent-console.png differ diff --git a/docs/dev-tools/console/images/unformatted-request.png b/docs/dev-tools/console/images/unformatted-request.png deleted file mode 100644 index a6fb9cd1438f4..0000000000000 Binary files a/docs/dev-tools/console/images/unformatted-request.png and /dev/null differ diff --git a/docs/dev-tools/console/images/variables.png b/docs/dev-tools/console/images/variables.png index 7407451892b49..9b377ef3b5f44 100644 Binary files a/docs/dev-tools/console/images/variables.png and b/docs/dev-tools/console/images/variables.png differ diff --git a/docs/dev-tools/console/images/wrench.png b/docs/dev-tools/console/images/wrench.png deleted file mode 100644 index a235990b853c1..0000000000000 Binary files a/docs/dev-tools/console/images/wrench.png and /dev/null differ diff --git a/docs/dev-tools/grokdebugger/index.asciidoc b/docs/dev-tools/grokdebugger/index.asciidoc index 6a809c13fcb93..0932df0c7abfb 100644 --- a/docs/dev-tools/grokdebugger/index.asciidoc +++ b/docs/dev-tools/grokdebugger/index.asciidoc @@ -36,7 +36,8 @@ is automatically enabled in {kib}. NOTE: If you're using {stack-security-features}, you must have the `manage_pipeline` permission to use the Grok Debugger. -. Open the main menu, click *Dev Tools*, then click *Grok Debugger*. +. Find the *Grok Debugger* by navigating to the *Developer tools* page using the +navigation menu or the <>. . In *Sample Data*, enter a message that is representative of the data that you want to parse. For example: + diff --git a/docs/dev-tools/painlesslab/index.asciidoc b/docs/dev-tools/painlesslab/index.asciidoc index 387c0522dd1ca..84aa13b4590ca 100644 --- a/docs/dev-tools/painlesslab/index.asciidoc +++ b/docs/dev-tools/painlesslab/index.asciidoc @@ -12,7 +12,8 @@ process {ref}/docs-reindex.html[reindexed data], define complex <>, and work with data in other contexts. -To get started, open the main menu, click *Dev Tools*, and then click *Painless Lab*. +Find *Painless Lab* by navigating to the *Developer tools* page using the +navigation menu or the <>. [role="screenshot"] image::dev-tools/painlesslab/images/painless-lab.png[Painless Lab] diff --git a/docs/dev-tools/searchprofiler/index.asciidoc b/docs/dev-tools/searchprofiler/index.asciidoc index c323427318d54..7ce6e9fa48b39 100644 --- a/docs/dev-tools/searchprofiler/index.asciidoc +++ b/docs/dev-tools/searchprofiler/index.asciidoc @@ -14,9 +14,8 @@ poorly performing queries much faster. [[search-profiler-getting-started]] === Get started -*{searchprofiler}* is automatically enabled in {kib}. Open the main menu, -click *Dev Tools*, and then click *{searchprofiler}* -to get started. +. Find the *{searchprofiler}* by navigating to the *Developer tools* page using the +navigation menu or the <>. *{searchprofiler}* displays the names of the indices searched, the shards in each index, and how long it took for the query to complete. To try it out, replace the default `match_all` query diff --git a/docs/developer/architecture/security/feature-registration.asciidoc b/docs/developer/architecture/security/feature-registration.asciidoc index c9d173a6be6fb..b16142311cc75 100644 --- a/docs/developer/architecture/security/feature-registration.asciidoc +++ b/docs/developer/architecture/security/feature-registration.asciidoc @@ -59,6 +59,11 @@ of features within the management screens. |See <> |The set of subfeatures that enables finer access control than the `all` and `read` feature privileges. These options are only available in the Gold subscription level and higher. +|`scope` (optional) +|`string[]` +|`["spaces", "security"]` +| Default `security`. Scope identifies if feature should appear in both Spaces Visibility Toggles and Security Feature Privileges or only in Security Feature Privileges. + |=== ==== Privilege definition diff --git a/docs/developer/architecture/security/rbac.asciidoc b/docs/developer/architecture/security/rbac.asciidoc index bf75ec1715de0..11896da243f2d 100644 --- a/docs/developer/architecture/security/rbac.asciidoc +++ b/docs/developer/architecture/security/rbac.asciidoc @@ -77,7 +77,7 @@ The application is created by concatenating the prefix of `kibana-` with the val } ---------------------------------- -Roles that grant <> should be managed using the <> or the *Management -> Security -> Roles* page, not directly using the {es} {ref}/security-api.html#security-role-apis[role management API]. This role can then be assigned to users using the {es} +Roles that grant <> should be managed using the {api-kibana}/group/endpoint-roles[role APIs] or the *Management -> Security -> Roles* page, not directly using the {es} {ref}/security-api.html#security-role-apis[role management API]. This role can then be assigned to users using the {es} {ref}/security-api.html#security-user-apis[user management APIs]. [[development-rbac-authorization]] diff --git a/docs/developer/getting-started/monorepo-packages.asciidoc b/docs/developer/getting-started/monorepo-packages.asciidoc index 50095f8b7018f..0b97a425001ec 100644 --- a/docs/developer/getting-started/monorepo-packages.asciidoc +++ b/docs/developer/getting-started/monorepo-packages.asciidoc @@ -41,7 +41,6 @@ yarn kbn watch [discrete] === List of Already Migrated Packages to Bazel -- @kbn/ace - @kbn/analytics - @kbn/apm-config-loader - @kbn/apm-utils @@ -93,4 +92,4 @@ yarn kbn watch - @kbn/ui-shared-deps-npm - @kbn/ui-shared-deps-src - @kbn/utility-types -- @kbn/utils +- @kbn/utils \ No newline at end of file diff --git a/docs/developer/getting-started/sample-data.asciidoc b/docs/developer/getting-started/sample-data.asciidoc index 2454c9d8a6146..a932db91c0377 100644 --- a/docs/developer/getting-started/sample-data.asciidoc +++ b/docs/developer/getting-started/sample-data.asciidoc @@ -8,7 +8,7 @@ There are a couple ways to easily get data ingested into {es}. The easiest is to install one or more of our available sample data packages. If you have no data, you should be prompted to install when running {kib} for the first time. You can also access and install the sample data packages -by going to the home page and clicking "add sample data". +by going to the **Integrations** page and selecting **Sample data**. [discrete] === makelogs script @@ -27,5 +27,5 @@ Make sure to execute `node scripts/makelogs` *after* {es} is up and running! [discrete] === CSV upload -You can also use the CSV uploader provided on the {kib} home page. +You can also use the CSV uploader provided on the **Upload file** page available in the list of **Integrations**. Navigate to **Add data** > **Upload file** to upload your data from a file. \ No newline at end of file diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 0010045ab3c92..b6ba24df78976 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -487,7 +487,8 @@ The plugin exposes the static DefaultEditorController class to consume. |{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_chat/README.md[cloudChat] -|Integrates with DriftChat in order to provide live support to our Elastic Cloud users. This plugin should only run on Elastic Cloud. +|The plugin was meant to integrate with DriftChat in order to provide live support to our Elastic Cloud users. +It was removed, but the plugin was left behind to register no longer used config keys. |{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_data_migration/README.md[cloudDataMigration] @@ -499,8 +500,8 @@ The plugin exposes the static DefaultEditorController class to consume. |{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_experiments/README.mdx[cloudExperiments] -|[!WARNING] -These APIs are deprecated and should not be used as we're working on a replacement Core Feature Flags Service that will arrive soon. +|[!NOTE] +This plugin no-longer exposes any evaluation APIs. Refer to for more information about how to interact with feature flags. |{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_full_story/README.md[cloudFullStory] @@ -536,6 +537,10 @@ Plugin server-side only. Plugin has three main functions: |In order to make ongoing maintenance of log collection easy we want to introduce the concept of data set quality, where users can easily get an overview on the data sets they have with information such as integration, size, last activity, among others. +|{kib-repo}blob/{branch}/x-pack/plugins/data_usage/README.md[dataUsage] +|Serverless only plugin for users to view data usage + + |{kib-repo}blob/{branch}/x-pack/plugins/data_visualizer/README.md[dataVisualizer] |The data_visualizer plugin enables you to explore the fields in your data. @@ -570,7 +575,7 @@ security and spaces filtering. |Exposes services to access entities data. -|{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/entity_manager/README.md[entityManager] +|{kib-repo}blob/{branch}/x-pack/plugins/entity_manager/README.md[entityManager] |This plugin provides access to observed entity data, such as information about hosts, pods, containers, services, and more. @@ -739,7 +744,7 @@ Elastic. |{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/observability_ai_assistant_management/README.md[observabilityAiAssistantManagement] -|The observabilityAiAssistantManagement plugin manages the Ai Assistant for Observability management section. +|The observabilityAiAssistantManagement plugin manages the Ai Assistant for Observability and Search management section. |{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/observability_logs_explorer/README.md[observabilityLogsExplorer] diff --git a/docs/discover/document-explorer.asciidoc b/docs/discover/document-explorer.asciidoc index 071c9f9875028..921e0504f4596 100644 --- a/docs/discover/document-explorer.asciidoc +++ b/docs/discover/document-explorer.asciidoc @@ -1,8 +1,7 @@ [[document-explorer]] -== Explore your documents +== Customize the Discover view Fine tune your explorations by customizing *Discover* to bring out the the best view of your documents. -Adjust the chart height, modify the document table, and look inside a document. [role="screenshot"] image::images/hello-field.png[A view of the Discover app] @@ -10,34 +9,27 @@ image::images/hello-field.png[A view of the Discover app] [float] [[document-explorer-c]] -=== Hide or resize the chart +=== Hide or resize areas -Hide or resize the chart for a better fit. +* You can hide and show the chart and the fields list using the available collapse and expand button in the corresponding area. -* To turn off the display of the chart, click -image:images/chart-icon.png[icon button for opening Show/Hide chart menu, width=24px] -to open the *Chart options* menu, and then click *Hide chart*. - -* To change the chart height, drag the resize handle -image:images/resize-icon.png[two-line icon for increasing or decreasing the height of the chart, width=24px] +* Adjust the width and height of each area by dragging their border to the size you want. -The chart size is saved in your browser. - -* To reset the height, open the *Chart options* menu, and then select *Reset to default height*. +The size of each area is saved in your browser for the next time you open **Discover**. [float] [[document-explorer-customize]] === Modify the document table -Customize the appearance of the document table and its contents by resizing the columns and rows, -sorting and modifying the fields, and filtering the documents. +Customize the appearance of the document table and its contents to your liking. + +image:images/discover-customize-table.png[Options to customize the table in Discover] [float] [[document-explorer-columns]] ==== Reorder and resize the columns -* To move a single column, click its header. In the dropdown menu, -click *Move left* or *Move right*. +* To move a single column, open the column's contextual options, and select *Move left* or *Move right* in the available options. * To move multiple columns, click *Columns*. In the pop-up, drag the column names to their new order. @@ -46,17 +38,31 @@ In the pop-up, drag the column names to their new order. + Column widths are stored with a saved search. When you visualize saved searches on dashboards, the saved search appears the same as in **Discover**. +[float] +[[document-explorer-density]] +==== Customize the table density + +You can adjust the density of the table from the **Display options** located in the table toolbar. This can be particularly useful when scrolling through many results. [float] [[document-explorer-row-height]] ==== Adjust the row height To set the row height to one or more lines, or automatically -adjust the height to fit the contents, click the row height icon -image:images/row-height-icon.png[icon to open the Row height pop-up]. +adjust the height to fit the contents, open the **Display options** in the table toolbar, and adjust it as you need. + +You can define different settings for the header row and body rows. + +[float] +[[document-explorer-sample-size]] +==== Limit the sample size + +When the number of results returned by your search query (displayed at the top of the **Documents** or **Results** tab) is greater than the value of <>, the number of results displayed in the table is limited to the configured value by default. You can adjust the initial sample size for searches to any number between 10 and `discover:sampleSize` from the **Display options** located in the table toolbar. + +On the last page of the table, a message indicates that you've reached the end of the loaded search results. From that message, you can choose to load more results to continue exploring. + +image:images/discover-limit-sample-size.png[Limit sample size in Discover] -[role="screenshot"] -image::images/document-explorer-row-height.png[Row height settings for the document table, width="50%"] [float] [[document-explorer-sort-data]] @@ -70,7 +76,7 @@ column header, and then select the sort order. To sort by multiple fields: -. Click the *field sorted* option. +. Click the *Sort fields* option. + [role="screenshot"] image::images/document-explorer-sort-data.png[Pop-up in document table for sorting columns, width="50%"] @@ -106,62 +112,18 @@ Narrow your results to a subset of documents so you're comparing just the data o . Select the documents you want to compare. -. Click the *documents selected* option, and then select *Show selected documents only*. +. Click the *Selected* option, and then select *Show selected documents only*. + [role="screenshot"] -image::images/document-explorer-compare-data.png[Compare data in the document table, width="50%"] - -[float] -[[document-explorer-configure-table]] -==== Set the number of rows per page - -To change the numbers of rows you want to display on each page, use the *Rows per page* menu. The default is 100 rows per page. - -[role="screenshot"] -image::images/document-table-rows-per-page.png["Menu with options for setting the number of rows in the document table"] +image::images/document-explorer-compare-data.png[Compare data in the document table, width="40%"] +You can also compare individual field values using the <>. [float] -[[document-explorer-expand-documents]] - -=== Go inside a document - -Dive into an individual document to inspect its fields, set filters, and view -the documents that occurred before and after it. - -. Click the expand icon -image:images/expand-icon-2.png[double arrow icon to open a flyout with the document details]. -+ -You can view the document in two ways. The **Table** view displays the document fields row-by-row. -The **JSON** (JavaScript Object Notation) view allows you to look at how {es} returns the document. -+ -[role="screenshot"] -image::images/document-table-expanded.png[Expanded view of the document table] -+ -. In the *Table* view, scan through the fields and their values, or search for a field by name. - -. When you find a field of interest, -hover your mouse over the *Actions* column -to: -.. Filter the results to include or exclude specific fields or values. -.. Toggle the field in or out the document table. -.. Pin the field so it stays at the top. - -. To navigate to the next and previous documents, click the < and > arrows at the top of the view. +[[document-explorer-configure-table]] +==== Set the number of results per page -. To create a view of the document that you can bookmark and share, click **Single document**. -+ -[role="screenshot"] -image::images/discover-view-single-document.png[Discover single document view] -+ -The link is valid for the time the document is available in Elasticsearch. To create a customized view of the document, -you can create <>. +To change the numbers of results you want to display on each page, use the *Rows per page* menu. The default is 100 results per page. -. To view documents that occurred before or after the event you are looking at, click **Surrounding documents**. -+ -Documents are displayed using the same set of columns as the *Discover* view from which -the context was opened. The filters you applied are also carried over. Pinned -filters remain active, while other filters are copied in a disabled state. -+ [role="screenshot"] -image::images/discover-context.png[Image showing context view feature, with anchor documents highlighted in blue] +image::images/document-table-rows-per-page.png["Menu with options for setting the number of results in the document table"] diff --git a/docs/discover/field-statistics.asciidoc b/docs/discover/field-statistics.asciidoc index 8dccc0d4a5bbd..dc83d226ff364 100644 --- a/docs/discover/field-statistics.asciidoc +++ b/docs/discover/field-statistics.asciidoc @@ -12,7 +12,7 @@ for the data and its cardinality? This example explores the fields in the <>, or you can use your own data. -. Open the main menu, and click *Discover*. +. Go to *Discover*. . Expand the {data-source} dropdown, and select *Kibana Sample Data Logs*. diff --git a/docs/discover/get-started-discover.asciidoc b/docs/discover/get-started-discover.asciidoc new file mode 100644 index 0000000000000..ec44f977f4aac --- /dev/null +++ b/docs/discover/get-started-discover.asciidoc @@ -0,0 +1,356 @@ +[[discover-get-started]] +== Explore fields and data with Discover + +Learn how to use *Discover* to: + +- **Select** and **filter** your {es} data. +- **Explore** the fields and content of your data in depth. +- **Present** your findings in a visualization. + +*Prerequisites:* + +- If you don’t already have {kib}, https://www.elastic.co/cloud/elasticsearch-service/signup?baymax=docs-body&elektra=docs[start a free trial] on Elastic Cloud. +- You must have data in {es}. Examples on this page use the +<>, but you can use your own data. +- You should have an understanding of {ref}/documents-indices.html[{es} documents and indices] +and <>. + + +[float] +[[find-the-data-you-want-to-use]] +=== Load data into Discover + +Select the data you want to explore, and then specify the time range in which to view that data. + +. Find **Discover** in the navigation menu or by using the <>. + +. Select the data view that contains the data you want to explore. ++ +TIP: {kib} requires a <> to access your Elasticsearch data. A {data-source} can point to one or more indices, {ref}/data-streams.html[data streams], or {ref}/alias.html[index aliases]. When adding data to {es} using one of the many integrations available, sometimes data views are created automatically, but you can also create your own. ++ +If you're using sample data, data views are automatically created and are ready to use. ++ +[role="screenshot"] +image::images/discover-data-view.png[How to set the {data-source} in Discover, width="40%"] + +. If needed, adjust the <>, for example by setting it to the *Last 7 days*. ++ +The range selection is based on the default time field in your data view. +If you are using the sample data, this value was set when the data view was created. +If you are using your own data view, and it does not have a time field, the range selection is not available. + +**Discover** is populated with your data and you can view various areas with different information: + +* All fields detected are listed in a dedicated panel. +* A chart allows you to visualize your data. +* A table displays the results of your search. +By default, the table includes a column for the time field and a *Summary* column with an overview of each result. +You can modify the document table to display your fields of interest. + +You can later filter the data that shows in the chart and in the table by specifying a query and changing the time range. + +[float] +[[explore-fields-in-your-data]] +=== Explore the fields in your data + +**Discover** provides utilities designed to help you make sense of your data: + +. In the sidebar, check the available fields. It's very common to have hundreds of fields. Use the search at the top of that sidebar to look for specific terms in the field names. ++ +In this example, we've entered `ma` in the search field to find the `manufacturer` field. ++ +[role="screenshot"] +image:images/discover-sidebar-available-fields.png[Fields list that displays the top five search results, width=40%] ++ +TIP: You can combine multiple keywords or characters. For example, `geo dest` finds `geo.dest` and `geo.src.dest`. + +. Select a field to view its most frequent values. ++ +**Discover** shows the top 10 values and the number of records used to calculate those values. + +. Select the *Plus* icon to add fields to the results table. +You can also drag them from the list into the table. ++ +[role="screenshot"] +image::images/discover-add-icon.png[How to add a field as a column in the table, width="50%"] ++ +When you add fields to the table, the **Summary** column is replaced. ++ +[role="screenshot"] +image:images/document-table.png[Document table with fields for manufacturer, customer_first_name, and customer_last_name] + +. Arrange the view to your liking to display the fields and data you care most about using the various display options of **Discover**. For example, you can change the order and size of columns, expand the table to be in full screen or collapse the chart and the list of fields. Check <>. + +. **Save** your changes to be able to open the same view later on and explore your data further. + + +[float] +[[add-field-in-discover]] +==== Add a field to your {data-source} + +What happens if you forgot to define an important value as a separate field? Or, what if you +want to combine two fields and treat them as one? This is where {ref}/runtime.html[runtime fields] come into play. +You can add a runtime field to your {data-source} from inside of **Discover**, +and then use that field for analysis and visualizations, +the same way you do with other fields. + +. In the sidebar, select *Add a field*. + +. Select the **Type** of the new field. + +. **Name** the field. Name it in a way that corresponds to the way other fields of the data view are named. +You can set a custom label and description for the field to make it more recognizable in your data view. + +. Define the value that you want the field to show. By default, the field value is retrieved from the source data if it already contains a field with the same name. You can customize this with the following options: + +** **Set value**: Define a script that will determine the value to show for the field. For more information on adding fields and Painless scripting language examples, +refer to <>. +** **Set format**: Set your preferred format for displaying the value. Changing the format can affect the value and prevent highlighting in Discover. + +. In the advanced settings, you can adjust the field popularity to make it appear higher or lower in the fields list. By default, Discover orders popular fields from most selected to least selected. + +. **Save** your new field. + +You can now find it in the list of fields and add it to the table. + +In the following example, we're adding 2 fields: A simple "Hello world" field, and a second field that combines and transforms the `customer_first_name` and `customer_last_name` fields of the sample data into a single "customer" field: + +**Hello world field example**: + +* **Name**: `hello` +* **Type**: `Keyword` +* **Set value**: enabled +* **Script**: ++ +```ts +emit("Hello World!"); +``` + +**Customer field example**: + +* **Name**: `customer` +* **Type**: `Keyword` +* **Set value**: enabled +* **Script**: ++ +```ts +String str = doc['customer_first_name.keyword'].value; +char ch1 = str.charAt(0); +emit(doc['customer_last_name.keyword'].value + ", " + ch1); +``` + +[float] +==== Visualize aggregated fields +If a field can be {ref}/search-aggregations.html[aggregated], you can quickly +visualize it in detail by opening it in **Lens** from **Discover**. **Lens** is the default visualization editor in {kib}. + +. In the list of fields, find an aggregatable field. For example, with the sample data, you can look for `day_of_week`. ++ +[role="screenshot"] +image:images/discover-day-of-week.png[Top values for the day_of_week field, plus Visualize button, width=50%] + +. In the popup, click **Visualize**. ++ +{kib} creates a **Lens** visualization best suited for this field. + +. In **Lens**, from the *Available fields* list, drag and drop more fields to refine the visualization. In this example, we're adding the `manufacturer.keyword` field onto the workspace, which automatically adds a breakdown of the top values to the visualization. ++ +[role="screenshot"] +image:images/discover-from-visualize.png[Visualization that opens from Discover based on your data] + +. Save the visualization if you'd like to add it to a dashboard or keep it in the Visualize library for later use. + +For geo point fields (image:images/geoip-icon.png[Geo point field icon, width=20px]), +if you click **Visualize**, +your data appears in a map. + +[role="screenshot"] +image:images/discover-maps.png[Map containing documents] + + +[float] +[[compare-documents-in-discover]] +==== Compare documents + +You can use *Discover* to compare and diff the field values of multiple results or documents in the table. + +. Select the results you want to compare from the Documents or Results tab in Discover. + +. From the **Selected** menu in the table toolbar, choose **Compare selected**. The comparison view opens and shows the selected results next to each other. + +. Compare the values of each field. By default the first result selected shows as the reference for displaying differences in the other results. When the value remains the same for a given field, it's displayed in green. When the value differs, it's displayed in red. ++ +TIP: You can change the result used as reference by selecting **Pin for comparison** in the contextual menu of any other result. ++ +image:images/discover-compare-rows.png[Comparison view in Discover] + +. Optionally, customize the **Comparison settings** to your liking. You can for example choose to not highlight the differences, to show them more granularly at the line, word, or character level, or even to hide fields where the value matches for all results. + +. Exit the comparison view at any time using the **Exit comparison mode** button. + +[float] +[[copy-row-content]] +==== Copy results as text or JSON + +You can quickly copy the content currently displayed in the table for one or several results to your clipboard. + +. Select the results you want to copy. + +. Open the **Selected** menu in the table toolbar, and select **Copy selection as text** or **Copy documents as JSON**. + +The content is copied to your clipboard in the selected format. +Fields that are not currently added to the table are ignored. + +[float] +[[look-inside-a-document]] +==== Explore individual result or document details in depth + +[[document-explorer-expand-documents]] +Dive into an individual document to view its fields and the documents +that occurred before and after it. + +. In the document table, click the expand icon +image:images/expand-icon-2.png[double arrow icon to open a flyout with the document details] +to show document details. ++ +[role="screenshot"] +image:images/document-table-expanded.png[Table view with document expanded] + +. Scan through the fields and their values. You can filter the table in several ways: +** If you find a field of interest, +hover your mouse over the *Field* or *Value* columns for filters and additional options. +** Use the search above the table to filter for specific fields or values, or filter by field type using the options to the right of the search field. +** You can pin some fields by clicking the left column to keep them displayed even if you filter the table. ++ +TIP: You can restrict the fields listed in the detailed view to just the fields that you explicitly added to the **Discover** table, using the **Selected only** toggle. In ES|QL mode, you also have an option to hide fields with null values. + +. To navigate to a view of the document that you can bookmark and share, select ** View single document**. + +. To view documents that occurred before or after the event you are looking at, select +**View surrounding documents**. + + + + +[float] +[[search-in-discover]] +=== Search and filter data + +[float] +==== Default mode: Search and filter using KQL + +One of the unique capabilities of **Discover** is the ability to combine +free text search with filtering based on structured data. +To search all fields, enter a simple string in the query bar. + +[role="screenshot"] +image:images/discover-search-field.png[Search field in Discover] + +To search particular fields and +build more complex queries, use the <>. +As you type, KQL prompts you with the fields you can search and the operators +you can use to build a structured query. + +For example, search the ecommerce sample data for documents where the country matches US: + +. Enter `g`, and then select *geoip.country_iso_code*. +. Select *:* for equals, and *US* for the value, and then click the refresh button or press the Enter key. +. For a more complex search, try: ++ +```ts +geoip.country_iso_code : US and products.taxless_price >= 75 +``` + +[[filter-in-discover]] +With the query input, you can filter data using the KQL or Lucene languages. You can also use the **Add filter** function available next to the query input to build your filters one by one or define them as Query DSL. + +For example, exclude results from the ecommerce sample data view where day of week is not Wednesday: + +. Click image:images/add-icon.png[Add icon] next to the query bar. +. In the *Add filter* pop-up, set the field to *day_of_week*, the operator to *is not*, +and the value to *Wednesday*. ++ +[role="screenshot"] +image:images/discover-add-filter.png[Add filter dialog in Discover] + +. Click **Add filter**. +. Continue your exploration by adding more filters. +. To remove a filter, click the close icon (x) next to its name in the filter bar. + +[float] +==== Search and filter using ES|QL + +You can use **Discover** with the Elasticsearch Query Language, ES|QL. When using ES|QL, +you don't have to select a data view. It's your query that determines the data to explore and display in Discover. + +You can switch to the ES|QL mode of Discover from the application menu bar. + +Note that in ES|QL mode, the **Documents** tab is named **Results**. + +Learn more about how to use ES|QL queries in <>. + + + +[float] +[[save-discover-search]] +==== Save your search for later use + +Save your search so you can use it later, generate a CSV report, or use it to create visualizations, dashboards, and Canvas workpads. +Saving a search saves the query text, filters, +and current view of *Discover*, including the columns selected in +the document table, the sort order, and the {data-source}. + +. In the application menu bar, click **Save**. + +. Give your search a title and a description. + +. Optionally store <> and the time range with the search. + +. Click **Save**. + +[float] +[[share-your-findings]] +==== Share your search + +To share your search and **Discover** view with a larger audience, click *Share* in the application menu bar. +For detailed information about the sharing options, refer to <>. + + +[float] +[[alert-from-Discover]] +=== Generate alerts + +From *Discover*, you can create a rule to periodically +check when data goes above or below a certain threshold within a given time interval. + +. Ensure that your data view, +query, and filters fetch the data for which you want an alert. +. In the application menu bar, click *Alerts > Create search threshold rule*. ++ +The *Create rule* form is pre-filled with the latest query sent to {es}. +. <> and <>. + +. Click *Save*. + +For more about this and other rules provided in {alert-features}, go to <>. + + +[float] +=== What’s next? + +* <>. + +* <> to better meet your needs. + +[float] +=== Troubleshooting + +This section references common questions and issues encountered when using Discover. +Also check the following blog post: {blog-ref}troubleshooting-guide-common-issues-kibana-discover-load[Learn how to resolve common issues with Discover.] + +**Some fields show as empty while they should not be, why is that?** + +This can happen in several cases: + +* With runtime fields and regular keyword fields, when the string exceeds the value set for the {ref}/ignore-above.html[ignore_above] setting used when indexing the data into {es}. +* Due to the structure of nested fields, a leaf field added to the table as a column will not contain values in any of its cells. Instead, add the root field as a column to view a JSON representation of its values. Learn more in https://www.elastic.co/de/blog/discover-uses-fields-api-in-7-12[this blog post]. \ No newline at end of file diff --git a/docs/discover/images/discover-add-filter.png b/docs/discover/images/discover-add-filter.png index 3ce158fc4fb84..f72d4074b4b85 100644 Binary files a/docs/discover/images/discover-add-filter.png and b/docs/discover/images/discover-add-filter.png differ diff --git a/docs/discover/images/discover-compare-rows.png b/docs/discover/images/discover-compare-rows.png new file mode 100644 index 0000000000000..868a17fd7ca2d Binary files /dev/null and b/docs/discover/images/discover-compare-rows.png differ diff --git a/docs/discover/images/discover-customize-table.png b/docs/discover/images/discover-customize-table.png new file mode 100644 index 0000000000000..a0aba47f6cd15 Binary files /dev/null and b/docs/discover/images/discover-customize-table.png differ diff --git a/docs/discover/images/discover-data-view.png b/docs/discover/images/discover-data-view.png index 869fc9b928811..e6c3a9aa832d5 100644 Binary files a/docs/discover/images/discover-data-view.png and b/docs/discover/images/discover-data-view.png differ diff --git a/docs/discover/images/discover-limit-sample-size.png b/docs/discover/images/discover-limit-sample-size.png new file mode 100644 index 0000000000000..1e8628ebace55 Binary files /dev/null and b/docs/discover/images/discover-limit-sample-size.png differ diff --git a/docs/discover/images/document-explorer-compare-data.png b/docs/discover/images/document-explorer-compare-data.png index 36560dcabd13e..2a980f8977393 100644 Binary files a/docs/discover/images/document-explorer-compare-data.png and b/docs/discover/images/document-explorer-compare-data.png differ diff --git a/docs/discover/images/document-table-expanded.png b/docs/discover/images/document-table-expanded.png index a6fee908b668f..f73c7d08fe09f 100644 Binary files a/docs/discover/images/document-table-expanded.png and b/docs/discover/images/document-table-expanded.png differ diff --git a/docs/discover/images/document-table.png b/docs/discover/images/document-table.png index 8fbabe4703b24..ab9141cbb9b54 100644 Binary files a/docs/discover/images/document-table.png and b/docs/discover/images/document-table.png differ diff --git a/docs/discover/images/esql-custom-time-series.png b/docs/discover/images/esql-custom-time-series.png new file mode 100644 index 0000000000000..1be4e5f137fc1 Binary files /dev/null and b/docs/discover/images/esql-custom-time-series.png differ diff --git a/docs/discover/images/esql-full-query.png b/docs/discover/images/esql-full-query.png index e4f5faeef3cf7..6bcfba71c4cd6 100644 Binary files a/docs/discover/images/esql-full-query.png and b/docs/discover/images/esql-full-query.png differ diff --git a/docs/discover/images/esql-limit.png b/docs/discover/images/esql-limit.png index b03ecdcc091e6..37a59e0c6c797 100644 Binary files a/docs/discover/images/esql-limit.png and b/docs/discover/images/esql-limit.png differ diff --git a/docs/discover/images/esql-machine-os-ram.png b/docs/discover/images/esql-machine-os-ram.png index ad46d88b219ff..8e2e548a7b317 100644 Binary files a/docs/discover/images/esql-machine-os-ram.png and b/docs/discover/images/esql-machine-os-ram.png differ diff --git a/docs/discover/images/esql-no-time-series.png b/docs/discover/images/esql-no-time-series.png new file mode 100644 index 0000000000000..779269582e7ba Binary files /dev/null and b/docs/discover/images/esql-no-time-series.png differ diff --git a/docs/discover/images/hello-field.png b/docs/discover/images/hello-field.png index 261cb00acfa4c..8aee22bf2a847 100644 Binary files a/docs/discover/images/hello-field.png and b/docs/discover/images/hello-field.png differ diff --git a/docs/discover/log-pattern-analysis.asciidoc b/docs/discover/log-pattern-analysis.asciidoc index b4bd9fec29ec9..5131b68a073b4 100644 --- a/docs/discover/log-pattern-analysis.asciidoc +++ b/docs/discover/log-pattern-analysis.asciidoc @@ -7,7 +7,7 @@ Log pattern analysis works on every text field. This example uses the <>, or you can use your own data. -. Open the main menu, and click *Discover*. +. Go to *Discover*. . Expand the {data-source} dropdown, and select *Kibana Sample Data Logs*. diff --git a/docs/discover/save-search.asciidoc b/docs/discover/save-search.asciidoc index 10abef2e4a1bb..024fd97ab107b 100644 --- a/docs/discover/save-search.asciidoc +++ b/docs/discover/save-search.asciidoc @@ -43,7 +43,7 @@ used for the saved search is also automatically selected. [float] === Add search results to a dashboard -. Open the main menu, and then click *Dashboard*. +. Go to *Dashboards*. . Open or create the dashboard, then click *Edit*. . Click *Add from library*. . From the *Types* dropdown, select *Saved search*. diff --git a/docs/discover/search-sessions.asciidoc b/docs/discover/search-sessions.asciidoc index e7d7466b5ae0c..fe1e945e676ff 100644 --- a/docs/discover/search-sessions.asciidoc +++ b/docs/discover/search-sessions.asciidoc @@ -52,8 +52,8 @@ image::images/search-session-awhile.png[Search Session indicator displaying the Once you save a search session, you can start a new search, navigate to a different application, or close the browser. -. To view your saved searches, open the main menu, and then click -*Stack Management > Search Sessions*. +. To view your saved searches, go to the +*Search Sessions* management page using the navigation menu or the <>. For a saved or completed session, you can also open this view from the search sessions popup. + diff --git a/docs/discover/search.asciidoc b/docs/discover/search.asciidoc index 4f4f8f5b48d10..439c5c443cc02 100644 --- a/docs/discover/search.asciidoc +++ b/docs/discover/search.asciidoc @@ -113,8 +113,7 @@ To save the current search: . Click *Save* in the toolbar. . Enter a name for the search and click *Save*. -To import, export, and delete saved searches, open the main menu, -then click *Stack Management > Saved Objects*. +To import, export, and delete saved searches, go to the *Saved Objects* management page using the navigation menu or the <>. ==== Open a saved search To load a saved search into Discover: diff --git a/docs/discover/try-esql.asciidoc b/docs/discover/try-esql.asciidoc index 53862be75f010..149ce80dbb349 100644 --- a/docs/discover/try-esql.asciidoc +++ b/docs/discover/try-esql.asciidoc @@ -5,11 +5,17 @@ The Elasticsearch Query Language, {esql}, makes it easier to explore your data w In this tutorial we'll use the {kib} sample web logs in Discover and Lens to explore the data and create visualizations. +[TIP] +==== +For the complete {esql} documentation, including tutorials, examples and the full syntax reference, refer to the {ref}/esql.html[{es} documentation]. +For a more detailed overview of {esql} in {kib}, refer to {ref}/esql-kibana.html[Use {esql} in Kibana]. +==== + [float] [[prerequisite]] === Prerequisite -To be able to select **Language {esql}** from the Data views menu the `enableESQL` setting must be enabled from **Stack Management > Advanced Settings**. It is enabled by default. +To view the {esql} option in **Discover**, the `enableESQL` setting must be enabled from Kibana's **Advanced Settings**. It is enabled by default. [float] [[tutorial-try-esql]] @@ -17,24 +23,24 @@ To be able to select **Language {esql}** from the Data views menu the `enableESQ To load the sample data: -. On the home page, click **Try sample data**. -. Click **Other sample data sets**. -. On the Sample web logs card, click **Add data**. -. Open the main menu and select *Discover*. -. From the Data views menu, select *Language {esql}*. +. <>. +. Go to *Discover*. +. Select *Try {esql}* from the application menu bar. Let's say we want to find out what operating system users have and how much RAM is on their machine. . Set the time range to **Last 7 days**. -. Expand image:images/expand-icon-2.png[An image of the expand icon] the query bar. -. Put each processing command on a new line for better readability. . Copy the query below: + [source,esql] ---- -FROM kibana_sample_data_logs -| KEEP machine.os, machine.ram +FROM kibana_sample_data_logs <1> +| KEEP machine.os, machine.ram <2> ---- +<1> We're specifically looking for data from the sample web logs we just installed. +<2> We're only keeping the `machine.os` and `machine.ram` fields in the results table. ++ +TIP: Put each processing command on a new line for better readability. + . Click **▶Run**. + @@ -57,12 +63,14 @@ FROM kibana_sample_data_logs | LIMIT 10 ---- + -. Click **▶Run**. +. Click **▶Run** again. You can notice that the table is now limited to 10 results. The visualization also updated automatically based on the query, and broke down the data for you. ++ +NOTE: When you don't specify any specific fields to retain using `KEEP`, the visualization isn't broken down automatically. Instead, an additional option appears above the visualization and lets you select a field manually. + [role="screenshot"] image:images/esql-limit.png[An image of the extended query result] -Let's sort the data by machine ram and filter out the destination GB. +We will now take it a step further to sort the data by machine ram and filter out the `GB` destination. . Copy the query below: + @@ -75,18 +83,51 @@ FROM kibana_sample_data_logs | LIMIT 10 ---- + -. Click **▶Run**. +. Click **▶Run** again. The table and visualization no longer show results for which the `geo.dest` field value is "GB", and the results are now sorted in descending order in the table based on the `machine.ram` field. + [role="screenshot"] image:images/esql-full-query.png[An image of the full query result] + . Click **Save** to save the query and visualization to a dashboard. -To make changes to the visualization you can use the visualization drop-down. To make changes to the colors used or the axes, or click the pencil icon. This opens an in-line editor where you can change the colors and axes of the visualization. +[float] +==== Edit the ES|QL visualization + +You can make changes to the visualization by clicking the pencil icon. This opens additional settings that let you adjust the chart type, axes, breakdown, colors, and information displayed to your liking. If you're not sure which route to go, check one of the suggestions available in the visualization editor. + +If you'd like to keep the visualization and add it to a dashboard, you can save it using the floppy disk icon. + +[float] +==== ES|QL and time series data + +By default, ES|QL identifies time series data when an index contains a `@timestamp` field. This enables the time range selector and visualization options for your query. + +If your index doesn't have an explicit `@timestamp` field, but has a different time field, you can still enable the time range selector and visualization options by calling the `?_start` and `?_tend` parameters in your query. + +For example, the eCommerce sample data set doesn't have a `@timestamp` field, but has an `order_date` field. + +By default, when querying this data set, time series capabilities aren't active. No visualization is generated and the time picker is disabled. + +[source,esql] +---- +FROM kibana_sample_data_ecommerce +| KEEP customer_first_name, email, products._id.keyword +---- + +image::images/esql-no-time-series.png[ESQL query without time series capabilities enabled] + +While still querying the same data set, by adding the `?_start` and `?_tend` parameters based on the `order_date` field, **Discover** enables times series capabilities. + +[source,esql] +---- +FROM kibana_sample_data_ecommerce +| WHERE order_date >= ?_tstart and order_date <= ?_tend +---- + +image::images/esql-custom-time-series.png[ESQL query with a custom time field enabled] + + + + -[TIP] -==== -For the complete {esql} documentation, including tutorials, examples and the full syntax reference, refer to the {ref}/esql.html[{es} documentation]. -For a more detailed overview of {esql} in {kib}, refer to {ref}/esql-kibana.html[Use {esql} in Kibana]. -==== diff --git a/docs/fleet/fleet.asciidoc b/docs/fleet/fleet.asciidoc index dfee4c36171dc..52c2825557001 100644 --- a/docs/fleet/fleet.asciidoc +++ b/docs/fleet/fleet.asciidoc @@ -31,7 +31,7 @@ You can make a complete clone of a whole managed dashboard. If you clone a panel To clone a dashboard: -. Open the main menu (≡) and click *Dashboards*. +. Go to *Dashboards*. . Click on the name of the managed dashboard to view the dashboard. . Click *Clone* in the toolbar. . Click *Save and return* after editing the dashboard. diff --git a/docs/getting-started/quick-start-guide.asciidoc b/docs/getting-started/quick-start-guide.asciidoc index 1a25f2f1ec9f2..6be9dbfa2edb2 100644 --- a/docs/getting-started/quick-start-guide.asciidoc +++ b/docs/getting-started/quick-start-guide.asciidoc @@ -22,18 +22,19 @@ include::{docs-root}/shared/cloud/ess-getting-started.asciidoc[] [float] [[gs-get-data-into-kibana]] -== Add the sample data +== Add sample data Sample data sets come with sample visualizations, dashboards, and more to help you explore {kib} before you ingest or add your own data. -. On the home page, click *Try sample data*. +. Open the **Integrations** page from the navigation menu or using the <>. -. Click *Other sample data sets*. +. In the list of integrations, select **Sample Data**. -. On the *Sample eCommerce orders* card, click *Add data*. -+ -[role="screenshot"] -image::images/addData_sampleDataCards_8.6.0.png[Add data UI for the sample data sets] +. On the page that opens, select *Other sample data sets*. + +. Install the sample data sets that you want. + +Once installed, you can access the sample data in the various {kib} apps available to you. [float] [[explore-the-data]] @@ -41,7 +42,7 @@ image::images/addData_sampleDataCards_8.6.0.png[Add data UI for the sample data *Discover* displays the data in an interactive histogram that shows the distribution of data, or documents, over time, and a table that lists the fields for each document that matches the {data-source}. To view a subset of the documents, you can apply filters to the data, and customize the table to display only the fields you want to explore. -. Open the main menu, then click *Discover*. +. Go to *Discover*. . Change the <> to *Last 7 days*. + @@ -67,7 +68,7 @@ image::images/availableFields_discover_8.4.0.png[Discover table that displays on A dashboard is a collection of panels that you can use to visualize the data. Panels contain visualizations, interactive controls, text, and more. -. Open the main menu, then click *Dashboard*. +. Go to *Dashboards*. . Click *[eCommerce] Revenue Dashboard*. + diff --git a/docs/landing-page.asciidoc b/docs/landing-page.asciidoc index 8d806d574129a..b7fb7435017a8 100644 --- a/docs/landing-page.asciidoc +++ b/docs/landing-page.asciidoc @@ -248,11 +248,11 @@
- +

- Enterprise Search + Search

Create search experiences for your content, wherever it lives.

diff --git a/docs/management/action-types.asciidoc b/docs/management/action-types.asciidoc index a39b5a996dca3..e3b01ba0afcf7 100644 --- a/docs/management/action-types.asciidoc +++ b/docs/management/action-types.asciidoc @@ -8,6 +8,12 @@ Actions are instantiations of a connector that are linked to rules and run as ba [cols="2"] |=== +// ifeval::["featureAIConnector"=="true"] +// a| <> + +// | Send a request to {infer}. +// endif::[] + a| <> | Send a request to {bedrock}. @@ -92,9 +98,9 @@ a| <> | Create an incident in {swimlane}. -a| <> +a| <> -| Create cases and alerts in TheHive. +| Create cases and alerts in {hive}. a| <> diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index cda03f91dfc17..f6b8e6844ce04 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -20,7 +20,7 @@ indicator is displayed: [role="screenshot"] image::images/settings-read-only-badge.png[Example of Advanced Settings Management's read only access indicator in Kibana's header] -To add the privilege, open the main menu, then click *Stack Management > Roles*. +To add the privilege, go to the *Roles* management page using the navigation menu or the <>. For more information on granting access to {kib}, refer to <>. @@ -30,7 +30,7 @@ For more information on granting access to {kib}, refer to < Advanced Settings*. +. Go to the *Advanced settings* page using the navigation menu or the <>. . Click *Space Settings*. . Scroll or search for the setting. . Make your change, then click *Save changes*. @@ -330,9 +330,6 @@ the minimum and maximum values of a numeric field or a map of a geo field. [[discover:showMultiFields]]`discover:showMultiFields`:: Controls the display of multi-fields in the expanded document view. -[[discover:showLegacyFieldTopValues]]`discover:showLegacyFieldTopValues`:: -To calculate the top values for a field in the sidebar using 500 instead of 5,000 records per shard, turn on this option. - [[discover-sort-defaultorder]]`discover:sort:defaultOrder`:: The default sort direction for time-based data views. @@ -647,7 +644,7 @@ Disable this option if you prefer to use the new heatmap charts with improved pe Change the settings that apply only to {kib} spaces. -. Open the main menu, then click *Stack Management > Advanced Settings*. +. Go to the *Advanced settings* page using the navigation menu or the <>. . Click *Global Settings*. . Scroll or search for the setting. . Make your change, then click *Save changes*. diff --git a/docs/management/cases/manage-cases-settings.asciidoc b/docs/management/cases/manage-cases-settings.asciidoc index b0764c495101a..13079d35a27a0 100644 --- a/docs/management/cases/manage-cases-settings.asciidoc +++ b/docs/management/cases/manage-cases-settings.asciidoc @@ -31,6 +31,7 @@ management systems: * {sn-itsm} * {sn-sir} * {swimlane} +* {hive} * {webhook-cm} NOTE: To create connectors and send cases to external systems, you must have the @@ -45,7 +46,7 @@ Alternatively, you can create them in *{stack-manage-app} > Cases > Settings*: . Enter your required settings. Refer to <>, <>, <>, <>, -<>, or <> for connector +<>, <>, or <> for connector configuration details. You can subsequently choose the connector when you create cases and use it in case templates. diff --git a/docs/management/connectors/action-types/gemini.asciidoc b/docs/management/connectors/action-types/gemini.asciidoc index 2371015975d92..b1d892ff87cc3 100644 --- a/docs/management/connectors/action-types/gemini.asciidoc +++ b/docs/management/connectors/action-types/gemini.asciidoc @@ -31,7 +31,7 @@ Name:: The name of the connector. API URL:: The {gemini} request URL. Project ID:: The project which has Vertex AI endpoint enabled. Region:: The GCP region where the Vertex AI endpoint enabled. -Default model:: The GAI model for {gemini} to use. Current support is for the Google Gemini models, defaulting to gemini-1.5-pro-001. The model can be set on a per request basis by including a "model" parameter alongside the request body. +Default model:: The GAI model for {gemini} to use. Current support is for the Google Gemini models, defaulting to gemini-1.5-pro-002. The model can be set on a per request basis by including a "model" parameter alongside the request body. Credentials JSON:: The GCP service account JSON file for authentication. [float] diff --git a/docs/management/connectors/action-types/inference.asciidoc b/docs/management/connectors/action-types/inference.asciidoc new file mode 100644 index 0000000000000..d47374e9b4cdd --- /dev/null +++ b/docs/management/connectors/action-types/inference.asciidoc @@ -0,0 +1,144 @@ +[[inference-action-type]] +== AI connector and action +++++ +AI +++++ +:frontmatter-description: Add a connector that can send requests to {inference}. +:frontmatter-tags-products: [kibana] +:frontmatter-tags-content-type: [how-to] +:frontmatter-tags-user-goals: [configure] + +coming::[] + +The {infer} connector uses the {es} client to send requests to an {infer} service. +The connector uses the <> to send the request. + +[float] +[[define-inference-ui]] +=== Create connectors in {kib} + +// TBD After you set the `xpack.stack_connectors.enableExperimental` to include `inferenceConnectorOn`, +You can create connectors in *{stack-manage-app} > {connectors-ui}*. For example: + +[role="screenshot"] +image::management/connectors/images/inference-connector.png[{inference} connector] + + +[float] +[[inference-connector-configuration]] +==== Connector configuration + +{infer-cap} connectors have the following configuration properties: + +Name:: The name of the connector. +Service:: The supported {infer} service provider. +Task type:: The {infer} task type, it depends on the selected service. +Inference ID:: The unique identifier of the {infer} endpoint. +Provider configuration:: Settings for service configuration. +Provider secrets:: Configuration for authentication. +Task type configuration:: Settings for task type configuration. + +[float] +[[inference-action-configuration]] +=== Test connectors + +You can test connectors using the <> or +while creating or editing the connector in {kib}. For example: + +[role="screenshot"] +image::management/connectors/images/inference-completion-params.png[{infer} params test] + + +[float] +[[inference-connector-actions]] +=== {infer-cap} connector actions + +The {infer} actions have the following configuration properties. Properties depend on the selected task type. + +[float] +[[inference-connector-perform-completion]] +==== Completion + +The following example performs a completion task on the example question. + +Input:: +The text on which you want to perform the {infer} task. For example: ++ +-- +[source,text] +------------------------------------------------------------ +{ + input: 'What is Elastic?' +} +------------------------------------------------------------ +-- + +[float] +[[inference-connector-perform-text-embedding]] +==== Text embedding + +The following example performs a text embedding task. + +Input:: +The text on which you want to perform the {infer} task. For example: ++ +-- +[source,text] +------------------------------------------------------------ +{ + input: 'The sky above the port was the color of television tuned to a dead channel.', + task_settings: { + input_type: 'ingest' + } +} +------------------------------------------------------------ +-- + +Input type:: +An optional string that overwrites the connector's default model. + +[float] +[[inference-connector-perform-rerank]] +==== Reranking + +The following example performs a reranking task on the example input. + +Input:: +The text on which you want to perform the {infer} task. Should be a string array. For example: ++ +-- +[source,text] +------------------------------------------------------------ +{ + input: ['luke', 'like', 'leia', 'chewy', 'r2d2', 'star', 'wars'], + query: 'star wars main character' +} +------------------------------------------------------------ +-- + +Query:: +The search query text. + +[float] +[[inference-connector-perform-sparse-embedding]] +==== Sparse embedding + +The following example performs a sparse embedding task on the example sentence. + +Input:: +The text on which you want to perform the {infer} task. For example: ++ +-- +[source,text] +------------------------------------------------------------ +{ + input: 'The sky above the port was the color of television tuned to a dead channel.' +} +------------------------------------------------------------ +-- + +[float] +[[inference-connector-networking-configuration]] +=== Connector networking configuration + +Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can apply these settings to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations. diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 164fe70a6d55b..295a326b490b2 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -64,12 +64,28 @@ The username for HTTP basic authentication. You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] -image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] +image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test, width=75%] {sn-sir} actions have the following configuration properties. Additional comments:: Additional information for the client, such as how to troubleshoot the issue. +Additional fields:: +An object that contains custom field identifiers and their values. +These fields must exist in the Elastic ServiceNow application and must be specified in JSON format. ++ +-- +For example: +[source,sh] +---- +{ + "u_cmdb_ci": "host-a", + "u_company": "My company", + "u_assignment_group": "Testing" +} +---- +Note that the default source field names in the Elastic ServiceNow application are prefixed with "u_". +-- Category:: The category of the incident. Correlation display:: @@ -269,7 +285,8 @@ IMPORTANT: Deprecated connectors will continue to function with the rules they w To update a deprecated connector: -. Open the main menu and go to *{stack-manage-app} > {connectors-ui}*. +. Go to the *{connectors-ui}* page using the navigation menu or the +<>. . Select the deprecated connector to open the *Edit connector* flyout. . In the warning message, click *Update this connector*. . Complete the guided steps in the *Edit connector* flyout. diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index 11fe55ade7f95..852db21e77544 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -64,12 +64,28 @@ The username for HTTP basic authentication. When you create or edit a connector, use the *Test* tab to test its actions: [role="screenshot"] -image::management/connectors/images/servicenow-params-test.png[ServiceNow params test] +image::management/connectors/images/servicenow-params-test.png[ServiceNow params test, width=75%] {sn-itsm} actions have the following configuration properties. Additional comments:: Additional information for the client, such as how to troubleshoot the issue. +Additional fields:: +An object that contains custom field identifiers and their values. ++ +-- +These fields must exist in the Elastic ServiceNow application and must be specified in JSON format. +For example: +[source,sh] +---- +{ + "u_cmdb_ci": "host-a", + "u_company": "My company", + "u_assignment_group": "Testing" +} +---- +Note that the default source field names in the Elastic ServiceNow application are prefixed with "u_". +-- Category:: The category of the incident. Correlation display:: @@ -86,6 +102,9 @@ NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that Description:: The details about the incident. +Event action:: +The type of action to test: resolve or trigger. +When you test a resolve action, you must provide a correlation identifier. Impact:: The effect an incident has on business. It can be measured by the number of affected users or by how critical it is to the business in question. @@ -94,7 +113,7 @@ The severity of the incident. Short description:: A short description for the incident, used for searching the contents of the knowledge base. Subcategory:: -The category of the incident. +The subcategory of the incident. Urgency:: The extent to which the incident resolution can delay. @@ -319,7 +338,8 @@ IMPORTANT: Deprecated connectors will continue to function with the rules they w To update a deprecated connector: -. Open the main menu and go to *{stack-manage-app} > {connectors-ui}*. +. Go to the *{connectors-ui}* page using the navigation menu or the +<>. . Select the deprecated connector to open the *Edit connector* flyout. . In the warning message, click *Update this connector*. . Complete the guided steps in the *Edit connector* flyout. diff --git a/docs/management/connectors/action-types/thehive.asciidoc b/docs/management/connectors/action-types/thehive.asciidoc index d218833527ee3..e847d0b621eca 100644 --- a/docs/management/connectors/action-types/thehive.asciidoc +++ b/docs/management/connectors/action-types/thehive.asciidoc @@ -1,18 +1,18 @@ [[thehive-action-type]] -== TheHive connector and action +== {hive} connector and action ++++ -TheHive +{hive} ++++ -:frontmatter-description: Add a connector that can create cases and alerts in TheHive. +:frontmatter-description: Add a connector that can create cases and alerts in {hive}. :frontmatter-tags-products: [kibana] :frontmatter-tags-content-type: [how-to] :frontmatter-tags-user-goals: [configure] -TheHive connector uses the https://docs.strangebee.com/thehive/api-docs/[TheHive (v1) REST API] to create cases and alerts. added:[8.16.0] +{hive} connector uses the https://docs.strangebee.com/thehive/api-docs/[{hive} (v1) REST API] to create cases and alerts. added:[8.16.0] [NOTE] ==== -If you use this connector with <>, the status values differ in {kib} and TheHive. +If you use this connector with <>, the status values differ in {kib} and {hive}. The status values are not synchronized when you update a case. ==== @@ -24,19 +24,19 @@ You can create connectors in *{stack-manage-app} > {connectors-ui}* or as needed when you're creating a rule. For example: [role="screenshot"] -image::management/connectors/images/thehive-connector.png[TheHive connector] +image::management/connectors/images/thehive-connector.png[{hive} connector] // NOTE: This is an autogenerated screenshot. Do not edit it directly. [float] [[thehive-connector-configuration]] ==== Connector configuration -TheHive connectors have the following configuration properties: +{hive} connectors have the following configuration properties: Name:: The name of the connector. -Organisation:: The organisation in TheHive that will contain the cases or alerts. -URL:: The instance URL in TheHive. -API key:: The API key for authentication in TheHive. +Organisation:: The organisation in {hive} that will contain the cases or alerts. +URL:: The instance URL in {hive}. +API key:: The API key for authentication in {hive}. [float] [[thehive-action-configuration]] @@ -46,16 +46,16 @@ You can test connectors for creating a case or an alert with the <> to customize connecto [float] [[configure-thehive]] -=== Configure TheHive +=== Configure {hive} -To generate an API key in TheHive: +To generate an API key in {hive}: -1. Log in to your TheHive instance. +1. Log in to your {hive} instance. 2. Open profile tab and select the settings. 3. Go to *API Key*. 4. Click *Create* if no API key has been created previously; otherwise, you can view the API key by clicking on *Reveal*. diff --git a/docs/management/connectors/images/inference-completion-params.png b/docs/management/connectors/images/inference-completion-params.png new file mode 100644 index 0000000000000..686ee9771c2f5 Binary files /dev/null and b/docs/management/connectors/images/inference-completion-params.png differ diff --git a/docs/management/connectors/images/inference-connector.png b/docs/management/connectors/images/inference-connector.png new file mode 100644 index 0000000000000..dcd37f0865c54 Binary files /dev/null and b/docs/management/connectors/images/inference-connector.png differ diff --git a/docs/management/connectors/images/servicenow-connector-basic.png b/docs/management/connectors/images/servicenow-connector-basic.png index 4cf1f19fe8173..2897b7e80cae5 100644 Binary files a/docs/management/connectors/images/servicenow-connector-basic.png and b/docs/management/connectors/images/servicenow-connector-basic.png differ diff --git a/docs/management/connectors/images/servicenow-connector-oauth.png b/docs/management/connectors/images/servicenow-connector-oauth.png index 8f818185f686b..9b553ae97fc84 100644 Binary files a/docs/management/connectors/images/servicenow-connector-oauth.png and b/docs/management/connectors/images/servicenow-connector-oauth.png differ diff --git a/docs/management/connectors/images/servicenow-params-test.png b/docs/management/connectors/images/servicenow-params-test.png index 5615744973c35..84de4a20b5af5 100644 Binary files a/docs/management/connectors/images/servicenow-params-test.png and b/docs/management/connectors/images/servicenow-params-test.png differ diff --git a/docs/management/connectors/images/servicenow-sir-connector-basic.png b/docs/management/connectors/images/servicenow-sir-connector-basic.png index 1404526f6418d..7a49daaeb6289 100644 Binary files a/docs/management/connectors/images/servicenow-sir-connector-basic.png and b/docs/management/connectors/images/servicenow-sir-connector-basic.png differ diff --git a/docs/management/connectors/images/servicenow-sir-connector-oauth.png b/docs/management/connectors/images/servicenow-sir-connector-oauth.png index 8cac0f7361890..cf94022287157 100644 Binary files a/docs/management/connectors/images/servicenow-sir-connector-oauth.png and b/docs/management/connectors/images/servicenow-sir-connector-oauth.png differ diff --git a/docs/management/connectors/images/servicenow-sir-params-test.png b/docs/management/connectors/images/servicenow-sir-params-test.png index a2bf8761a8824..c56b8a9dafe23 100644 Binary files a/docs/management/connectors/images/servicenow-sir-params-test.png and b/docs/management/connectors/images/servicenow-sir-params-test.png differ diff --git a/docs/management/connectors/index.asciidoc b/docs/management/connectors/index.asciidoc index 18f2c28d10f04..c5c1ce4600c5d 100644 --- a/docs/management/connectors/index.asciidoc +++ b/docs/management/connectors/index.asciidoc @@ -4,6 +4,9 @@ include::action-types/crowdstrike.asciidoc[leveloffset=+1] include::action-types/d3security.asciidoc[leveloffset=+1] include::action-types/email.asciidoc[leveloffset=+1] include::action-types/gemini.asciidoc[leveloffset=+1] +// ifeval::["featureAIConnector"=="true"] +// include::action-types/inference.asciidoc[leveloffset=+1] +// endif::[] include::action-types/resilient.asciidoc[leveloffset=+1] include::action-types/index.asciidoc[leveloffset=+1] include::action-types/jira.asciidoc[leveloffset=+1] diff --git a/docs/management/connectors/pre-configured-connectors.asciidoc b/docs/management/connectors/pre-configured-connectors.asciidoc index 8f9536331bb1c..06a77a12beab3 100644 --- a/docs/management/connectors/pre-configured-connectors.asciidoc +++ b/docs/management/connectors/pre-configured-connectors.asciidoc @@ -66,7 +66,8 @@ Sensitive properties, such as passwords, can also be stored in the [[managing-preconfigured-connectors]] === View preconfigured connectors -When you open the main menu, click *{stack-manage-app} > {connectors-ui}*. +go to the *{connectors-ui}* page using the navigation menu or the +<>. Preconfigured connectors appear regardless of which space you are in. They are tagged as “preconfigured”, and you cannot delete them. diff --git a/docs/management/manage-data-views.asciidoc b/docs/management/manage-data-views.asciidoc index 936d764433fe9..4c6a0d77b7a9e 100644 --- a/docs/management/manage-data-views.asciidoc +++ b/docs/management/manage-data-views.asciidoc @@ -39,7 +39,7 @@ then define the field values by emitting a single value using the {ref}/modules-scripting-painless.html[Painless scripting language]. You can also add runtime fields in <> and <>. -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* management page using the navigation menu or the <>. . Select the data view that you want to add the runtime field to, then click *Add field*. @@ -162,7 +162,7 @@ else { Edit the settings for runtime fields, or remove runtime fields from data views. -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* management page using the navigation menu or the <>. . Select the data view that contains the runtime field you want to manage, then open the runtime field edit options or delete the runtime field. @@ -198,7 +198,7 @@ https://www.elastic.co/blog/using-painless-kibana-scripted-fields[Using Painless Create and add scripted fields to your data views. -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* management page using the navigation menu or the <>. . Select the data view you want to add a scripted field to. @@ -214,7 +214,7 @@ For more information about scripted fields in {es}, refer to {ref}/modules-scrip [[update-scripted-field]] ==== Manage scripted fields -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* management page using the navigation menu or the <>. . Select the data view that contains the scripted field you want to manage. @@ -230,7 +230,7 @@ exceptions when you view the dynamically generated data. {kib} uses the same field types as {es}, however, some {es} field types are unsupported in {kib}. To customize how {kib} displays data fields, use the formatting options. -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* management page using the navigation menu or the <>. . Click the data view that contains the field you want to change. diff --git a/docs/management/managing-licenses.asciidoc b/docs/management/managing-licenses.asciidoc index 837a83f0aae38..14b359276356c 100644 --- a/docs/management/managing-licenses.asciidoc +++ b/docs/management/managing-licenses.asciidoc @@ -11,14 +11,16 @@ If you need more than 30 days to complete your evaluation, request an extended trial at {extendtrial}. To view the status of your license, start a trial, or install a new -license, open the main menu, then click *Stack Management > License Management*. +license, go to the *License Management* page using the navigation menu or the +<>. [discrete] === Required permissions The `manage` cluster privilege is required to access *License Management*. -To add the privilege, open the main menu, then click *Stack Management > Roles*. +To add the privilege, go to the *Roles* management page using the navigation menu or the +<>. [discrete] [[license-expiration]] diff --git a/docs/management/managing-saved-objects.asciidoc b/docs/management/managing-saved-objects.asciidoc index df96721205d59..1e2e5d194cd3e 100644 --- a/docs/management/managing-saved-objects.asciidoc +++ b/docs/management/managing-saved-objects.asciidoc @@ -4,7 +4,8 @@ Edit, import, export, and copy your saved objects. These objects include dashboards, visualizations, maps, {data-sources}, *Canvas* workpads, and other saved objects. -To get started, open the main menu, and then click *Stack Management > Saved Objects*. +You can find the *Saved Objects* page using the navigation menu or the +<>. [role="screenshot"] image::images/management-saved-objects.png[Saved Objects] @@ -14,7 +15,8 @@ image::images/management-saved-objects.png[Saved Objects] To access *Saved Objects*, you must have the required `Saved Objects Management` {kib} privilege. -To add the privilege, open the main menu, and then click *Stack Management > Roles*. +To add the privilege, go to the *Roles* management page using the navigation menu or the +<>. NOTE: Granting access to `Saved Objects Management` authorizes users to manage all saved objects in {kib}, including objects that are managed by @@ -100,7 +102,6 @@ into an older version of {kib}. For example: [float] -[role="xpack"] [[managing-saved-objects-copy-to-space]] === Copy to other {kib} spaces @@ -117,7 +118,6 @@ the saved object. If you don't want this behavior, use the <> instead. [float] -[role="xpack"] [[managing-saved-objects-share-to-space]] === Share to other {kib} spaces @@ -135,4 +135,79 @@ those space icons to open the Share UI. + The share operation automatically includes child objects that are related to the saved objects. -include::saved-objects/saved-object-ids.asciidoc[] +[[spaces-api-update-objects-spaces-example-1]] +To share a saved object to a space programmatically with the {api-kibana}/group/endpoint-spaces[spaces APIs], follow these steps: + +1. Collect reference graph and spaces context for each saved object that you want to share using get shareable references API: ++ +[source,sh] +---- +$ curl -X POST /api/spaces/_get_shareable_references +{ + "objects": [ + { + "type": "index-pattern", + "id": "90943e30-9a47-11e8-b64d-95841ca0b247" + } + ] +} +---- ++ +The API returns the following: ++ +[source,json] +---- +{ + "objects": [ + { + "type": "index-pattern", + "id": "90943e30-9a47-11e8-b64d-95841ca0b247", + "spaces": ["default"], + "inboundReferences": [], + "spacesWithMatchingOrigins": ["default"] + } + ] +} +---- + +2. Check each saved object for `spacesWithMatchingOrigins` conflicts. ++ +Objects should not be shared to spaces with matching origins or you will create URL conflicts (causing the same URL to point to different saved objects). + +3. Check each saved object for `spacesWithMatchingAliases` conflicts. ++ +If these match the spaces that these saved objects will be shared to you should disable legacy URL aliases for them using the disable legacy URL aliases API. ++ +When sharing to all spaces (`*`) all entries in `spacesWithMatchingAliases` should be checked. + +4. Update spaces of each saved object and all its references: ++ +[source,sh] +---- +$ curl -X POST /api/spaces/_update_objects_spaces +{ + "objects": [ + { + "type": "index-pattern", + "id": "90943e30-9a47-11e8-b64d-95841ca0b247" + } + ], + "spacesToAdd": ["test"], + "spacesToRemove": [] +} +---- ++ +The API returns the following: ++ +[source,json] +---- +{ + "objects": [ + { + "type": "index-pattern", + "id": "90943e30-9a47-11e8-b64d-95841ca0b247", + "spaces": ["default", "test"] + } + ] +} +---- diff --git a/docs/management/managing-tags.asciidoc b/docs/management/managing-tags.asciidoc index b9fbe85760786..20e5fa897c0ae 100644 --- a/docs/management/managing-tags.asciidoc +++ b/docs/management/managing-tags.asciidoc @@ -5,7 +5,8 @@ Use tags to categorize your saved objects, then filter for related objects based on shared tags. -To get started, open the main menu, and then click *Stack Management > Tags*. +To get started, go to the *Tags* management page using the navigation menu or the +<>. [role="screenshot"] image::images/tags/tag-management-section.png[Tags management] @@ -15,8 +16,8 @@ image::images/tags/tag-management-section.png[Tags management] To create tags, you must meet the minimum requirements. -* Access to *Tags* requires the `Tag Management` Kibana privilege. To add the privilege, open the main menu, -and then click *Stack Management > Roles*. +* Access to *Tags* requires the `Tag Management` Kibana privilege. To add the privilege, go to the *Roles* page using the navigation menu or the +<>. * The `read` privilege allows you to assign tags to the saved objects for which you have write permission. * The `write` privilege enables you to create, edit, and delete tags. diff --git a/docs/management/rollups/create_and_manage_rollups.asciidoc b/docs/management/rollups/create_and_manage_rollups.asciidoc index 2f9ede62c0b0f..c6e379c3d53aa 100644 --- a/docs/management/rollups/create_and_manage_rollups.asciidoc +++ b/docs/management/rollups/create_and_manage_rollups.asciidoc @@ -9,7 +9,8 @@ an index pattern, and then rolls it into a new index. Rollup indices are a good way to compactly store months or years of historical data for use in visualizations and reports. -To get started, open the main menu, then click *Stack Management > Rollup Jobs*. +You can go to the *Rollup Jobs* page using the navigation menu or the +<>. [role="screenshot"] image::images/management_rollup_list.png[List of currently active rollup jobs] @@ -23,7 +24,8 @@ detailed information. The `manage_rollup` cluster privilege is required to access *Rollup jobs*. -To add the privilege, open the main menu, then click *Stack Management > Roles*. +To add the privilege, go to the *Roles* management page using the navigation menu or the +<>. [float] [[create-and-manage-rollup-job]] @@ -142,7 +144,8 @@ rollup index, or you can remove or archive it using Your next step is to visualize your rolled up data in a vertical bar chart. Most visualizations support rolled up data, with the exception of Timelion and Vega visualizations. -. Open the main menu, then click *Stack Management > Data Views*. +. Go to the *Data Views* page using the navigation menu or the +<>. . Click *Create data view*, and select *Rollup data view* from the dropdown. @@ -153,7 +156,7 @@ The notation for a combination data view with both raw and rolled up data is `rollup_logstash,kibana_sample_data_logs`. In this data view, `rollup_logstash` matches the rollup index and `kibana_sample_data_logs` matches the raw data. -. Open the main menu, click *Dashboard*, then *Create dashboard*. +. Go to *Dashboards*, then select *Create dashboard*. . Set the <> to *Last 90 days*. diff --git a/docs/management/watcher-ui/index.asciidoc b/docs/management/watcher-ui/index.asciidoc index 96ad0d3acc287..7f85376ad5698 100644 --- a/docs/management/watcher-ui/index.asciidoc +++ b/docs/management/watcher-ui/index.asciidoc @@ -8,8 +8,8 @@ Watches are helpful for analyzing mission-critical and business-critical streaming data. For example, you might watch application logs for performance outages or audit access logs for security threats. -To get started, open the main menu, -then click *Stack Management > Watcher*. +Go to the *Watcher* page using the navigation menu or the +<>. With this UI, you can: * <> @@ -39,9 +39,8 @@ and either of these Watcher roles: * `watcher_admin`. You can perform all Watcher actions, including create and edit watches. * `watcher_user`. You can view watches, but not create or edit them. -To manage roles, open the main menu, then click *Stack Management > Roles*, or use the -<>. Watches are shared between -all users with the same role. +To manage roles, go to the *Roles* management page, or use the {api-kibana}/group/endpoint-roles[role APIs]. +Watches are shared between all users with the same role. NOTE: If you are creating a threshold watch, you must also have the `view_index_metadata` index privilege. See {ref}/index-mgmt.html[Index management] for detailed information. diff --git a/docs/maps/asset-tracking-tutorial.asciidoc b/docs/maps/asset-tracking-tutorial.asciidoc index 32ab099575c92..b1ded453214f6 100644 --- a/docs/maps/asset-tracking-tutorial.asciidoc +++ b/docs/maps/asset-tracking-tutorial.asciidoc @@ -35,7 +35,8 @@ To get to the fun of visualizing and alerting on Portland public transport vehic [float] ==== Step 1: Set up an Elasticsearch index -. In Kibana, open the main menu, then click *Dev Tools*. +. In Kibana, go to *Developer tools* using the navigation menu or the +<>. . In *Console*, create the `tri_met_tracks` index lifecyle policy. This policy will keep the events in the hot data phase for 7 days. The data then moves to the warm phase. After 365 days in the warm phase, the data is deleted. + .ILM policy definition @@ -503,7 +504,7 @@ TIP: You may want to tweak this Data View to adjust the field names and number o [float] ==== Step 4: Explore the Portland TriMet data -. Open the main menu, and click *Discover*. +. Go to *Discover*. . Set the data view to *{ems-asset-index-name}*. . Open the <>, and set the time range to the last 15 minutes. . Expand a document and explore some of the fields that you will use later in this tutorial: `trimet.bearing`, `trimet.inCongestion`, `trimet.location`, and `trimet.vehicleID`. @@ -523,7 +524,7 @@ It's hard to get an overview of Portland vehicles by looking at individual event Create your map and set the theme for the default layer to dark mode. -. Open the main menu, and click *Maps*. +. Go to *Maps*. . Click *Create map*. . In the *Layers* list, click *Road map*, and then click *Edit layer settings*. . Open the *Tile service* dropdown, and select *Road map - dark*. diff --git a/docs/maps/connect-to-ems.asciidoc b/docs/maps/connect-to-ems.asciidoc index e41d544d64e4d..1ccdedb1da2a9 100644 --- a/docs/maps/connect-to-ems.asciidoc +++ b/docs/maps/connect-to-ems.asciidoc @@ -1,6 +1,6 @@ :ems: Elastic Maps Service :ems-docker-repo: docker.elastic.co/elastic-maps-service/elastic-maps-server -:ems-docker-image: {ems-docker-repo}:{version}-amd64 +:ems-docker-image: {ems-docker-repo}:{version} :ems-headers-url: https://deployment-host [[maps-connect-to-ems]] @@ -81,34 +81,53 @@ If you cannot connect to {ems} from the {kib} server or browser clients, and you {hosted-ems} is a self-managed version of {ems} offered as a Docker image that provides both the EMS basemaps and EMS boundaries. The image is bundled with basemaps up to zoom level 8. After connecting it to your {es} cluster for license validation, you have the option to download and configure a more detailed basemaps database. -You can use +docker pull+ to download the {hosted-ems} image from the Elastic Docker registry. - +. Pull the {hosted-ems} Docker image. ++ ifeval::["{release-state}"=="unreleased"] -Version {version} of {hosted-ems} has not yet been released, so no Docker image is currently available for this version. +WARNING: Version {version} of {hosted-ems} has not yet been released. +No Docker image is currently available for this version. endif::[] - -ifeval::["{release-state}"!="unreleased"] - ++ ["source","bash",subs="attributes"] ---------------------------------- docker pull {ems-docker-image} ---------------------------------- -Start {hosted-ems} and expose the default port `8080`: +. Optional: Install +https://docs.sigstore.dev/system_config/installation/[Cosign] for your +environment. Then use Cosign to verify the {es} image's signature. ++ +[source,sh,subs="attributes"] +---- +wget https://artifacts.elastic.co/cosign.pub +cosign verify --key cosign.pub {ems-docker-image} +---- ++ +The `cosign` command prints the check results and the signature payload in JSON format: ++ +[source,sh,subs="attributes"] +-------------------------------------------- +Verification for {ems-docker-image} -- +The following checks were performed on each of these signatures: + - The cosign claims were validated + - Existence of the claims in the transparency log was verified offline + - The signatures were verified against the specified public key +-------------------------------------------- + +. Start {hosted-ems} and expose the default port `8080`: ++ ["source","bash",subs="attributes"] ---------------------------------- docker run --rm --init --publish 8080:8080 \ {ems-docker-image} ---------------------------------- - ++ Once {hosted-ems} is running, follow instructions from the webpage at `localhost:8080` to define a configuration file and optionally download a more detailed basemaps database. - ++ [role="screenshot"] image::images/elastic-maps-server-instructions.png[Set-up instructions] -endif::[] - [float] [[elastic-maps-server-configuration]] ==== Configuration @@ -193,7 +212,6 @@ One way to configure {hosted-ems} is to provide `elastic-maps-server.yml` via bi ["source","yaml",subs="attributes"] -------------------------------------------- -version: '2' services: ems-server: image: {ems-docker-image} @@ -212,7 +230,6 @@ These variables can be set with +docker-compose+ like this: ["source","yaml",subs="attributes"] ---------------------------------------------------------- -version: '2' services: ems-server: image: {ems-docker-image} diff --git a/docs/maps/geojson-upload.asciidoc b/docs/maps/geojson-upload.asciidoc index f4208663078af..8bd8a32e5d444 100644 --- a/docs/maps/geojson-upload.asciidoc +++ b/docs/maps/geojson-upload.asciidoc @@ -19,8 +19,8 @@ GeoJSON is the most commonly used and flexible option. Follow these instructions to upload a GeoJSON data file, or try the <>. -. Open the main menu, click *Maps*, and then click *Add layer*. -. Click *Uploaded GeoJSON*. +. Go to *Maps*, and select *Add layer*. +. Select *Uploaded GeoJSON*. + [role="screenshot"] image::maps/images/fu_gs_select_source_file_upload.png[] diff --git a/docs/maps/images/elastic-maps-server-instructions.png b/docs/maps/images/elastic-maps-server-instructions.png index 5c0b47ce8f49f..524ae2192b5e5 100644 Binary files a/docs/maps/images/elastic-maps-server-instructions.png and b/docs/maps/images/elastic-maps-server-instructions.png differ diff --git a/docs/maps/import-geospatial-data.asciidoc b/docs/maps/import-geospatial-data.asciidoc index e84ba3c3cbd27..47d05c5f1d00f 100644 --- a/docs/maps/import-geospatial-data.asciidoc +++ b/docs/maps/import-geospatial-data.asciidoc @@ -23,7 +23,7 @@ To upload GeoJSON files, shapefiles, and draw features in {kib} with *Maps*, you * The `create` and `create_index` index privileges for destination indices * To use the index in *Maps*, you must also have the `read` and `view_index_metadata` index privileges for destination indices -To upload delimited files (such as CSV, TSV, or JSON files) on the {kib} home page, you must also have: +To upload delimited files (such as CSV, TSV, or JSON files) from the **Upload file** integration, you must also have: * The `all` {kib} privilege for *Discover* * The `manage_pipeline` or `manage_ingest_pipelines` cluster privilege @@ -33,9 +33,9 @@ To upload delimited files (such as CSV, TSV, or JSON files) on the {kib} home pa [discrete] === Upload delimited files with latitude and longitude columns -On the {kib} home page, you can upload a file and import it into an {es} index with latitude and longitude columns combined into a `geo_point` field. +You can upload a file and import it into an {es} index with latitude and longitude columns combined into a `geo_point` field. -. Go to the {kib} home page and click *Upload a file*. +. Go to the *Integrations* page and select *Upload file*. . Select a file in one of the supported file formats. . Click *Import*. . Select the *Advanced* tab. diff --git a/docs/maps/maps-getting-started.asciidoc b/docs/maps/maps-getting-started.asciidoc index 39579d935275e..8dec40df5eb31 100644 --- a/docs/maps/maps-getting-started.asciidoc +++ b/docs/maps/maps-getting-started.asciidoc @@ -31,7 +31,7 @@ refer to <>. [[maps-create]] === Step 1. Create a map -. Open the main menu, and then click *Dashboard*. +. Go to *Dashboards*. . Click **Create dashboard**. . Set the time range to *Last 7 days*. . Click the **Create new Maps** icon image:maps/images/app_gis_icon.png[]. diff --git a/docs/maps/reverse-geocoding-tutorial.asciidoc b/docs/maps/reverse-geocoding-tutorial.asciidoc index 48151281fb07d..ec221dfc5fb95 100644 --- a/docs/maps/reverse-geocoding-tutorial.asciidoc +++ b/docs/maps/reverse-geocoding-tutorial.asciidoc @@ -26,12 +26,7 @@ GeoIP is a common way of transforming an IP address to a longitude and latitude. You’ll use the <> that comes with Kibana for this tutorial. Web logs sample data set has longitude and latitude. If your web log data does not contain longitude and latitude, use {ref}/geoip-processor.html[GeoIP processor] to transform an IP address into a {ref}/geo-point.html[geo_point] field. -To install web logs sample data set: - -. On the home page, click *Try sample data*. -. Expand *Other sample data sets*. -. On the *Sample web logs* card, click *Add data*. - +To install the web logs sample data set, refer to <>. [float] === Step 2: Index Combined Statistical Area (CSA) regions @@ -46,7 +41,7 @@ To get the CSA boundary data: . Go to the https://www.census.gov/geographies/mapping-files/time-series/geo/carto-boundary-file.html[Census Bureau’s website] and download the `cb_2018_us_csa_500k.zip` file. . Uncompress the zip file. -. In Kibana, open the main menu, and click *Maps*. +. In Kibana, go to *Maps*. . Click *Create map*. . Click *Add layer*. . Click *Upload file*. @@ -71,7 +66,8 @@ image::maps/images/reverse-geocoding-tutorial/csa_regions.png[Map showing metro === Step 3: Reverse geocoding To visualize CSA regions by web log traffic, the web log traffic must contain a CSA region identifier. You'll use {es} {ref}/enrich-processor.html[enrich processor] to add CSA region identifiers to the web logs sample data set. You can skip this step if your source data already contains region identifiers. -. Open the main menu, and then click *Dev Tools*. +. Go to *Developer tools* using the navigation menu or the +<>. . In *Console*, create a {ref}/geo-match-enrich-policy-type.html[geo_match enrichment policy]: + [source,js] @@ -142,7 +138,7 @@ PUT kibana_sample_data_logs/_settings } ---------------------------------- -. Open the main menu, and click *Discover*. +. Go to *Discover*. . Set the data view to *Kibana Sample Data Logs*. . Open the <>, and set the time range to the last 30 days. . Scan through the list of *Available fields* until you find the `csa.GEOID` field. You can also search for the field by name. @@ -158,7 +154,7 @@ image::maps/images/reverse-geocoding-tutorial/discover_enriched_web_log.png[View === Step 4: Visualize Combined Statistical Area (CSA) regions by web traffic Now that our web traffic contains CSA region identifiers, you'll visualize CSA regions by web traffic. -. Open the main menu, and click *Maps*. +. Go to *Maps*. . Click *Create map*. . Click *Add layer*. . Click *Choropleth*. diff --git a/docs/maps/search.asciidoc b/docs/maps/search.asciidoc index bfd293aa2352f..b094934bc6b4f 100644 --- a/docs/maps/search.asciidoc +++ b/docs/maps/search.asciidoc @@ -85,7 +85,7 @@ Create filters from your map to focus in on just the data you want. *Maps* provi To filter your dashboard by your map bounds as you pan and zoom your map: -. Open the main menu, and then click *Dashboard*. +. Go to *Dashboards*. . Select your dashboard from the list or click *Create dashboard*. . If your dashboard does not have a map, add a map panel. . Click the gear icon image:maps/images/gear_icon.png[gear icon] to open the map panel menu. diff --git a/docs/osquery/manage-integration.asciidoc b/docs/osquery/manage-integration.asciidoc index 69cf505e724a2..7d6131ce88bfa 100644 --- a/docs/osquery/manage-integration.asciidoc +++ b/docs/osquery/manage-integration.asciidoc @@ -53,7 +53,8 @@ Any changes you make to `packs` from this field are not reflected in the UI on t While this allows you to use advanced Osquery functionality like pack discovery queries, you do lose the ability to manage packs defined this way from the Osquery *Packs* page. ========================= -. From the {kib} main menu, click *Fleet*, then the *Agent policies* tab. +. Go to *Fleet* using the navigation menu or the +<>, then open the *Agent policies* tab. . Click the name of the agent policy where you want to adjust the Osquery configuration. The configuration changes you make only apply to the policy you select. @@ -136,7 +137,8 @@ and Osquerybeat in the agent directory. Refer to the {fleet-guide}/installation- To get more details in the logs, change the agent logging level to debug: -. Open the main menu, and then select **Fleet**. +. Go to **Fleet** using the navigation menu or the +<>. . Select the agent that you want to debug. diff --git a/docs/osquery/osquery.asciidoc b/docs/osquery/osquery.asciidoc index 4f0859ac21b19..ebfd58c973370 100644 --- a/docs/osquery/osquery.asciidoc +++ b/docs/osquery/osquery.asciidoc @@ -36,7 +36,8 @@ view live and scheduled query results, but you cannot run live queries or edit. To inspect hosts, run a query against one or more agents or policies, then view the results. -. Open the main menu, and then click *Osquery*. +. Go to *Osquery* using the navigation menu or the +<>. . In the *Live queries* view, click **New live query**. . Choose to run a single query or a query pack. . Select one or more agents or groups to query. Start typing in the search field, diff --git a/docs/playground/index.asciidoc b/docs/playground/index.asciidoc deleted file mode 100644 index f475c3e2747a2..0000000000000 --- a/docs/playground/index.asciidoc +++ /dev/null @@ -1,249 +0,0 @@ -[role="xpack"] -[[playground]] -= Playground - -preview::[] - -// Variable (attribute) definition -:x: Playground - -Use {x} to combine your Elasticsearch data with the power of large language models (LLMs) for retrieval augmented generation (RAG). -The chat interface translates your natural language questions into {es} queries, retrieves the most relevant results from your {es} documents, and passes those documents to the LLM to generate tailored responses. - -Once you start chatting, use the UI to view and modify the Elasticsearch queries that search your data. -You can also view the underlying Python code that powers the chat interface, and download this code to integrate into your own application. - -Learn how to get started on this page. -Refer to the following for more advanced topics: - -* <> -* <> -* <> - -[float] -[[playground-how-it-works]] -== How {x} works - -Here's a simpified overview of how {x} works: - -* User *creates a connection* to LLM provider -* User *selects a model* to use for generating responses -* User *define the model's behavior and tone* with initial instructions -** *Example*: "_You are a friendly assistant for question-answering tasks. Keep responses as clear and concise as possible._" -* User *selects {es} indices* to search -* User *enters a question* in the chat interface -* {x} *autogenerates an {es} query* to retrieve relevant documents -** User can *view and modify underlying {es} query* in the UI -* {x} *auto-selects relevant fields* from retrieved documents to pass to the LLM -** User can *edit fields targeted* -* {x} passes *filtered documents* to the LLM -** The LLM generates a response based on the original query, initial instructions, chat history, and {es} context -* User can *view the Python code* that powers the chat interface -** User can also *Download the code* to integrate into application - -[float] -[[playground-availability-prerequisites]] -== Availability and prerequisites - -For Elastic Cloud and self-managed deployments {x} is available in the *Search* space in {kib}, under *Content* > *{x}*. - -For Elastic Serverless, {x} is available in your {es} project UI. -// TODO: Confirm URL path for Serverless - -To use {x}, you'll need the following: - -1. An Elastic *v8.14.0+* deployment or {es} *Serverless* project. (Start a https://cloud.elastic.co/registration[free trial]). -2. At least one *{es} index* with documents to search. -** See <> if you'd like to ingest sample data. -3. An account with a *supported LLM provider*. {x} supports the following: -+ -[cols="2a,2a,1a", options="header"] -|=== -| Provider | Models | Notes - -| *Amazon Bedrock* -a| -* Anthropic: Claude 3.5 Sonnet -* Anthropic: Claude 3 Haiku -a| - -| *OpenAI* -a| -* GPT-3 turbo -* GPT-4 turbo -* GPT-4 omni -a| - -| *Azure OpenAI* -a| -* GPT-3 turbo -* GPT-4 turbo -a| -Buffers responses in large chunks - -| *Google* -a| -* Google Gemini 1.5 Pro -* Google Gemini 1.5 Flash -a| - -|=== - -[float] -[[playground-getting-started]] -== Getting started - -[.screenshot] -image::get-started.png[width=600] - -[float] -[[playground-getting-started-connect]] -=== Connect to LLM provider - -To get started with {x}, you need to create a <> for your LLM provider. -Follow these steps on the {x} landing page: - -. Under *Connect to an LLM*, click *Create connector*. -. Select your *LLM provider*. -. *Name* your connector. -. Select a *URL endpoint* (or use the default). -. Enter *access credentials* for your LLM provider. - -[TIP] -==== -If you need to update a connector, or add a new one, click the 🔧 *Manage* button beside *Model settings*. -==== - -[float] -[[playground-getting-started-ingest]] -=== Ingest data (optional) - -_You can skip this step if you already have data in one or more {es} indices._ - -There are many options for ingesting data into {es}, including: - -* The {enterprise-search-ref}/crawler.html[Elastic crawler] for web content (*NOTE*: Not yet available in _Serverless_) -* {enterprise-search-ref}/connectors.html[Elastic connectors] for data synced from third-party sources -* The {es} {ref}/docs-bulk.html[Bulk API] for JSON documents -+ -.*Expand* for example -[%collapsible] -============== -To add a few documents to an index called `books` run the following in Dev Tools Console: - -[source,console] ----- -POST /_bulk -{ "index" : { "_index" : "books" } } -{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470} -{ "index" : { "_index" : "books" } } -{"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585} -{ "index" : { "_index" : "books" } } -{"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328} -{ "index" : { "_index" : "books" } } -{"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227} -{ "index" : { "_index" : "books" } } -{"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268} -{ "index" : { "_index" : "books" } } -{"name": "The Handmaids Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311} ----- -============== - -We've also provided some Jupyter notebooks to easily ingest sample data into {es}. -Find these in the https://github.com/elastic/elasticsearch-labs/blob/main/notebooks/ingestion-and-chunking[elasticsearch-labs] repository. -These notebooks use the official {es} Python client. - -[float] -[[playground-getting-started-index]] -=== Select {es} indices - -Once you've connected to your LLM provider, it's time to choose the data you want to search. - -. Click *Add data sources*. -. Select one or more {es} indices. -. Click *Save and continue* to launch the chat interface. - -[TIP] -==== -You can always add or remove indices later by selecting the *Data* button from the main {x} UI. - -[.screenshot] -image::images/data-button.png[width=100] -==== - -[float] -[[playground-getting-started-chat-query-modes]] -=== Chat and query modes - -Since 8.15.0 (and earlier for {es} Serverless), the main {x} UI has two modes: - -* *Chat mode*: The default mode, where you can chat with your data via the LLM. -* *Query mode*: View and modify the {es} query generated by the chat interface. - -The *chat mode* is selected when you first set up your {x} instance. - -[.screenshot] -image::images/chat-interface.png[width=700] - -To switch to *query mode*, select *Query* from the main UI. - -[.screenshot] -image::images/query-interface.png[width=700] - -[TIP] -==== -Learn more about the underlying {es} queries used to search your data in <> -==== - -[float] -[[playground-getting-started-setup-chat]] -=== Set up the chat interface - -You can start chatting with your data immediately, but you might want to tweak some defaults first. - -You can adjust the following under *Model settings*: - -* *Model*. The model used for generating responses. -* *Instructions*. Also known as the _system prompt_, these initial instructions and guidelines define the behavior of the model throughout the conversation. Be *clear and specific* for best results. -* *Include citations*. A toggle to include citations from the relevant {es} documents in responses. - -{x} also uses another LLM under the hood, to encode all previous questions and responses, and make them available to the main model. -This ensures the model has "conversational memory". - -Under *Indices*, you can edit which {es} indices will be searched. -This will affect the underlying {es} query. - -[TIP] -==== -Click *✨ Regenerate* to resend the last query to the model for a fresh response. - -Click *⟳ Clear chat* to clear chat history and start a new conversation. -==== - -[float] -[[playground-getting-started-view-code]] -=== View and download Python code - -Use the *View code* button to see the Python code that powers the chat interface. -You can integrate it into your own application, modifying as needed. -We currently support two implementation options: - -* {es} Python Client + LLM provider -* LangChain + LLM provider - -[.screenshot] -image::images/view-code-button.png[width=100] - -[float] -[[playground-next-steps]] -=== Next steps - -Once you've got {x} up and running, and you've tested out the chat interface, you might want to explore some more advanced topics: - -* <> -* <> -* <> - -include::playground-context.asciidoc[] -include::playground-query.asciidoc[] -include::playground-troubleshooting.asciidoc[] \ No newline at end of file diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index 4088342a6832b..84cf809c66667 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -1147,3 +1147,77 @@ Refer to {api-kibana}/group/endpoint-cases[cases API]. == Sync {ml} saved objects API Refer to {api-kibana}/group/endpoint-ml[machine learning APIs]. + +[role="exclude",id="spaces-api-post"] +== Create space API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-put"] +== Update space API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-get"] +== Get a space API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-get-all"] +== Get all {kib} spaces API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-delete"] +== Delete space API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-copy-saved-objects"] +== Copy saved objects to space API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-disable-legacy-url-aliases"] +== Disable legacy URL aliases API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-get-shareable-references"] +== Get shareable references API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-resolve-copy-saved-objects-conflicts"] +== Resolve copy saved objects to space conflicts API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. + +[role="exclude",id="spaces-api-update-objects-spaces"] +== Update saved objects spaces API + +Refer to {api-kibana}/group/endpoint-spaces[spaces APIs]. +[role="exclude",id="role-management-api-delete] +== Delete role API + +Refer to {api-kibana}/group/endpoint-roles[role APIs]. + +[role="exclude",id="role-management-api-get"] +== Get all {kib} roles API + +Refer to {api-kibana}/group/endpoint-roles[role APIs]. + +[role="exclude",id="role-management-specific-api-get"] +== Get specific role API + +Refer to {api-kibana}/group/endpoint-roles[role APIs]. + +[role="exclude",id="role-management-api-put-bulk"] +== Bulk create or update roles API + +Refer to {api-kibana}/group/endpoint-roles[role APIs]. + +[role="exclude",id="role-management-api-put"] +== Create or update role API + +Refer to {api-kibana}/group/endpoint-roles[role APIs]. diff --git a/docs/search/images/api-keys-search-bar.png b/docs/search/images/api-keys-search-bar.png new file mode 100644 index 0000000000000..d8767cb8b5372 Binary files /dev/null and b/docs/search/images/api-keys-search-bar.png differ diff --git a/docs/search/images/click-api-keys.png b/docs/search/images/click-api-keys.png new file mode 100644 index 0000000000000..e4aacc79520e0 Binary files /dev/null and b/docs/search/images/click-api-keys.png differ diff --git a/docs/search/images/click-create-api-key.png b/docs/search/images/click-create-api-key.png new file mode 100644 index 0000000000000..3f98b068902ba Binary files /dev/null and b/docs/search/images/click-create-api-key.png differ diff --git a/docs/search/images/click-stack-management.png b/docs/search/images/click-stack-management.png new file mode 100644 index 0000000000000..5e41afe83c975 Binary files /dev/null and b/docs/search/images/click-stack-management.png differ diff --git a/docs/search/images/cloud-id.png b/docs/search/images/cloud-id.png new file mode 100644 index 0000000000000..4afd10a89a771 Binary files /dev/null and b/docs/search/images/cloud-id.png differ diff --git a/docs/search/images/inference-endpoints-ui.png b/docs/search/images/inference-endpoints-ui.png new file mode 100644 index 0000000000000..a4e091b6091f9 Binary files /dev/null and b/docs/search/images/inference-endpoints-ui.png differ diff --git a/docs/search/images/manage-deployment.png b/docs/search/images/manage-deployment.png new file mode 100644 index 0000000000000..6fb4aa20daba1 Binary files /dev/null and b/docs/search/images/manage-deployment.png differ diff --git a/docs/search/images/serverless-connection-details.png b/docs/search/images/serverless-connection-details.png new file mode 100644 index 0000000000000..ba6500100376c Binary files /dev/null and b/docs/search/images/serverless-connection-details.png differ diff --git a/docs/search/images/serverless-create-an-api-key.png b/docs/search/images/serverless-create-an-api-key.png new file mode 100644 index 0000000000000..2ab9a76509b9a Binary files /dev/null and b/docs/search/images/serverless-create-an-api-key.png differ diff --git a/docs/search/index.asciidoc b/docs/search/index.asciidoc new file mode 100644 index 0000000000000..517503772d3ce --- /dev/null +++ b/docs/search/index.asciidoc @@ -0,0 +1,73 @@ +[role="xpack"] +[[search-space]] += Search + +The *Search* space in the {kib} UI contains the following GUI features: + +* https://www.elastic.co/guide/en/enterprise-search/current/connectors.html[Connectors] +* https://www.elastic.co/guide/en/enterprise-search/current/crawler.html[Web crawler] +* <> +* https://www.elastic.co/guide/en/elasticsearch/reference/current/search-application-overview.html[Search Applications] +* https://www.elastic.co/guide/en/elasticsearch/reference/current/behavioral-analytics-overview.html[Behavioral Analytics] +* <> +* <> +* Dev Tools <> + +[float] +[[search-release-notes]] +== Docs and release notes + +The Search solution and use case is made up of many tools and features across the {stack}. +As a result, the release notes for your features of interest might live in different Elastic docs. +Use the following table to find links to the appropriate documentation, API references (if applicable), and release notes. + +[options="header"] +|=== +| Name | API reference | Documentation | Release notes + +| Connectors +| {ref}/connector-apis.html[API reference] +| {ref}/es-connectors.html[Elastic Connectors] +| {ref}/es-connectors-release-notes.html[Elasticsearch guide] + +| Web crawler +| N/A +| {enterprise-search-ref}/crawler.html[Documentation] +| {enterprise-search-ref}/changelog.html[Enterprise Search Guide] + +| Playground +| N/A +| {kibana-ref}/playground.html[Documentation] +| {kibana-ref}/release-notes.html[Kibana guide] + +| Search Applications +| {ref}/search-application-apis.html[API reference] +| {enterprise-search-ref}/app-search-workplace-search.html[Documentation] +| {ref}/es-release-notes.html[Elasticsearch guide] + +| Behavioral Analytics +| {ref}/behavioral-analytics-apis.html[API reference] +| {ref}/behavioral-analytics-start.html[Documentation] +| {ref}/es-release-notes.html[Elasticsearch guide] + +| Inference Endpoints +| {ref}/inference-apis.html[API reference] +| {kibana-ref}/inference-endpoints.html[Documentation] +| {ref}/es-release-notes.html[Elasticsearch guide] + +| Console +| N/A +| {kibana-ref}/console-kibana.html[Documentation] +| {kibana-ref}/release-notes.html[Kibana guide] + +| Search UI +| https://www.elastic.co/docs/current/search-ui/api/architecture[API reference] +| https://www.elastic.co/docs/current/search-ui[Documentation] +| https://www.elastic.co/docs/current/search-ui[Search UI] + +|=== + +include::search-connection-details.asciidoc[] +include::playground/index.asciidoc[] +include::search-ai-assistant/index.asciidoc[] +include::inference-endpoints/index.asciidoc[] \ No newline at end of file diff --git a/docs/search/inference-endpoints/index.asciidoc b/docs/search/inference-endpoints/index.asciidoc new file mode 100644 index 0000000000000..d547e00dd5b50 --- /dev/null +++ b/docs/search/inference-endpoints/index.asciidoc @@ -0,0 +1,15 @@ +[role="xpack"] +[[inference-endpoints]] +== Inference endpoints UI + +Inference endpoints streamline the deployment and management of machine learning models in +{es}. The *Inference endpoints* page in {kib} provides an interface for displaying inference +endpoints that have been created using the {ref}/put-inference-api.html[Inference API]. + +[role="screenshot"] +image::images/inference-endpoints-ui.png[Inference endpoints UI] + +Available actions: + +* Copy the inference endpoint ID +* Delete endpoints \ No newline at end of file diff --git a/docs/playground/images/chat-interface.png b/docs/search/playground/images/chat-interface.png similarity index 100% rename from docs/playground/images/chat-interface.png rename to docs/search/playground/images/chat-interface.png diff --git a/docs/playground/images/data-button.png b/docs/search/playground/images/data-button.png similarity index 100% rename from docs/playground/images/data-button.png rename to docs/search/playground/images/data-button.png diff --git a/docs/playground/images/get-started.png b/docs/search/playground/images/get-started.png similarity index 100% rename from docs/playground/images/get-started.png rename to docs/search/playground/images/get-started.png diff --git a/docs/playground/images/query-interface.png b/docs/search/playground/images/query-interface.png similarity index 100% rename from docs/playground/images/query-interface.png rename to docs/search/playground/images/query-interface.png diff --git a/docs/playground/images/view-code-button.png b/docs/search/playground/images/view-code-button.png similarity index 100% rename from docs/playground/images/view-code-button.png rename to docs/search/playground/images/view-code-button.png diff --git a/docs/search/playground/index.asciidoc b/docs/search/playground/index.asciidoc new file mode 100644 index 0000000000000..72d8eccab47c1 --- /dev/null +++ b/docs/search/playground/index.asciidoc @@ -0,0 +1,262 @@ +[role="xpack"] +[[playground]] +== Playground + +preview::[] + +// Variable (attribute) definition +:x: Playground + +Use {x} to combine your Elasticsearch data with the power of large language models (LLMs) for retrieval augmented generation (RAG). +The chat interface translates your natural language questions into {es} queries, retrieves the most relevant results from your {es} documents, and passes those documents to the LLM to generate tailored responses. + +Once you start chatting, use the UI to view and modify the Elasticsearch queries that search your data. +You can also view the underlying Python code that powers the chat interface, and download this code to integrate into your own application. + +Learn how to get started on this page. +Refer to the following for more advanced topics: + +* <> +* <> +* <> + +[float] +[[playground-how-it-works]] +=== How {x} works + +Here's a simpified overview of how {x} works: + +* User *creates a connection* to LLM provider +* User *selects a model* to use for generating responses +* User *define the model's behavior and tone* with initial instructions +** *Example*: "_You are a friendly assistant for question-answering tasks. Keep responses as clear and concise as possible._" +* User *selects {es} indices* to search +* User *enters a question* in the chat interface +* {x} *autogenerates an {es} query* to retrieve relevant documents +** User can *view and modify underlying {es} query* in the UI +* {x} *auto-selects relevant fields* from retrieved documents to pass to the LLM +** User can *edit fields targeted* +* {x} passes *filtered documents* to the LLM +** The LLM generates a response based on the original query, initial instructions, chat history, and {es} context +* User can *view the Python code* that powers the chat interface +** User can also *Download the code* to integrate into application + +[float] +[[playground-availability-prerequisites]] +=== Availability and prerequisites + +For Elastic Cloud and self-managed deployments {x} is available in the *Search* space in {kib}, under *Content* > *{x}*. + +For Elastic Serverless, {x} is available in your {es} project UI. +// TODO: Confirm URL path for Serverless + +To use {x}, you'll need the following: + +1. An Elastic *v8.14.0+* deployment or {es} *Serverless* project. (Start a https://cloud.elastic.co/registration[free trial]). +2. At least one *{es} index* with documents to search. +** See <> if you'd like to ingest sample data. +3. An account with a *supported LLM provider*. {x} supports the following: ++ +[cols="2a,2a,1a", options="header"] +|=== +| Provider | Models | Notes + +| *Amazon Bedrock* +a| +* Anthropic: Claude 3.5 Sonnet +* Anthropic: Claude 3 Haiku +a| + +| *OpenAI* +a| +* GPT-3 turbo +* GPT-4 turbo +* GPT-4 omni +a| + +| *Azure OpenAI* +a| +* GPT-3 turbo +* GPT-4 turbo +a| +Buffers responses in large chunks + +| *Google* +a| +* Google Gemini 1.5 Pro +* Google Gemini 1.5 Flash +a| + +|=== + +[[playground-local-llms]] +[TIP] +==== +You can also use locally hosted LLMs that are compatible with the OpenAI SDK. +Once you've set up your LLM, you can connect to it using the OpenAI connector. +Refer to the following for examples: + +* {security-guide}/connect-to-byo-llm.html[Using LM Studio] +* https://www.elastic.co/search-labs/blog/localai-for-text-embeddings[LocalAI with `docker-compose`] +==== + +[float] +[[playground-getting-started]] +=== Getting started + +[.screenshot] +image::get-started.png[width=600] + +[float] +[[playground-getting-started-connect]] +==== Connect to LLM provider + +To get started with {x}, you need to create a <> for your LLM provider. +You can also connect to <> which are compatible with the OpenAI API, by using the OpenAI connector. + +To connect to an LLM provider, follow these steps on the {x} landing page: + +. Under *Connect to an LLM*, click *Create connector*. +. Select your *LLM provider*. +. *Name* your connector. +. Select a *URL endpoint* (or use the default). +. Enter *access credentials* for your LLM provider. (If you're running a locally hosted LLM using the OpenAI connector, you must input a value in the API key form, but the specific value doesn't matter.) + +[TIP] +==== +If you need to update a connector, or add a new one, click the 🔧 *Manage* button beside *Model settings*. +==== + +[float] +[[playground-getting-started-ingest]] +==== Ingest data (optional) + +_You can skip this step if you already have data in one or more {es} indices._ + +There are many options for ingesting data into {es}, including: + +* The {enterprise-search-ref}/crawler.html[Elastic crawler] for web content (*NOTE*: Not yet available in _Serverless_) +* {ref}/es-connectors.html[Elastic connectors] for data synced from third-party sources +* The {es} {ref}/docs-bulk.html[Bulk API] for JSON documents ++ +.*Expand* for example +[%collapsible] +============== +To add a few documents to an index called `books` run the following in Dev Tools Console: + +[source,console] +---- +POST /_bulk +{ "index" : { "_index" : "books" } } +{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470} +{ "index" : { "_index" : "books" } } +{"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585} +{ "index" : { "_index" : "books" } } +{"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328} +{ "index" : { "_index" : "books" } } +{"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227} +{ "index" : { "_index" : "books" } } +{"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268} +{ "index" : { "_index" : "books" } } +{"name": "The Handmaids Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311} +---- +============== + +We've also provided some Jupyter notebooks to easily ingest sample data into {es}. +Find these in the https://github.com/elastic/elasticsearch-labs/blob/main/notebooks/ingestion-and-chunking[elasticsearch-labs] repository. +These notebooks use the official {es} Python client. + +[float] +[[playground-getting-started-index]] +==== Select {es} indices + +Once you've connected to your LLM provider, it's time to choose the data you want to search. + +. Click *Add data sources*. +. Select one or more {es} indices. +. Click *Save and continue* to launch the chat interface. + +[TIP] +==== +You can always add or remove indices later by selecting the *Data* button from the main {x} UI. + +[.screenshot] +image::images/data-button.png[width=100] +==== + +[float] +[[playground-getting-started-chat-query-modes]] +==== Chat and query modes + +Since 8.15.0 (and earlier for {es} Serverless), the main {x} UI has two modes: + +* *Chat mode*: The default mode, where you can chat with your data via the LLM. +* *Query mode*: View and modify the {es} query generated by the chat interface. + +The *chat mode* is selected when you first set up your {x} instance. + +[.screenshot] +image::images/chat-interface.png[width=700] + +To switch to *query mode*, select *Query* from the main UI. + +[.screenshot] +image::images/query-interface.png[width=700] + +[TIP] +==== +Learn more about the underlying {es} queries used to search your data in <> +==== + +[float] +[[playground-getting-started-setup-chat]] +==== Set up the chat interface + +You can start chatting with your data immediately, but you might want to tweak some defaults first. + +You can adjust the following under *Model settings*: + +* *Model*. The model used for generating responses. +* *Instructions*. Also known as the _system prompt_, these initial instructions and guidelines define the behavior of the model throughout the conversation. Be *clear and specific* for best results. +* *Include citations*. A toggle to include citations from the relevant {es} documents in responses. + +{x} also uses another LLM under the hood, to encode all previous questions and responses, and make them available to the main model. +This ensures the model has "conversational memory". + +Under *Indices*, you can edit which {es} indices will be searched. +This will affect the underlying {es} query. + +[TIP] +==== +Click *✨ Regenerate* to resend the last query to the model for a fresh response. + +Click *⟳ Clear chat* to clear chat history and start a new conversation. +==== + +[float] +[[playground-getting-started-view-code]] +==== View and download Python code + +Use the *View code* button to see the Python code that powers the chat interface. +You can integrate it into your own application, modifying as needed. +We currently support two implementation options: + +* {es} Python Client + LLM provider +* LangChain + LLM provider + +[.screenshot] +image::images/view-code-button.png[width=100] + +[float] +[[playground-next-steps]] +==== Next steps + +Once you've got {x} up and running, and you've tested out the chat interface, you might want to explore some more advanced topics: + +* <> +* <> +* <> + +include::playground-context.asciidoc[] +include::playground-query.asciidoc[] +include::playground-troubleshooting.asciidoc[] \ No newline at end of file diff --git a/docs/playground/playground-context.asciidoc b/docs/search/playground/playground-context.asciidoc similarity index 94% rename from docs/playground/playground-context.asciidoc rename to docs/search/playground/playground-context.asciidoc index 291dc0027f4b7..9d6a111d863dd 100644 --- a/docs/playground/playground-context.asciidoc +++ b/docs/search/playground/playground-context.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] [[playground-context]] -== Optimize model context +=== Optimize model context preview::[] @@ -22,7 +22,7 @@ Currently you can only select *one field* to be provided as context to the LLM. [float] [[playground-context-ui]] -== Edit context in UI +=== Edit context in UI Use the *Edit context* button in the {x} UI to adjust the number of documents and fields sent to the LLM. @@ -33,13 +33,13 @@ If you're hitting context length limits, try the following: [float] [[playground-context-index]] -== Other context optimizations +=== Other context optimizations This section covers additional context optimizations that you won't be able to make directly in the UI. [float] [[playground-context-index-chunking]] -=== Chunking large documents +==== Chunking large documents If you're working with large fields, you may need to adjust your indexing strategy. Consider breaking your documents into smaller chunks, such as sentences or paragraphs. @@ -56,7 +56,7 @@ Refer to the following Python notebooks for examples of how to chunk your docume [float] [[playground-context-balance]] -=== Balancing cost/latency and result quality +==== Balancing cost/latency and result quality Here are some general recommendations for balancing cost/latency and result quality with different context sizes: diff --git a/docs/playground/playground-query.asciidoc b/docs/search/playground/playground-query.asciidoc similarity index 96% rename from docs/playground/playground-query.asciidoc rename to docs/search/playground/playground-query.asciidoc index 9a3f34e800017..e0b9e5a0fce5e 100644 --- a/docs/playground/playground-query.asciidoc +++ b/docs/search/playground/playground-query.asciidoc @@ -1,6 +1,6 @@ [xpack] [[playground-query]] -== View and modify queries +=== View and modify queries :x: Playground @@ -12,7 +12,6 @@ The {x} UI enables you to view and modify these queries. * Click *View query* to open the visual query editor. * Modify the query by selecting fields to query per index. -* Click *Save changes*. [TIP] ==== @@ -31,7 +30,7 @@ Learn more about <